Zabezpečené hashovací algoritmy - Secure Hash Algorithms
The Zabezpečené hashovací algoritmy jsou rodina kryptografické hashovací funkce publikoval Národní institut pro standardy a technologie (NIST) jako a NÁS. Federální standard pro zpracování informací (FIPS), včetně:
- SHA-0: A retronym aplikováno na původní verzi 160bitové hashovací funkce publikované v roce 1993 pod názvem „SHA“. Byl stažen krátce po zveřejnění kvůli nezveřejněné „významné chybě“ a nahrazen mírně revidovanou verzí SHA-1.
- SHA-1: 160bitová hash funkce, která se podobá dřívějšímu MD5 algoritmus. To bylo navrženo Národní bezpečnostní agentura (NSA) být součástí Algoritmus digitálního podpisu. V SHA-1 byly objeveny kryptografické slabosti a po roce 2010 již nebyl standard pro většinu kryptografických použití schválen.
- SHA-2: Rodina dvou podobných hashových funkcí s různými velikostmi bloků, známých jako SHA-256 a SHA-512. Liší se velikostí slova; SHA-256 používá 32bajtová slova, kde SHA-512 používá 64bajtová slova. Existují také zkrácené verze každého standardu, známé jako SHA-224, SHA-384, SHA-512/224 a SHA-512/256. Ty byly rovněž navrženy NSA.
- SHA-3: Hashovací funkce dříve nazývaná Keccak, vybrán v roce 2012 po veřejné soutěži mezi designéry, kteří nejsou NSA. Podporuje stejné délky hash jako SHA-2 a jeho vnitřní struktura se výrazně liší od zbytku rodiny SHA.
Odpovídající standardy jsou FIPS PUB 180 (původní SHA), FIPS PUB 180-1 (SHA-1), FIPS PUB 180-2 (SHA-1, SHA-256, SHA-384 a SHA-512). NIST aktualizoval Draft FIPS Publication 202, SHA-3 Standard odděleně od Secure Hash Standard (SHS).
Porovnání funkcí SHA
V následující tabulce vnitřní stav znamená „interní hash součet“ po každé kompresi datového bloku.
Algoritmus a varianta | Výstupní velikost (bity) | Velikost vnitřního stavu (bity) | Velikost bloku (bity) | Kola | Operace | Zabezpečení (v bitů) proti kolizní útoky | Kapacita proti útoky na prodloužení délky | Výkon na Skylake (medián cpb )[1] | Nejprve publikováno | ||
---|---|---|---|---|---|---|---|---|---|---|---|
dlouhé zprávy | 8 bytů | ||||||||||
MD5 (jako reference) | 128 | 128 (4 × 32) | 512 | 64 | A Xor, Rot, Přidat (mod 232), Nebo | ≤18 (nalezeny kolize)[2] | 0 | 4.99 | 55.00 | 1992 | |
SHA-0 | 160 | 160 (5 × 32) | 512 | 80 | A Xor, Rot, Přidat (mod 232), Nebo | <34 (nalezeny kolize) | 0 | ≈ SHA-1 | ≈ SHA-1 | 1993 | |
SHA-1 | <63 (nalezeny kolize)[3] | 3.47 | 52.00 | 1995 | |||||||
SHA-2 | SHA-224 SHA-256 | 224 256 | 256 (8 × 32) | 512 | 64 | A Xor, Rot, Přidat (mod 232), Nebo Shr | 112 128 | 32 0 | 7.62 7.63 | 84.50 85.25 | 2004 2001 |
SHA-384 SHA-512 | 384 512 | 512 (8 × 64) | 1024 | 80 | A Xor, Rot, Přidat (mod 264), Nebo Shr | 192 256 | 128 (≤ 384) 0[4] | 5.12 5.06 | 135.75 135.50 | 2001 | |
SHA-512/224 SHA-512/256 | 224 256 | 112 128 | 288 256 | ≈ SHA-384 | ≈ SHA-384 | 2012 | |||||
SHA-3 | SHA3-224 SHA3-256 SHA3-384 SHA3-512 | 224 256 384 512 | 1600 (5 × 5 × 64) | 1152 1088 832 576 | 24[5] | A Xor, Rot, ne | 112 128 192 256 | 448 512 768 1024 | 8.12 8.59 11.06 15.88 | 154.25 155.50 164.00 164.00 | 2015 |
OTŘEŠTE 128 OTŘES256 | d (libovolný) d (libovolný) | 1344 1088 | min (d/2, 128) min (d/2, 256) | 256 512 | 7.08 8.59 | 155.25 155.50 |
Validace
Všechny algoritmy rodiny SHA, jako bezpečnostní funkce schválené FIPS, podléhají oficiálnímu ověření ze strany CMVP (Cryptographic Module Validation Program), společný program provozovaný Američanem Národní institut pro standardy a technologie (NIST) a Kanaďan Zřízení komunikační bezpečnosti (CSE).
Reference
- ^ "Tabulka měření". bench.cr.yp.to.
- ^ Tao, Xie; Liu, Fanbao; Feng, Dengguo (2013). Rychlý kolizní útok na MD5 (PDF). Archiv kryptologie ePrint (Technická zpráva). IACR.
- ^ Stevens, Marc; Bursztein, Elie; Karpman, Pierre; Albertini, Ange; Markov, Yarik. První kolize pro plný SHA-1 (PDF) (Technická zpráva). Google Research. Shrnutí ležel – Blog zabezpečení Google (23. února 2017).
- ^ Bez zkrácení je známý plný vnitřní stav hashovací funkce, bez ohledu na odolnost proti kolizi. Pokud je výstup zkrácen, musí být odstraněná část stavu prohledána a nalezena před obnovením funkce hash, což umožní pokračování útoku.
- ^ „Rodina funkcí houba Keccak“. Citováno 2016-01-27.