factograf
ET
Sign in

SHA

Secure Hash Algorithm ehk SHA on krüptograafiliste räsifunktsioonide tootepere, mis töötati välja Ameerika Ühendriikide Riiklikus Standardite ja Tehnoloogia Instituudis (NIST) koostöös Riikliku julgeolekuagentuuriga.

SHA algoritmide tooteperre kuuluvad SHA-0, SHA-1, SHA-2 ja SHA-3.

SHA-0 ja SHA-1

SHA-1 räsifunktsiooni skeem
SHA-1 räsifunktsiooni skeem

SHA-0 algoritmi algne nimi oli SHA, kuid uuemate sarnase põhimõttega algoritmide lisandumisel võeti kasutusele nimi SHA-0. 1993. aastal avaldati algse algoritmi edasiarendus SHA-1. Uues algoritmis oli parandatud varem leitud turvaauk, kusjuures SHA-0 ja SHA-1 erinevad ainult ühe tehte võrra. Praeguseks on SHA-1 algoritm kuulutatud ebaturvaliseks ning NIST soovitab riigiorganisatsioonidel kasutada uuemaid SHA räsifunktsioone.

Microsoft, Google ja Mozilla lõpetasid 2017. aastast brauserites SHA-1 kasutavate SSL sertifikaatide toetamise.

SHA-1 on kasutusel Giti ja Mercuriali versioonihaldustarkvaras andmete terviklikkuse kontrollimise eesmärgil.

SHA-2

SHA-2 räsifunktsiooni ühe iteratsiooni skeem
SHA-2 räsifunktsiooni ühe iteratsiooni skeem

SHA-2 perekonda kuuluvad räsifunktsioonid SHA-256 ja SHA-512. SHA-256 kasutab 32-bitiseid sõnu ning SHA-512 64-bitiseid sõnu.

Rakendused

SHA-2 räsifunktsioon on kasutusel sellistes rakendustes ja protokollides nagu TLS, SSL, PGP, SSH, S/MIME ja IPsec.

SHA-256 funktsiooni kasutatakse Debian GNU ja Linuxi tarkvarapakkide autentimisel ja DKIM sõnumite allkirjastamise standardis. SHA-512 on kasutusel süsteemis, mis autendib arhiivitud videoid Rwanda genotsiidi tribunalist. Linuxi ja UNIXi arendajatel on kavas paroolide räsimiseks võtta kasutusele SHA-256 ja SHA-512.

Bitcoin kasutab SHA-256 funktsiooni tehingute verifitseerimiseks ja toimingutõestuse arvutamisel.

Teadaolevad rünnakud

Artikkel Aasta Ründemeetod Rünnak Variant Tsükleid Keerukus
New Collision Attacks Against
Up To 24-step SHA-2
2008 Deterministlik Kollisioon SHA-256 24/64 228.5
SHA-512 24/80 232.5
Preimages for step-reduced SHA-2 2009 Keskelkohterünne Originaalirünne SHA-256 42/64 2251.7
43/64 2254.9
SHA-512 42/80 2502.3
46/80 2511.5
Advanced meet-in-the-middle
preimage attacks
2010 Keskelkohterünne Originaalirünne SHA-256 42/64 2248.4
SHA-512 42/80 2494.6
Higher-Order Differential Attack
on Reduced SHA-256
2011 Diferentsiaalne krüptoanalüüs Pseudokollisioon SHA-256 46/64 2178
33/64 246
Bicliques for Preimages: Attacks on
Skein-512 and the SHA-2 family
2011 Keskelkohterünne Originaalirünne SHA-256 45/64 2255.5
SHA-512 50/80 2511.5
Pseudo-originaalirünne SHA-256 52/64 2255
SHA-512 57/80 2511
Improving Local Collisions: New
Attacks on Reduced SHA-256
2013 Diferentsiaalne krüptoanalüüs Kollisioon SHA-256 31/64 265.5
Pseudokollisioon SHA-256 38/64 237
Branching Heuristics in Differential Collision
Search with Applications to SHA-512
2014 Heuristiline

diferentsiaalne krüptoanalüüs

Pseudokollisioon SHA-512 38/80 240.5
Analysis of SHA-512/224 and SHA-512/256 2016 Diferentsiaalne krüptoanalüüs Kollisioon SHA-256 28/64 praktiline
SHA-512 27/80 praktiline
Pseudokollisioon SHA-512 39/80 praktiline

SHA-3

SHA-3 loodi Riikliku Standardite ja Tehnoloogia Instituudi poolt peetud avaliku konkursi käigus. Konkursi komisjoni poolt väljavalituks osutunud räsialgoritmi Keccak loojateks on Guido Bertoni, Joan Daemen, Michaël Peeters ja Gilles Van Assche. SHA-3 loomise eesmärk ei olnud SHA-2 väljavahetamine, vaid sellele alternatiivi pakkumine juhul kui SHA-2 algoritmis avastatakse turvaauke.

SHA-3 perekonda kuuluvad laiendatava väljundiga räsifunktsioonid (ingl extendable-output function, XOF) SHAKE128 ja SHAKE256, mille väljundi suurus on vabalt muudetav. SHAKE-funktsioonid on esimesed Riikliku Standardite ja Tehnoloogia Instituudi poolt standardiseeritud XOF funktsioonid.

SHA funktsioonide võrdlus

SHA funktsioonide võrdlus
  • vaata
  • redigeeri
Algoritmi variant Väljundi suurus
(bittides)
Sisemise oleku suurus
(bittides)
Ploki suurus
(bittides)
Maksimaalne sisendi suurus
(bittides)
Tsüklite arv Tehted Turvalisus
(bittides)
Arvutuskiirus [1]
(MiB/s)
MD5 (võrdluseks) 128 128
(4 × 32)
512 Piiramatu 64 And, Xor, Rot, Add (mod 232), Or <64
(on leitud kollisioone)
335
SHA-0 160 160
(5 × 32)
512 264 − 1 80 And, Xor, Rot, Add (mod 232), Or <80
(on leitud kollisioone)
-
SHA-1 160 160
(5 × 32)
512 264 − 1 80 <80
(teoreetiline rünnak)
192
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 264 − 1 64 And, Xor, Rot, Add (mod 232), Or, Shr 112
128
139
SHA-384
SHA-512
SHA-512/224
SHA-512/256
384
512
224
256
512
(8 × 64)
1024 2128 − 1 80 And, Xor, Rot, Add (mod 264), Or, Shr 192
256
112
128
154
SHA-3 SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
Piiramatu 24 And, Xor, Rot, Not 112
128
192
256
-
SHAKE128
SHAKE256
d (arbitraarne)
d (arbitraarne)
1344
1088
min(d/2, 128)
min(d/2, 256)
-

Read next

In 26 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article