Porovnání kryptografických hashovacích funkcí - Comparison of cryptographic hash functions
Následující tabulky porovnávají obecné a technické informace pro řadu kryptografické hashovací funkce. Další informace najdete v článcích jednotlivých funkcí. Tento článek není vyčerpávající nebo nutně aktuální. Přehled zabezpečení / kryptoanalýzy hash funkce najdete na shrnutí zabezpečení funkce hash.
Obecná informace
Základní obecné informace o kryptografické hashovací funkce: rok, designér, reference atd.
Parametry
Algoritmus | Výstupní velikost (bity) | Velikost vnitřního stavu[poznámka 1] | Velikost bloku | Délka | Velikost slova | Kola |
---|---|---|---|---|---|---|
BLAKE2b | 512 | 512 | 1024 | 128[poznámka 2] | 64 | 12 |
BLAKE2s | 256 | 256 | 512 | 64[Poznámka 3] | 32 | 10 |
BLAKE3 | Neomezený | 256[poznámka 4] | 512 | 64 | 32 | 7 |
GOST | 256 | 256 | 256 | 256 | 32 | 32 |
HAVAL | 256/224/192/160/128 | 256 | 1024 | 64 | 32 | 3/4/5 |
MD2 | 128 | 384 | 128 | – | 32 | 18 |
MD4 | 128 | 128 | 512 | 64 | 32 | 3 |
MD5 | 128 | 128 | 512 | 64 | 32 | 64 |
PANAMA | 256 | 8736 | 256 | – | 32 | – |
RadioGatún | Neomezený[poznámka 5] | 58 slov | 19 slov[poznámka 6] | – | 1–64[poznámka 7] | 18[poznámka 8] |
RIPEMD | 128 | 128 | 512 | 64 | 32 | 48 |
RIPEMD -128, -256 | 128/256 | 128/256 | 512 | 64 | 32 | 64 |
RIPEMD -160 | 160 | 160 | 512 | 64 | 32 | 80 |
RIPEMD -320 | 320 | 320 | 512 | 64 | 32 | 80 |
SHA-0 | 160 | 160 | 512 | 64 | 32 | 80 |
SHA-1 | 160 | 160 | 512 | 64 | 32 | 80 |
SHA-224, -256 | 224/256 | 256 | 512 | 64 | 32 | 64 |
SHA-384, -512, -512/224, -512/256 | 384/512/224/256 | 512 | 1024 | 128 | 64 | 80 |
SHA-3 | 224/256/384/512[poznámka 9] | 1600 | 1600 - 2 * bity | –[poznámka 10] | 64 | 24 |
SHA3-224 | 224 | 1600 | 1152 | – | 64 | 24 |
SHA3-256 | 256 | 1600 | 1088 | – | 64 | 24 |
SHA3-384 | 384 | 1600 | 832 | – | 64 | 24 |
SHA3-512 | 512 | 1600 | 576 | – | 64 | 24 |
Tygr (2) -192/160/128 | 192/160/128 | 192 | 512 | 64 | 64 | 24 |
vířivá vana | 512 | 512 | 512 | 256 | 8 | 10 |
Poznámky
- ^ The vnitřní stav zde znamená „interní hash součet“ po každé kompresi datového bloku. Většina hashovacích algoritmů také interně používá některé další proměnné, jako je délka dosud komprimovaných dat, protože je to nakonec nutné pro délkovou výplň. Viz Konstrukce Merkle – Damgård pro detaily.
- ^ Velikost čítače délky zprávy BLAKE2b je 128bitová, ale počítá délku zprávy v bajtech, ne v bitech jako ostatní hash funkce ve srovnání. Může tedy zpracovávat osmkrát delší zprávy, než by navrhovala velikost 128 bitů (jeden bajt se rovná osmi bitům). Délka délky 131 bitů je srovnatelná velikost délky ().
- ^ Velikost čítače délky zprávy BLAKE2s je 64bitová, ale počítá délku zprávy v bajtech, ne v bitech jako ostatní hash funkce ve srovnání. Může tedy zpracovávat osmkrát delší zprávy, než by navrhovala velikost 64bitové délky (jeden bajt se rovná osmi bitům). Délka délky 67 bitů je srovnatelná velikost délky ().
- ^ Plný přírůstkový stav BLAKE3 zahrnuje zásobník hodnot zřetězení až do velikosti 1728 bajtů. Samotná funkce komprese však k tomuto zásobníku nepřistupuje. Menší zásobník lze také použít, pokud je omezena maximální délka vstupu.
- ^ RadioGatún je funkce rozšiřitelného výstupu, což znamená, že má výstup neomezené velikosti. Oficiální testovací vektory jsou 256bitové hashe. RadioGatún tvrdí, že má úroveň zabezpečení kryptografické funkce houba Velikost 19 slov, což znamená, že 32bitová verze má při pohledu zabezpečení 304bitové hodnoty hash preimage útoky, ale bezpečnost 608bitového hash při pohledu na kolizní útoky. 64bitová verze má rovněž zabezpečení 608bitové nebo 1216bitové hodnoty hash. Pro účely určení, jak zranitelný je RadioGatún útoky na prodloužení délky, mezi operacemi hašovací komprese jsou vydávána pouze dvě slova ve stavu 58 slov.
- ^ RadioGatún není konstrukce Merkle – Damgård a jako taková nemá velikost bloku. Jeho opasek má velikost 39 slov; jeho mlýn, což je nejbližší věc, kterou RadioGatún má k „bloku“, je 19 slov velký.
- ^ Pouze 32bitové a 64bitové verze RadioGatún mají oficiální testovací vektory
- ^ 18 prázdných kol je v RadioGatúnu použito pouze jednou, mezi koncem fáze mapování vstupu a před generováním výstupních bitů
- ^ Ačkoli základní algoritmus Keccak má libovolné hash délky, NIST specifikoval výstup 224, 256, 384 a 512 bitů jako platné režimy pro SHA-3.
- ^ Závisí na implementaci; podle části 7, druhý odstavec ze spodní části stránky 22, FIPS PUB 202.
Funkce komprese
Následující tabulky porovnávají technické informace pro kompresní funkce z kryptografické hashovací funkce. Informace pocházejí ze specifikací, další podrobnosti najdete v nich.
Funkce | Velikost (bity )[poznámka 1] | Slova × Průkazy = Kola[poznámka 2] | Operace[Poznámka 3] | Endian[poznámka 4] | |||||
---|---|---|---|---|---|---|---|---|---|
Slovo | Strávit | Řetězení hodnoty[poznámka 5] | Výpočet hodnoty[poznámka 6] | Blok | Délka [poznámka 7] | ||||
GOST R 34.11-94 | 32 | ×8 = 256 | ×8 = 256 | 32 | 4 | A B L S | Málo | ||
HAVAL-3-128 | 32 | ×4 = 128 | ×8 = 256 | ×32 = 1,024 | 64 | 32 × 3 = 96 | BŘIŠNÍ SVALY | Málo | |
HAVAL-3-160 | ×5 = 160 | ||||||||
HAVAL-3-192 | ×6 = 192 | ||||||||
HAVAL-3-224 | ×7 = 224 | ||||||||
HAVAL-3-256 | ×8 = 256 | ||||||||
HAVAL-4-128 | ×4 = 128 | 32 × 4 = 128 | |||||||
HAVAL-4-160 | ×5 = 160 | ||||||||
HAVAL-4-192 | ×6 = 192 | ||||||||
HAVAL-4-224 | ×7 = 224 | ||||||||
HAVAL-4-256 | ×8 = 256 | ||||||||
HAVAL-5-128 | ×4 = 128 | 32 × 5 = 160 | |||||||
HAVAL-5-160 | ×5 = 160 | ||||||||
HAVAL-5-192 | ×6 = 192 | ||||||||
HAVAL-5-224 | ×7 = 224 | ||||||||
HAVAL-5-256 | ×8 = 256 | ||||||||
MD2 | 8 | ×16 = 128 | ×32 = 256 | ×48 = 384 | ×16 = 128 | Žádný | 48 × 18 = 864 | B | N / A |
MD4 | 32 | ×4 = 128 | ×16 = 512 | 64 | 16 × 3 = 48 | BŘIŠNÍ SVALY | Málo | ||
MD5 | 16 × 4 = 64 | ||||||||
RIPEMD | 32 | ×4 = 128 | ×8 = 256 | ×16 = 512 | 64 | 16 × 3 = 48 | BŘIŠNÍ SVALY | Málo | |
RIPEMD-128 | 16 × 4 = 64 | ||||||||
RIPEMD-256 | ×8 = 256 | ||||||||
RIPEMD-160 | ×5 = 160 | ×10 = 320 | 16 × 5 = 80 | ||||||
RIPEMD-320 | ×10 = 320 | ||||||||
SHA-0 | 32 | ×5 = 160 | ×16 = 512 | 64 | 16 × 5 = 80 | BŘIŠNÍ SVALY | Velký | ||
SHA-1 | |||||||||
SHA-256 | ×8 = 256 | ×8 = 256 | 16 × 4 = 64 | ||||||
SHA-224 | ×7 = 224 | ||||||||
SHA-512 | 64 | ×8 = 512 | ×8 = 512 | ×16 = 1024 | 128 | 16 × 5 = 80 | |||
SHA-384 | ×6 = 384 | ||||||||
Tiger-192 | 64 | ×3 = 192 | ×3 = 192 | ×8 = 512 | 64 | 8 × 3 = 24 | A B L S | Nespecifikováno | |
Tiger-160 | ×2.5=160 | ||||||||
Tygr-128 | ×2 = 128 | ||||||||
Funkce | Slovo | Strávit | Řetězení hodnoty | Výpočet hodnoty | Blok | Délka | Slova × Průkazy = Kola | Operace | Endian |
Velikost (bity ) |
Poznámky
- ^ Vynechané multiplikátory jsou velikosti slov.
- ^ Někteří autoři si vyměňují průchody a kola.
- ^ A: sčítání, odčítání; B: bitový provoz; L: vyhledávací tabulka; S: posun, rotace.
- ^ Odkazuje to na byte pouze endianismus. Pokud operace sestávají pouze z bitových operací a vyhledávacích tabulek, endianness je irelevantní.
- ^ Velikost přehledu zpráv se rovná velikosti hodnot zřetězení obvykle. V zkrácených verzích určitých kryptografických hashových funkcí, jako je SHA-384, je první méně než druhá.
- ^ Velikost zřetězení hodnot se rovná velikosti výpočtových hodnot obvykle. V některých kryptografických hašovacích funkcích, jako je RIPEMD-160, je první menší než druhá, protože RIPEMD-160 používá dvě sady paralelních výpočtových hodnot a poté je kombinuje do jedné sady hodnot zřetězení.
- ^ Maximální velikost vstupu = 2velikost délky − 1 bity. Například maximální velikost vstupu SHA-1 = 264 - 1 bit.
Viz také
Reference
- ^ Dobbertin, Hans; Bosselaers, Antoon; Preneel, Bart (21. – 23. Února 1996). RIPEMD-160: Posílená verze RIPEMD (PDF). Rychlé softwarové šifrování. Třetí mezinárodní workshop. Cambridge, Velká Británie. 71–82. doi:10.1007/3-540-60865-6_44.
externí odkazy
- ECRYPT Benchmarking kryptografických hashů - měření rychlosti hash funkce na různých platformách
- Web funkce ECRYPT Hash - Wiki pro kryptografické hashovací funkce
- Projekt SHA-3 - Informace o soutěži SHA-3