SHA

Allikas: Vikipeedia
Jump to navigation Jump to search

Secure Hash Algorithm ehk SHA on krüptograafiliste räsifunktsioonide perekond, mis arendati välja Ameerika Ühendriikide Riiklikus Standardite ja Tehnoloogia Instituudis koostöös Riikliku julgeolekuagentuuriga.

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

SHA-0 ja SHA-1[muuda | muuda lähteteksti]

SHA-1 räsifunktsiooni skeem

SHA-0 algoritmi esialgne nimi oli lihtsalt SHA, aga hiljem lisandus uuemaid sarnase põhimõttega algoritme, mistõttu võeti kasutusele nimi SHA-0. Aastal 1993 avaldati SHA-1, mis oli esialgse algoritmi edasiarendus. 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 [1].

Microsoft[2], Google[3] ja Mozilla[4] lõpetavad alates 2017. aastast brauserites SHA-1 SSL sertifikaatide aktsepteerimise.

SHA-1 on kasutusel Git[5] ja Mercurial versioonihaldustarkvaras andmete terviklikuse kontrollimise eesmärgil.

SHA-2[muuda | muuda lähteteksti]

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[muuda | muuda lähteteksti]

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

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

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

SHA-2 räsifunktsiooni ühe iteratsiooni skeem

Teadaolevad rünnakud[muuda | muuda lähteteksti]

Artikkel Aasta Ründemeetod Rünnak Variant Tsükleid Keerukus
New Collision Attacks Against
Up To 24-step SHA-2
[9]
2008 Deterministlik Kollisioon SHA-256 24/64 228.5
SHA-512 24/80 232.5
Preimages for step-reduced SHA-2[10] 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
[11]
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
[12]
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
[13]
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
[14]
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
[15]
2014 Heuristiline

diferentsiaalne krüptoanalüüs

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

SHA-3[muuda | muuda lähteteksti]

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[17]. SHA-3 loomise eesmärgiks ei olnud SHA-2 välja vahetamine, vaid pakkuda sellele alternatiivi 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 suurust on vabalt muudetav. SHAKE-funktsioonid on esimesed Riikliku Standardite ja Tehnoloogia Instituudi poolt standardiseeritud XOF funktsioonid[18].

SHA funktsioonide võrdlus[muuda | muuda lähteteksti]

SHA funktsioonide võrdlus

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[19] 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[20])
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[21] 24[22] And, Xor, Rot, Not 112
128
192
256
-
SHAKE128
SHAKE256
d (arbitraarne)
d (arbitraarne)
1344
1088
min(d/2, 128)
min(d/2, 256)
-

Viited[muuda | muuda lähteteksti]

  1. http://csrc.nist.gov/groups/ST/hash/policy.html
  2. http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-authenticode-code-signing-and-timestamping.aspx
  3. https://groups.google.com/a/chromium.org/d/msg/blink-dev/2-R4XziFc7A/i_JipRRJoDQJ
  4. https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/
  5. https://www.youtube.com/watch?v=4XpnKHJAok8
  6. https://web.archive.org/web/20111107215111/http://google.com/codesearch/p?hl=en
  7. http://www.nytimes.com/2009/01/27/science/27arch.html
  8. http://people.redhat.com/drepper/sha-crypt.html
  9. Somitra Kumar Sanadhya & Palash Sarkar (2008). "New Collision Attacks Against Up To 24-step SHA-2". IACR Cryptology ePrint Archive. 2008:270. 
  10. Kazumaro Aoki; Jian Guo; Krystian Matusiewicz; Yu Sasaki & Lei Wang (2009). "Preimages for step-reduced SHA-2". Advances in Cryptology - ASIACRYPT 2009. Lecture Notes in Computer Science (Springer Berlin Heidelberg) 5912: 578–597. ISBN 978-3-642-10366-7. ISSN 0302-9743. doi:10.1007/978-3-642-10366-7_34. 
  11. Jian Guo; San Ling; Christian Rechberger & Huaxiong Wang (2010). "Advanced meet-in-the-middle preimage attacks: First results on full Tiger, and improved results on MD4 and SHA-2". Advances in Cryptology - ASIACRYPT 2010. Lecture Notes in Computer Science (Springer Berlin Heidelberg) 6477: 56–75. ISBN 978-3-642-17373-8. ISSN 0302-9743. doi:10.1007/978-3-642-17373-8_4. 
  12. Mario Lamberger & Florian Mendel (2011). "Higher-Order Differential Attack on Reduced SHA-256". IACR Cryptology ePrint Archive. 2011:37. 
  13. Dmitry Khovratovich, Christian Rechberger & Alexandra Savelieva (2011). "Bicliques for Preimages: Attacks on Skein-512 and the SHA-2 family". IACR Cryptology ePrint Archive. 2011:286. 
  14. Florian Mendel; Tomislav Nad; Martin Schläffer (2013). "Improving Local Collisions: New Attacks on Reduced SHA-256". Advances in Cryptology – EUROCRYPT 2013. Lecture Notes in Computer Science (Springer Berlin Heidelberg) 7881: 262–278. ISBN 978-3-642-38348-9. ISSN 0302-9743. doi:10.1007/978-3-642-38348-9_16. 
  15. Maria Eichlseder and Florian Mendel and Martin Schläffer (2014). "Branching Heuristics in Differential Collision Search with Applications to SHA-512". IACR Cryptology ePrint Archive. 2014:302. 
  16. Christoph Dobraunig; Maria Eichlseder & Florian Mendel (2016). "Analysis of SHA-512/224 and SHA-512/256". 
  17. http://csrc.nist.gov/groups/ST/hash/sha-3/
  18. http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
  19. "The MD5 Message-Digest Algorithm". Vaadatud 2016-04-18. 
  20. "The SHAppening: freestart collisions for SHA-1". Vaadatud 2015-11-05. 
  21. "The Sponge Functions Corner". Vaadatud 2016-01-27. 
  22. "The Keccak sponge function family". Vaadatud 2016-01-27.