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.
| 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).