Gå til innhold

Anbefalte innlegg

Er det slik at hvis du har 8 eller færre tegn som blir md5-kryptert, så får de unik verdi, men over det, så får du det samme som du har hatt før?

 

8 tegn av hvilke som helst type? Altså 256 muligheter?

32 bit er verdien på, og består av siffer og små bokstaver?

(26 + 10) ^ 32 = 36^32 = 6.33402867 × 10^49

og

256^8 = 1.84467441 × 10^19

 

Hvor er feilen?

 

Edit: Fant én feil...

Endret av Toolshed
Lenke til kommentar
Videoannonse
Annonse

MD5 er på 128-bit, dvs at vi har:

 

2^128 = 3,4028236692093846346337460743177e+38 muligheter

 

Når du sier at MD5-verdien bruker siffer og små bokstaver, er det feil. Tallet skrives av praktiske årsaker som hexadesimal, altså 16-tallsystem. Hexadesimal er ikke annet enn en nyttig sammenslåelse av 4 og 4 bit som gjør tallene enklere å lese for mennesker. Eks:

 

34048ce4cd069b624f6e021ba63ecde5

 

Som du ser brukes altså bare sifrene 0-9 og A-F. Dette er standard notasjon for hexadesimale tall. A=10, B=11,..., F=15.

 

Hex Binær

0 = 0000

1 = 0001

2 = 0010

3 = 0011

...

F = 1111

 

Tradisjonelle tegnsett på data benytter seg av bytelengder på 8 bit. 128 bit tilsvarer da 16 tegn. Det er da opplagt at hvis man beregner MD5 av større data, vil man ikke få unike verdier.

 

Hvis størrelsen av datafila man beregner MD5 av går mot uendelig, vil også antall kombinasjoner av filer som har samme MD5-verdi gå mot uendelig.

 

Dette kan høres skremmende ut, tenk f.eks på ISO-filer til Linux-distribusjoner. MD5 eller SHA1 brukes jo nettopp for å verifisere at filene ikke har blitt "tuklet" med, enten bevisst eller ved datatekniske feil. Med noen kjappe beregninger kommer man fram til et helt vanvittig tall som teoretisk angir hvor mange filer av samme størrelse som faktisk resulterer i samme MD5 eller SHA1. Men poenget er at sannsynligheten for å finne bare én av disse "gale" filene er forsvinnende liten, og man kan se bort ifra at det skal skje ved uhell (feiloverføringer o.l.). Det som gjenstår da er bevisst sabotasje (f.eks noen som prøver å plante en trojan inn i et lovlig program uten at det blir oppdaget av MD5). Det er også praktisk umulig fordi MD5 er en enveis algoritme - dvs. at det er raskt å kalkulere MD5, men praktisk umulig å gå den andre veien, altså å finne data som resulterer i en gitt MD5. Med raskere datamaskiner og cluster-løsninger kan man selvsagt redusere tiden det tar å gjøre en slik kalkulasjon, men sikkerhetsløsninger blir selvsagt også tilpasset utviklingen, slik at hvis man en vakker dag finner ut at MD5 ikke lenger er trygt, vil man begynne å anvende en ny algoritme.

Endret av Langbein
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...