Secure Hash reiknirit

frá Wikipedia, ókeypis alfræðiorðabókinni
Fara í siglingar Fara í leit

Hugtakið Secure Hash Algorithm ( SHA í stuttu máli, enska fyrir secure hash algoritm ) lýsir hópi staðlaðra dulritunarlegra kjötkássa aðgerða . Þetta er notað til að reikna út prófgildi fyrir stafræn gögn (skilaboð) og eru meðal annars grunnurinn að því að búa til stafræna undirskrift .

Athugunargildið er notað til að tryggja heilindi skilaboða. Ef tvö skilaboð leiða til sama eftirlitsgildis ætti að tryggja jafnræði skilaboðanna samkvæmt venjulegu valdi, án fyrirvara um vísvitandi tilraunir til meðhöndlunar á skilaboðunum. Þetta er ástæðan fyrir því að dulrituð kjötkássaaðgerð þarf að vera árekstrarlaus : það ætti að vera nánast ómögulegt að búa til tvö mismunandi skilaboð með sama athugunargildi.

Saga - SHA / SHA -0

National Institute of Standards and Technology (NIST) ásamt National Security Agency (NSA) þróuðu kjötkássaaðgerð sem hluti af Digital Signature Algorithm (DSA) fyrir Digital Signature Standard (DSS). Aðgerðin var gefin út árið 1993. Þessi staðall, þekktur sem Secure Hash Standard (SHS), tilgreinir örugg kjötkássa reiknirit (SHA) með kjötkássa gildi 160 bita fyrir öll stafræn gögn með hámarkslengd 2 64 - 1 bita (≈ 2 Exbibytes ).

Eins og MD4 og MD5 þróað af Ronald L. Rivest , er SHA Merkle-Damgård smíði með Davies-Meyer þjöppunaraðgerð og þjöppunaraðgerðin er einnig smíðuð á sama hátt og þessar. Með lengra kjötkássaverðmæti 160 bita samanborið við 128 bita fyrir MD4 og MD5, er SHA ónæmari fyrir árásum á ofbeldi til að finna árekstra.

Skilaboðin eru með endahluta sem nær til kóðunar á lengd upphaflegu skilaboðanna. Síðan er henni skipt í 512 bita langa kubba, sem eru unnir hver eftir annan. Í þessum tilgangi, innri gögn blokk 160 bita er dulkóðuð með blokk dulkóðun með skilaboð blokk sem lykill. Einfaldur texti verður síðan dulmálstexta orð fyrir orð modulo bætt við. Gagnablokkin sem reiknuð er með þessum hætti er nú dulkóðuð með næstu skilaboðablokk eða útgangi sem kjötkássa gildi eftir að síðasta skilaboðablokkin hefur verið tekin upp.

SHA-1

Byggja hring af SHA-0 og SHA-1

Upprunalega SHA var leiðrétt strax árið 1995 vegna „hönnunargalla“ og gegndi því varla hlutverki í framkvæmd. Það er þekkt í dag sem SHA-0 , leiðrétt afbrigði sem SHA-1 .

Leiðréttingin felst aðeins í smáatriðum ( snúningur gagnaorðs í lykilflokkuninni), en ekki í fjölda umferða sem eru keyrðar í gegnum eða aðrar ráðstafanir sem benda strax til verulega hærra öryggisstigs. Hins vegar staðfestir dulgreiningin að snúningurinn gerir útreikninga á árekstrum mun erfiðari.

veikleikar

Hinn 15. febrúar 2005 greindi dulritunarfræðingurinn Bruce Schneier frá því í bloggi sínu [1] að vísindamennirnir Xiaoyun Wang, Yiqun Lisa Yin og Hongbo Yu frá Shandong háskólanum í Kína hefðu með góðum árangri brotið SHA-1. Þeim tókst að draga úr vinnu við útreikning á árekstrinum úr 2 80 í 2 69 . [2] 2 69 útreikninga gætu hugsanlega verið gerðir með afkastamiklum tölvum.

Skömmu síðar, 17. ágúst 2005, var hannað af Xiaoyun Wang, Andrew Yao og Frances Yao á ráðstefnunni árið 2005 CRYPTO kynnti aðra, skilvirkari árekstrarárás á SHA-1, sem dregur úr reiknivél á tveimur 63.

Í ágúst 2006 var mun alvarlegri árás á SHA-1 kynnt á CRYPTO 2006. Hægt er að velja allt að 25% falsaðra skilaboða. Í fyrri árekstrarárásum voru svokallaðir kjötkássa tvíburar aðeins myndaðir með tilgangslausum bókstafssamsetningum af textanum. Þetta var auðþekkjanlegt.

Gagnrýnin árás atburðarás krefst þess að árásarmenn búi til annað, að hluta þýðingarmikið afbrigði af skjali sem skilar sama SHA-1 gildi og þar með sömu undirskrift. 75% tilgangslausra persóna sem eftir eru eftir árásina (þ.e. sorpgögn) geta verið tæknilega falin fyrir þjálfuðum áhorfendum. Árásarmaðurinn getur fullyrt að fölsuð afbrigði hafi verið undirrituð í stað upprunalegu afbrigðisins.

Í október 2015 birtu Marc Stevens, Pierre Karpman og Thomas Peyrin sjálfstæða árekstur vegna þjöppunaraðgerðar SHA1. Þetta þýddi að fyrri áætlanir um hvenær væri mögulegt á hvaða kostnaði að finna árekstra sem höfðu valið forskeyti fyrir að falsa TLS vottorð fyrir SHA-1 vegna aukinnar tölvuorku áttu ekki lengur við. [3] [4] Þeir mæltu með því að flytja úr SHA-1 í SHA-2 eða SHA-3 eins fljótt og auðið er.

Í febrúar 2017 birtu starfsmenn Google fyrsta árekstur SHA-1. Þeir bjuggu til tvær mismunandi starfandi PDF skrár með sama SHA-1 athugunargildi með gríðarlegri fyrirhöfn. Ein örgjörvi hefði tekið um 6500 ár að gera þetta. [5]
Árið 2019 þurfti 2, 66,9 til 2 69,4 SHA-1 útreikninga, sem almennt þekktar valdar voru, til að finna árekstra. Árið 2017 samsvaraði þetta 100 ára tölvugetu GPU. [6]

meðmæli

Til að bregðast við þekktum árásum á SHA-1 hélt National Institute of Standards and Technology (NIST) vinnustofu í október 2005 þar sem rætt var um núverandi stöðu dulmáls kjötkássa. NIST mælir með því að fara úr SHA-1 yfir í kjötkássaaðgerðir SHA-2 fjölskyldunnar (SHA-224, SHA-256, SHA-384, SHA-512). Til lengri tíma litið verður að skipta út þessum nýja staðli SHA-3 . Í október 2015 mælti Bruce Schneier með því að flytja til SHA-3. [4]

Dæmi um hass

 SHA1 (" F ranz eltir yfir Bæjaralandi í algjörlega vanræktum leigubíl")
 = 68ac906495480a3404beee4874ed853a037a7a8f

Vélritun (G í stað F) breytir textanum aðeins um einn bita (ASCII kóða 0x47 í stað 0x46):

 SHA1 (" G ranz eltir þvert yfir Bæjaralandi í algjörlega vanræktum leigubíl")
 = 89fdde0b28373dc4f361cfb810b35342cc2c3232

Lítil breyting á skilaboðunum skapar allt aðra kjötkássu. Þessi eign er einnig þekkt sem snjóflóðáhrif í dulritun .

Kassinn í núlllengdum streng er:

 SHA1 ("")
 = da39a3ee5e6b4b0d3255bfef95601890afd80709

Gervikóði

Dulkóðun fyrir SHA-1 fylgir hér á eftir.

 // Athugið: Allar breytur eru ómerkt 32-bita gildi og
// hegða sér samhljóða í útreikningum (≡) modulo 2 ^ 32
// frumstilla breyturnar:
var int h0: = 0x67452301
var int h1: = 0xEFCDAB89
var int h2: = 0x98BADCFE
var int h3: = 0x10325476
var int h4: = 0xC3D2E1F0
// undirbúningur skilaboðanna 'skilaboð':
var int message_laenge: = bit_length (skilaboð)
stækka skilaboðin í bita "1"
lengja skeyti með bitum "0" upp að lengd skilaboða í bitum  448 (mod 512)
lengja skilaboð með message_length sem 64-bita stór-endian heiltölu
// Vinnið skilaboðin í 512 bita blokkum í röð:
fyrir hvert 512-bita blokk skilaboð
   skiptu reitnum í 16 32-bita stórendian orð w (i), 0 ≤ i ≤ 15
// Stækkaðu 16 32-bita orðin í 80 32-bita orð:
   fyrir alla frá 16 til 79
       w (i): = (w (i-3) xor w (i-8) xor w (i-14) xor w (i-16)) vinstri snúningur 1
// frumstilltu kjötkássaverðmæti fyrir þessa reit:
   var int a: = h0
   var int b: = h1
   var int c: = h2
   var int d: = h3
   var int e: = h4
// aðal lykkja:
   fyrir alla i frá 0 til 79
       ef 0 ≤ i ≤ 19 þá
           f: = (b og c) eða (( ekki b) og d)
           k: = 0x5A827999
       annars ef 20 ≤ i ≤ 39 þá
           f: = b xor c xor d
           k: = 0x6ED9EBA1
       annað ef 40 ≤ i ≤ 59 þá
           f: = (b og c) eða (b og d) eða (c og d)
           k: = 0x8F1BBCDC
       annars ef 60 ≤ i ≤ 79 þá
           f: = b xor c xor d
           k: = 0xCA62C1D6
       ef_end
temp: = ( vinstri snúningur 5) + f + e + k + w (i)
       e: = d
       d: = c
       c: = b vinstri snúningur 30
       b: = a
       a: = hitastig
// Bæta við kjötkássa verðmæti blokkarinnar við summu fyrri hassa:
   h0: = h0 + a
   h1: = h1 + b
   h2: = h2 + c
   h3: = h3 + d
   h4: = h4 + e
melta = kjötkássa = H0 viðskeytingarfyrirspurn h1 viðskeytingarfyrirspurn h2 viðskeytingarfyrirspurn h3 viðskeytingarfyrirspurn h4 // (eins og sýnt er stór-Endian )

Athugið: Í stað upprunalegu samsetningarinnar frá FIPS PUB 180-1 er einnig hægt að nota eftirfarandi samsetningar sem valkost:

 (0 ≤ i ≤ 19): f: = d xor (b og (c xor d)) (val)
(40 ≤ i ≤ 59): f: = (b og c) eða (d og (b eða c)) (valkostur 1)
(40 ≤ i ≤ 59): f: = (b og c) eða (d og (b xor c)) (valkostur 2)
(40 ≤ i ≤ 59): f: = (b og c) + (d og (b xor c)) (valkostur 3)
(40 ≤ i ≤ 59): f: = (b og c) xor (d og (b xor c)) (valkostur 4)

SHA-2

NIST hefur birt fjögur önnur afbrigði af reikniritinu sem búa til stærri kjötkássa gildi. Þetta eru SHA-224, SHA-256, SHA-384 og SHA-512, með meðfylgjandi númeri sem gefur til kynna lengd kjötkássa (í bitum). Útgáfunum SHA-512/256 og SHA-512/224 var bætt við síðar. Þessi frekari þróun er oft dregin saman undir tilnefningunni SHA-2. Þau eru byggð á sömu byggingarreglu og SHA-1, aðeins hefur innri gagnablokkin verið stækkuð í 256 eða 512 bita og dulkóðuninni sem þjöppunaraðgerðin byggist á hefur verið breytt.

SHACAL blokk dulkóðunin var fengin úr SHA-1 og SHA-256 reikniritunum. Þetta samanstendur í grundvallaratriðum af innri dulritun SHA-1 eða SHA-256, sem er notað hér ein og sér.

SHA-3

Vegna þess að grundvallar veikleikar í Merkle-Damgård uppbyggingunni komu í ljós árið 2004 leitaði NIST að nýrri kjötkássuaðgerð sem ætti að vera mun framtíðarsýnari en SHA-2. Það kallaði á samkeppni, eins og það gerði áður fyrir Advanced Encryption Standard (AES). Valið féll á Keccak í október 2012, sem síðan var staðlað í ágúst 2015 undir tilnefningunni SHA-3 í ýmsum afbrigðum. SHA-3 hefur í grundvallaratriðum aðra uppbyggingu en SHA-2, nefnilega sem svokölluð svampbygging .

Upplýsingar

  • RFC 3174 , US Secure Hash Algorithm 1 (SHA1) (september 2001)
  • RFC 4634 , US Secure Hash Algorithms (SHA og HMAC-SHA) (júlí 2006)
  • RFC 6234 , US Secure Hash Algorithms (SHA og SHA-undirstaða HMAC og HKDF) (maí 2011)

Sjá einnig

Vefsíðutenglar

Veikleikar SHA

Einstök sönnunargögn

  1. Bruce Schneier : SHA-1 Broken. 15. febrúar 2005, opnaður 10. desember 2011 .
  2. Xiaoyun Wang, Yiqun Lisa Yin og Hongbo Yu: Finndu árekstra í fullri SHA-1 . Í: CRYPTO . 2005, bls.   17-36 ( PDF ).
  3. https://sites.google.com/site/itstheshappening/
  4. a b https://www.schneier.com/blog/archives/2015/10/sha-1_freestart.html
  5. Marc Stevens, Elie Bursztein, Pierre Karpman, Ange Albertini, Yarik Markov: Fyrsti áreksturinn fyrir fulla SHA-1 , shattered.io
  6. G. Leurent, T. Peyrin: Frá árekstri til árekstra við valið forskeyti. Umsókn um Full SHA-1 , Inria