Zabezpečené hashovací algoritmy - Secure Hash Algorithms
Tyto bezpečné Hash algoritmy jsou rodina kryptografické hashovací funkce, publikované National Institute of Standards and Technology (NIST) jako US Federal Information Processing Standard (FIPS), včetně:
- SHA-0 : Retronym použitý pro 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á hashovací funkce, která se podobá dřívějšímualgoritmu MD5 . Toto bylo navrženo Národní bezpečnostní agenturou (NSA) jako součást algoritmu digitálního podpisu . V SHA-1 byly objeveny kryptografické nedostatky a po roce 2010 již tento standard nebyl schválen pro většinu kryptografických použití.
- SHA-2 : Rodina dvou podobných hashovacích funkcí s různými velikostmi bloků, označovaných jako SHA-256 a SHA-512 . Liší se velikostí slova; SHA-256 používá 32bitová slova, kde SHA-512 používá 64bitová 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 také navrženy NSA.
- SHA-3 : Hašovací funkce dříve nazývaná Keccak , zvolená v roce 2012 po veřejné soutěži mezi návrháři mimo 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ími 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 aktualizovala návrh FIPS publikace 202, SHA-3 Standard odděleně od standardu Secure Hash (SHS).
Porovnání funkcí SHA
V níže uvedené tabulce vnitřní stav znamená „vnitřní součet hash“ 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í před kolizními útoky (bity) |
Zabezpečení proti útokům na prodloužení délky (bity) |
Výkon na Skylake (medián CPB ) | Poprvé publikováno | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Dlouhé zprávy | 8 bajtů | ||||||||||
| MD5 (jako reference) | 128 | 128 (4 × 32) |
512 | 64 | A Xor, Rot, Add (mod 2 32 ), Or | ≤ 18 (nalezeny kolize) |
0 | 4,99 | 55,00 | 1992 | |
| SHA-0 | 160 | 160 (5 × 32) |
512 | 80 | A Xor, Rot, Add (mod 2 32 ), Or | <34 (nalezeny kolize) |
0 | ≈ SHA-1 | ≈ SHA-1 | 1993 | |
| SHA-1 | <63 (nalezeny kolize) |
3,47 | 52,00 | 1995 | |||||||
| SHA-2 |
SHA-224 SHA-256 |
224 256 |
256 (8 × 32) |
512 | 64 | And, Xor, Rot, Add (mod 2 32 ), Or, 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 | And, Xor, Rot, Add (mod 2 64 ), Or, Shr | 192 256 |
128 (≤ 384) 0 |
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 | 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 |
|
SHAKE128 SHAKE256 |
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 řady SHA, jako bezpečnostní funkce schválené FIPS, podléhají oficiální validaci CMVP (program pro ověřování kryptografických modulů), což je společný program provozovaný Americkým národním institutem pro standardy a technologie (NIST) a Kanadskou komunikační bezpečnostní institucí (CSE).