Přadeno (funkce hash) - Skein (hash function)
![]() | |
Všeobecné | |
---|---|
Návrháři | Bruce Schneier, Niels Ferguson, et al. |
Odvozený od | Threefish |
Osvědčení | Finalista SHA-3 |
Detail | |
Velikosti trávení | libovolný |
Struktura | Unikátní bloková iterace |
Kola | 72 (velikost bloku 256 a 512), 80 (velikost bloku 1024) |
Rychlost | 6.1 cpb na Jádro 2.[1] |

Přadeno je kryptografická hashovací funkce a jeden z pěti finalistů soutěže Soutěž o hashovací funkci NIST. Přihlášen jako kandidát na pozici SHA-3 standard, nástupce SHA-1 a SHA-2, nakonec prohrál s kandidátem na hash NIST Keccak.[2]
Název Skein odkazuje na to, jak funkce Skein prolíná vstup, podobně jako a přadeno příze.[1]
Dějiny
Skein vytvořil Bruce Schneier, Niels Ferguson, Stefan Lucks Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas a Jesse Walker.
Přadeno je založeno na Threefish tweakable bloková šifra komprimované pomocí Unikátní bloková iterace (UBI) režim zřetězení, varianta Matyas – Meyer – Oseas hash režim,[3] při využití volitelného systému argumentů s nízkou režií pro flexibilitu.
Skeinův algoritmus a referenční implementace dostal veřejná doména.[4]
Funkčnost
Skein podporuje interní velikosti stavů 256, 512 a 1024 bitů a libovolné výstupní velikosti.[5]
Autoři tvrdí 6.1 cykly na bajt pro jakoukoli velikost výstupu na Intel Core 2 Duo v 64bitovém režimu.[6]
Jádro Threefish je založeno na funkci MIX, která transformuje 2 64bitová slova pomocí jediného sčítání, rotace o konstantu a XOR. Režim řetězení UBI kombinuje hodnotu zřetězení vstupu se vstupním řetězcem s libovolnou délkou a vytváří výstup pevné velikosti.
Threefish's nelinearita pochází výhradně z kombinace operací přidání a exclusive-OR; nepoužívá se S-boxy. Funkce je optimalizována pro 64bitové procesory a papír Skein definuje volitelné funkce, jako je náhodný výběr hashování, paralelizovatelný hašování stromů, a proudová šifra, personalizace a funkce odvození klíče.
Kryptoanalýza
V říjnu 2010 došlo k útoku, který kombinoval rotační dešifrování s odskočit útok byl publikován. Útok zjistí rotační kolize u 53 ze 72 nábojů v Threefish-256 a 57 ze 72 nábojů v Threefish-512. Ovlivňuje také funkci Skein hash.[7] Jedná se o pokračování dřívějšího útoku zveřejněného v únoru, který prolomil 39 a 42 kol.[8]
Tým Skein vylepšil klíčový plán konstantní pro 3. kolo soutěže o hashovací funkci NIST, aby byl tento útok méně efektivní, i když věří, že hash by byl bez těchto vylepšení stále bezpečný.[1]
Příklady Skein hashů
Hodnoty hash prázdného řetězce.
Přadeno-256-256 ("")c8877087da56e072870daa843f176e9453115929094c3a40c463a196c29bf7baSkein-512-256 ("")39ccc4554a8b31853b9de7a1fe638a24cce6b35a55f2431009e18780335d2621Skein-512-512 ("")bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a
I malá změna ve zprávě bude mít (s naprostou pravděpodobností) za následek většinou jiný hash, kvůli lavinový efekt. Například přidání tečky na konec věty:
Skein-512-256 („Rychlá hnědá liška přeskočí na líného psa ")b3250457e05d3060b1a4bbc1428bc75a3f525ca389aeab96cfa34638d96e492aSkein-512-256 („Rychlá hnědá liška přeskočí na líného psa.")41e829d7fca71c7d7154ed8fc8a069f274dd664ae0ed29d365d919f4e575eebbSkein-512-512 ("Rychlá hnědá liška přeskočí na líného psa ")94c2ae036dba8783d0b3f7d6cc111ff810702f5c77707999be7e1c9486ff238a7044de734293147359b4ac7e1d09cd247c351d69826b78dcddd951f0ef912713Skein-512-512 ("Rychlá hnědá liška přeskočí na líného psa.")658223cb3d69b5e76e3588ca63feffba0dc2ead38a95d0650564f2a39da8e83fbb42c9d6ad9e03fbfde8a25a880357d457dbd6f74cbcb5e728979577dbce5436
Reference
- ^ A b C Ferguson; et al. (2010-10-01). „Rodina funkcí Skein Hash“ (PDF). Citovat deník vyžaduje
| deník =
(Pomoc) - ^ „NIST vybrala vítěze soutěže Secure Hash Algorithm (SHA-3)“. NIST. 2012-10-02. Citováno 2012-10-02.
- ^ http://www.skein-hash.info/sites/default/files/skein1.3.pdf p. 6
- ^ skein_NIST_CD_121508.zip na skein-hash.info, skein.c „Implementace funkce Skein hash. Autor zdrojového kódu: Doug Whiting, 2008. Tento algoritmus a zdrojový kód jsou zveřejněny jako veřejné.“
- ^ „Nyní od Bruce Schneiera, funkce Skein Hash“. Slashdot. 2008-10-31. Citováno 2008-10-31.
- ^ Článek popisující funkci hash, verze 1.3 (2010-10-01)
- ^ Dmitrij Khovratovich; Ivica Nikolic; Christian Rechberger (2010-10-20). „Rotační odskoky útočí na sníženou přadénku“. Citovat deník vyžaduje
| deník =
(Pomoc) - ^ Dmitrij Khovratovich a Ivica Nikolić (2010). „Rotační kryptoanalýza ARX“ (PDF). Lucemburská univerzita. Citovat deník vyžaduje
| deník =
(Pomoc)
externí odkazy
Implementace
- SPARKSkein - implementace Skein v JISKRA, s doklady o bezpečnosti typu
- Botan obsahuje implementaci C ++ Skein-512
- nskein - .NET implementace Skein s podporou všech velikostí bloků
- pyskein Skein modul pro Python
- PHP-Skein-Hash Skein hash pro PHP na GitHubu
- Přehled :: Přadeno, implementace v C a Perl
- skeinfish C # implementace Skein a Threefish (na základě verze 1.3)
- Implementace Java, Scala a Javascript Skein 512-512 (na základě verze 1.3)
- Java implementace Skein (na základě verze 1.1)
- Implementace Skein v Ada
- skerl, Skein hash funkce pro Erlang, přes NIF
- Skein 512-512 implementován v Bash
- Skein implementován v Haskellu
- Zdrojový kód VHDL vyvinutý Cryptographic Engineering Research Group (CERG) v Univerzita George Masona
- přadeno Skein implementován v Ruby
- rybí ryby Efektivní implementace Skein-256 pro 8bitové mikroprocesory Atmel AVR, splňující odhady výkonu uvedené v oficiální specifikaci