CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
SHA-familie - Wikipedia

SHA-familie

De SHA-familie (Secure Hash Algorithm) is een verzameling gerelateerde cryptografische hashfuncties ontworpen door de Amerikaanse National Security Agency en gepubliceerd door het Amerikaanse National Institute of Standards and Technology. Het eerste lid in de familie welke in 1993 gepubliceerd werd, heet officieel SHA. Vandaag wordt deze echter vaak onofficieel SHA-0 genoemd om verwarring met zijn opvolgers te voorkomen. Twee jaar later werd SHA-1 gepubliceerd. Sindsdien zijn nog vier varianten gepubliceerd met grotere bereiken en een licht veranderd ontwerp: SHA-224, SHA-256, SHA-384 en SHA-512 (soms worden deze samengevat onder de naam SHA-2).

Inhoud

[bewerk] SHA-0 en SHA-1

Eén iteratie in de SHA-1-hashfunctie. A, B, C, D en E zijn 32-bit woorden welke de staat vormen; F is een niet-lineaire functie welke varieert; <<< stelt een linker rotatie voor. Kt is een constante.
Groter
Eén iteratie in de SHA-1-hashfunctie. A, B, C, D en E zijn 32-bit woorden welke de staat vormen; F is een niet-lineaire functie welke varieert; <<< stelt een linker rotatie voor. Kt is een constante.

De oorspronkelijke specificatie van het algoritme, SHA-0, werd in 1993 gepubliceerd als de Secure Hash Standard in de Amerikaanse FIPS-standaard PUB 180. Kort na publicatie trok de NSA het algoritme alweer in om het te vervangen door de herziene versie welke in 1995 in FIPS PUB 180-1 gepubliceerd werd, SHA-1. Volgens de NSA was de reden hiervan dat er een zwakte in het originele algoritme zat dat de cryptografische veiligheid aantastte. De NSA gaf echter geen verdere informatie over welke zwakheid nu feitelijk gecorrigeerd was. Er zijn sindsdien in zowel SHA-0 als SHA-1 zwakheden ontdekt.

SHA-0 en SHA-1 leveren een berichtsamenvatting op van 160 bits uit een bericht dat een maximumgrootte kan hebben van 264 bits en is gebaseerd op principes welke overeenkomen met dewelke door professor Ronald Linn Rivest gebruikt werden in de MD4- en MD5-berichtsamenvattingsalgoritmen.

[bewerk] Cryptoanalyse van SHA-0

Op CRYPTO '98 presenteerden twee Franse onderzoekers een aanval op SHA-0 (Chabaud and Joux, 1998): Het is mogelijk om botsingen te vinden met een tijdscomplexiteit van 261; minder dan de 280 welke een ideale hashfunctie van dezelfde grootte heeft.

In 2004 vonden Biham en Chen bijna-botsingen; twee berichten welke bijna dezelfde berichtsamenvatting opleveren. In dit geval waren 142 van de 160 bits gelijk. Ze vonden volledige botsingen in een versie van SHA-0 waarvan slechts 62 van de 80 ronden doorlopen waren.

Daaropvolgend werd op 12 augustus 2004 een botsing voor het volledige SHA-0 aangekondigd door Joux, Carribault, Lemuet and Jalby. Dit werd gedaan door middel van een generalisatie van de aanval van Chabaud en Joux. Het vinden van de botsing vereiste 251 berekeningen en vereiste zo'n 80.000 cpu-uren op een supercomputer met 256 Itanium-2-processoren.

Op 17 augustus 2004 werden op de Rumpsessie van CRYPTO 2004 voorlopige resultaten aangekondigd door Wang, Feng, Lai en Yu betreffende een aanval op MD5, SHA-0 en andere hashfuncties. De complexiteit van hun aanval op SHA-0 was 240, significant beter dan de aanval door het team van Joux [1], [2].

In februari 2005 meldde Bruce Schneier een succesvolle aanval door Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu welke in SHA-0 botsingen zou kunnen genereren in 239 berekeningen [3]. Op het moment van dit schrijven, februari 2005, is de aanval nog niet gepubliceerd.

Het zou goed kunnen dat één van deze aanvallen de aanval is die de NSA voorzag en leidde tot het terugtrekken van SHA-0 en het uitbrengen van SHA-1.

[bewerk] Cryptoanalyse van SHA-1

In het licht van de resultaten van SHA-0 suggereerden sommige experts dat plannen voor het gebruik van SHA-1 in nieuwe cryptografische systemen heroverwogen dienen te worden. Nadat de resultaten werden gepubliceerd kondigde het NIST aan dat ze van plan waren het gebruik van SHA-1 tegen 2010 uit te faseren ten voordele van de SHA-2-varianten [4].

In 2005 publiceerden Rijmen en Oswalk een aanval op een gereduceerde versie van SHA-1 welke 53 van de 80 stappen doorliep. Deze kon botsingen vinden met een complexiteit van minder dan 280 berekeningen [5].

In februari 2005 meldde Bruce Schneier een aanval door Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu [6]. De aanval (welke nog niet gepubliceerd is of aan formele collegiale toetsing is onderworpen) zou:

  • botsingen in de standaard 80-rondenversie van SHA-1 kunnen vinden met een complexiteit van 269 berekeningen.
  • botsingen in een gereduceerde 58-rondenversie van SHA-1 kunnen vinden met een complexiteit van 233 berekeningen.

In de academische wereld van de cryptografie wordt iedere aanval die een tijdscomplexiteit van minder dan de verwachte tijd heeft gezien als dat een algoritme gebroken is [7]. Dat betekent nog niet dat het ook praktisch mogelijk is de aanval uit te buiten.

Een complexiteit van 269 berekeningen is vooralsnog erg moeilijk, afhankelijk van de hoeveelheid tijd en geld die men hier aan wil besteden zijn hier tienduizenden tot honderdduizenden computers voor nodig. Desondanks is het niet onmogelijk dat enkele overheden of zeer grote bedrijven een dergelijke aanval uit zouden kunnen voeren. Dit veronderstelt dat een aanval te paralleliseren is, hetgeen op dit moment nog niet bekend is.

De Electronic Frontier Foundation bouwde in 1999 een DES-kraakmachine [8] welke de 256 DES-berekeningen in 56 uur kon uitvoeren. De machine gebruikte gespecialiseerde hardware. Gezien chips naar de wet van Moore inmiddels al weer een stuk krachtiger zijn geworden, zou een dergelijke aanpak wellicht ook voor SHA-1 haalbaar kunnen zijn of binnen afzienbare tijd haalbaar worden.

[bewerk] Langere varianten

Het NIST heeft nog drie varianten van SHA gepubliceerd, elke met langere samenvattingen. Deze worden genoemd naar de lengte van de samenvatting in bits: SHA-256, SHA-384 en SHA-512. Ze werden voor het eerst in 2001 gepubliceerd in het kladschrift FIPS PUB 180-2 waarna om toestemming en commentaar verzocht werd. Deze nieuwe hashfuncties hebben nog niet zoveel inspectie ondergaan door de publieke cryptografische gemeenschap als SHA-1 en aldus is het vertrouwen in hun cryptografische veiligheid nog minder sterk. In februari 2004 ging bericht uit dat FIPS PUB 180-2 veranderd was waarbij een extra variant, SHA-224 werd gespecificeerd, bedoeld om overeen te komen met de sleutellengte van dubbele sleutel 3DES.

Gilbert en Handschuh (2003) hebben de nieuwere varianten bestudeerd en geen zwakheden gevonden. De consequenties van de publicatie van het team van Wang en Feng in augustus 2004 is in september 2004 nog niet geheel duidelijk voor deze SHA-varianten.

[bewerk] Toepassingen

SHA-1, SHA-224, SHA-256, SHA-384 en SHA-512 zijn de verplichte veilige hashfuncties voor gebruik in federale toepassingen in de V.S., inclusief gebruik door andere cryptografische algoritmen en protocollen, voor de beveiliging van gevoelige niet-geclassificeerde informatie. FIPS PUB 180-1 moedigde ook de omarming en het gebruik aan van SHA-1 door private en commerciële organisaties.

Een doorslaggevende motivatie voor de publicatie van SHA was het DSA-algoritme, waar het in gebruik wordt.

De SHA-hashfuncties zijn gebruikt als basis voor de SHACAL-blokcijfers.

De systemen welke op de Xbox-spelcomputer voorkomen dat andere dan door Microsoft vertrouwde software geaccepteerd wordt maken gebruik van het SHA-1-algoritme.

[bewerk] Een beschrijving van SHA-1

Pseudocode voor het SHA-1-algoritme:

Opmerking: Alle variabelen hebben als type een 32-bits integer zonder teken

Initialiseer variablen:
h0 := 0x67452301
h1 := 0xEFCDAB89
h2 := 0x98BADCFE
h3 := 0x10325476
h4 := 0xC3D2E1F0

Voorbewerking:
voeg "1"-bit aan bericht toe
voeg "0"-bits aan bericht toe totdat berichtlengte mod 512 ≡ 448
voeg lengte van bericht als 64-bit big-endian integer toe aan bericht

Verwerk het bericht in opeenvolgende blokken van 512-bit:
breek bericht op in blokken van 512 bit
for ieder blok
    breek blok op in 16 32-bits big-endian woorden w(i), 0 ≤ i ≤ 15

    Breid de 16 32-bit woorden uit to 80 32-bit woorden:
    for i from 16 to 79
        w(i) := (w(i-3) xor w(i-8) xor w(i-14) xor w(i-16)) leftrotate 1

    Initialiseer de hashwaarde voor dit blok:
    a := h0
    b := h1
    c := h2
    d := h3
    e := h4

    Hoofdlus:
    for i from 0 to 79
        if 0 ≤ i ≤ 19 then
            f := (b and c) or ((not b) and d)
            k := 0x5A827999
        else if 20 ≤ i ≤ 39
            f := b xor c xor d
            k := 0x6ED9EBA1
        else if 40 ≤ i ≤ 59
            f := (b and c) or (b and d) or (c and d)
            k := 0x8F1BBCDC
        else if 60 ≤ i ≤ 79
            f := b xor c xor d
            k := 0xCA62C1D6

        temp := (a leftrotate 5) + f + e + k + w(i)
        e := d
        d := c
        c := b leftrotate 30
        b := a
        a := temp

    Tel de hash van dit blok op bij het resultaat tot nog toe:
    h0 := h0 + a
    h1 := h1 + b 
    h2 := h2 + c
    h3 := h3 + d
    h4 := h4 + e

digest = hash = h0 append h1 append h2 append h3 append h4 (expressed as big-endian)

Opmerking: In plaats van de formulering van de originele FIPS PUB 180-1 zoals hier getoond kan het volgende gebruikt worden om de efficiëntie te verbeteren:

(0  ≤ i ≤ 19): f := d xor (b and (c xor d))
(40 ≤ i ≤ 59): f := (b and c) or (d and (b or c))

[bewerk] Zie ook

[bewerk] Referenties

  • Eli Biham, Rafi Chen, Near-Collisions of SHA-0, Cryptology ePrint Archive, Report 2004/146, 2004 (to appear CRYPTO 2004) [9]
  • Florent Chabaud, Antoine Joux: Differential Collisions in SHA-0. CRYPTO 1998. pp56–71
  • Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. Selected Areas in Cryptography 2003: pp175–193

[bewerk] Externe links

 
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com