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.

Porovnání funkcí SHA
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).

Reference