MD5 je 128-bitni zgoščeni algoritem, ki ga je ustvaril znanstvenik Ronald L. Rivest v zgodnjih devetdesetih letih. Okrajšava MD5 pomeni Message Digest Version 5.
Šifriranje MD5 temelji na zgoščevanju, ki vključuje oblikovanje "prstnih odtisov" ali "vsot", da se dodatno preveri njihova pristnost. S to metodo lahko preverite celovitost informacij in tudi shranjevanje zgoščenih vrednosti gesel.
Zgodovina MD5
Zgodovina algoritma Message Digest (MD5) se začne leta 1991, ko je profesor MIT Ronald L. Rivest poročal o ustvarjanju novega algoritma, ki je nadomestil zastareli MD4. Kar zadeva MD4, so bile v njem res najdene številne pomanjkljivosti, kot je kasneje zapisal nemški kriptolog Hans Dobbertin.
Rivest je opisal nov algoritem MD5 v RFC 1321.
Delo na algoritmu sta nadaljevala raziskovalca Bert den Boer in Anton Bosselars, ki sta leta 1993 dokazala možnost psevdokolizij v MD5, ko se lahko različni inicializacijski vektorji ujemajo z istimi povzetki sporočil.
Nadalje je leta 1996 Hans Dobbertin trdil, da je našel trk v MD5. Takrat so postali znani bolj priljubljeni algoritmi zgoščevanja, kot so kriptografske zgoščevalne funkcije RIPEMD-160 - razvili so jih Hans Dobbertin, Anton Bosselars in Bart Prenel, Whirlpool - razvila Vincent Raymen in Paulo Barreto ter kriptografski zgoščevalni algoritem SHA-1.
Zaradi relativno majhne velikosti zgoščene vrednosti (128 bitov) v MD5 se je govorilo o možnostih rojstnodnevnih napadov. Projekt MD5CRK, ki ga je začel Jean-Luc Cook leta 2004, je bil namenjen preučevanju ranljivosti algoritma z uporabo napadov na rojstni dan. Toda po petih mesecih, 17. avgusta 2004, je bil projekt okrnjen, ker je skupina kitajskih kriptografov pod vodstvom Lai Xuejia odkrila ranljivost v algoritmu.
Marca 2005 so matematiki in kriptografi Benne de Weger, Arjen Lenstra in Wang Xiaoyun ustvarili dva dokumenta X.509 z istim hashom in različnima javnima ključema.
Leto kasneje, marca 2006, je češki kriptograf Vlastimil Klima objavil algoritem, ki omogoča ugotavljanje kolizij na preprostem računalniku v samo eni minuti. Ta algoritem je postal znan kot metoda "tuneliranja".
Kot rezultat analize rezultatov dela je leta 2008 oddelek Nacionalne uprave za kibernetsko varnost Ministrstva za domovinsko varnost ZDA (US-CERT) priporočil, da vsi, ki so sodelovali pri razvoju programske opreme, spletnih mest in tudi uporabnikov omrežja, prenehajo uporabljati algoritem MD5, ne glede na namen njegove uporabe. Razlog za takšno priporočilo je bila nezanesljivost, ki jo je pokazal v procesu preučevanja.
Decembra 2010 sta kitajska kriptologa Tao Xie in Feng Denguo odkrila kolizijo sporočil 512 bitov (en blok). Prej so bili kolizije najdeni samo v sporočilih, ki so bila dolga dva bloka ali več. Kasneje je Mark Stevens dosegel podobne rezultate z objavo blokov z enakim hashom MD5. Razvil je tudi algoritem za pridobivanje tovrstnih kolizij.
Končni dokument, ki je končal zgodovino razvoja algoritma MD5, je bila zahteva za komentarje - RFC 6151 (RFC je uradni dokument, ki ga je razvil Internet Engineering Council (IETF), ki opisuje specifikacije za določen tehnologija), ki je dejansko prepoznal MD5 kot nevaren algoritem zgoščevanja. Dokument priporoča opustitev in izbiro družine kriptografskih algoritmov SHA-2 kot alternativo.
Obravnavani algoritem MD5 velja za enega prvih standardov algoritmov, ki se uporabljajo za preverjanje celovitosti datotek in shranjevanje gesel v bazah podatkov spletnih aplikacij.
Toda v resnici razmeroma enostavna funkcionalnost, kratka izhodna dolžina in preprostost izvedenih operacij, ki so prednosti algoritma, določajo tudi njegove slabosti - MD5 se nanaša na algoritme, ki so nagnjeni k hekanju in imajo nizko stopnjo zaščita pred napadi na rojstni dan.