Sikre hash -algoritmer - Secure Hash Algorithms

De sikre Hash -algoritmene er en familie av kryptografiske hashfunksjoner utgitt av National Institute of Standards and Technology (NIST) som en amerikansk Federal Information Processing Standard (FIPS), inkludert:

  • SHA-0 : Et retronym som ble brukt på den opprinnelige versjonen av 160-biters hashfunksjon som ble publisert i 1993 under navnet "SHA". Den ble trukket tilbake kort tid etter publisering på grunn av en ikke avslørt "betydelig feil" og erstattet av den litt reviderte versjonen SHA-1.
  • SHA-1 : En 160-biters hashfunksjon som ligner den tidligere MD5- algoritmen. Dette ble designet av National Security Agency (NSA) for å være en del av Digital Signature Algorithm . Kryptografiske svakheter ble oppdaget i SHA-1, og standarden ble ikke lenger godkjent for de fleste kryptografiske bruksområder etter 2010.
  • SHA-2 : En familie med to lignende hashfunksjoner, med forskjellige blokkstørrelser, kjent som SHA-256 og SHA-512 . De er forskjellige i ordstørrelsen; SHA-256 bruker 32-biters ord der SHA-512 bruker 64-biters ord. Det er også avkortede versjoner av hver standard, kjent som SHA-224 , SHA-384 , SHA-512/224 og SHA-512/256 . Disse ble også designet av NSA.
  • SHA-3 : En hashfunksjon som tidligere ble kalt Keccak , valgt i 2012 etter en offentlig konkurranse blant ikke-NSA-designere. Den støtter de samme hasjlengdene som SHA-2, og dens interne struktur skiller seg vesentlig fra resten av SHA-familien.

De tilsvarende standardene er FIPS PUB 180 (original SHA), FIPS PUB 180-1 (SHA-1), FIPS PUB 180-2 (SHA-1, SHA-256, SHA-384 og SHA-512). NIST har oppdatert Draft FIPS Publication 202, SHA-3 Standard atskilt fra Secure Hash Standard (SHS).

Sammenligning av SHA -funksjoner

I tabellen nedenfor betyr intern tilstand den "interne hash -summen" etter hver komprimering av en datablokk.

Sammenligning av SHA -funksjoner
Algoritme og variant Utgangsstørrelse
(bits)
Intern tilstandsstørrelse
(bits)
Blokkstørrelse
(biter)
Runder Operasjoner Sikkerhet mot kollisjonsangrep
(bits)
Sikkerhet mot lengdeforlengelsesangrep
(bits)
Ytelse på Skylake (median cpb ) Først publisert
Lange meldinger 8 byte
MD5 (som referanse) 128 128
(4 × 32)
512 64 Og, Xor, Rot, Add (mod 2 32 ), Or ≤ 18
(kollisjoner funnet)
0 4,99 55,00 1992
SHA-0 160 160
(5 × 32)
512 80 Og, Xor, Rot, Add (mod 2 32 ), Or <34
(kollisjoner funnet)
0 ≈ SHA-1 ≈ SHA-1 1993
SHA-1 <63
(kollisjoner funnet)
3,47 52,00 1995
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 64 Og, 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 Og, 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 Og, Xor, Rot, Not 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 (vilkårlig)
d (vilkårlig)
1344
1088
min ( d /2, 128)
min ( d /2, 256)
256
512
7,08
8,59
155,25
155,50

Validering

Alle algoritmer fra SHA-familien, som FIPS-godkjente sikkerhetsfunksjoner, er gjenstand for offisiell validering av CMVP (Cryptographic Module Validation Program), et felles program som drives av American National Institute of Standards and Technology (NIST) og Canadian Communications Security Establishment (CSE).

Referanser