MD5 je 128-bitni heš algoritam koji je napravio naučnik Ronald L. Rivest ranih 1990-ih. Skraćenica MD5 je skraćenica za Message Digest Version 5.
MD5 enkripcija se zasniva na heširanju, što uključuje formiranje „otisaka prstiju“ ili „zbira“ kako bi se dodatno proverila njihova autentičnost. Koristeći ovaj metod, možete da proverite integritet informacija, kao i skladištenje heševa lozinki.
MD5 istorija
Istorija algoritma za sakupljanje poruka (MD5) počinje 1991. godine, kada je profesor sa MIT-a Ronald L. Rivest izvestio o stvaranju novog algoritma koji je zamenio zastareli MD4. Što se tiče MD4, u njemu je zaista pronađen niz nedostataka, kao što je kasnije napisao nemački kriptolog Hans Dobertin.
Rivest je opisao novi MD5 algoritam u RFC 1321.
Rad na algoritmu nastavili su istraživači Bert den Boer i Anton Bosselars, koji su 1993. dokazali mogućnost pseudo-sudara u MD5, kada se različiti vektori inicijalizacije mogu podudarati sa istim sažetkom poruke.
Dalje, 1996. Hans Dobbertin je tvrdio da je pronašao sudar u MD5. U to vreme su postali poznati poželjniji algoritmi za heširanje, kao što su RIPEMD-160 kriptografske heš funkcije - koje su razvili Hans Dobbertin, Anton Bosselars i Bart Prenel, Vhirlpool - koje su razvili Vincent Raimen i Paulo Barreto i SHA-1 kriptografski heš algoritam.
Zbog relativno male heš veličine (128 bita) u MD5, bilo je govora o mogućnosti rođendanskih napada. Projekat MD5CRK, koji je pokrenuo Jean-Luc Cook 2004. godine, imao je za cilj proučavanje ranjivosti algoritma koristeći rođendanske napade. Ali, nakon pet meseci, 17. avgusta 2004, projekat je prekinut zbog otkrića ranjivosti u algoritmu od strane grupe kineskih kriptografa predvođenih Lai Ksuejia.
U martu 2005. matematičari i kriptografi Bene de Veger, Arjen Lenstra i Vang Sjaojun kreirali su dva Ks.509 dokumenta sa istim hešom i različitim javnim ključevima.
Godinu dana kasnije, u martu 2006, češki kriptograf Vlastimil Klima je objavio algoritam koji vam omogućava da odredite kolizije na jednostavnom računaru za samo jedan minut. Ovaj algoritam je postao poznat kao metoda „tuneliranja“.
Kao rezultat analize rezultata rada, odsek Nacionalne administracije za sajber bezbednost Ministarstva unutrašnje bezbednosti SAD (US-CERT) je 2008. preporučio da svi koji su bili uključeni u razvoj softvera, veb lokacija, kao i korisnika mreže, prestanu da koriste MD5 algoritam, bez obzira na svrhu njegove primene. Razlog za takvu preporuku bila je nepouzdanost koju je pokazao u procesu proučavanja.
U decembru 2010. kineski kriptolozi Tao Ksie i Feng Denguo otkrili su koliziju poruka od 512 bita (jedan blok). Ranije su kolizije pronađene samo u porukama koje su bile dugačke dva bloka ili više. Kasnije je Mark Stivens postigao slične rezultate objavljivanjem blokova sa istim MD5 hešom. Takođe je razvio algoritam za dobijanje kolizija ovog tipa.
Završni dokument koji je stavio tačku na istoriju razvoja MD5 algoritma bio je zahtev za komentare - RFC 6151 (RFC je zvanični dokument koji je razvio Savet za inženjere Interneta (IETF), a koji opisuje specifikacije za određene tehnologija), koji je zapravo prepoznao MD5 kao nesiguran algoritam heširanja. U dokumentu se preporučuje da se napusti, birajući SHA-2 porodicu kriptografskih algoritama kao alternativu.
Razmatrani MD5 algoritam se smatra jednim od prvih standarda algoritama koji se koristi za proveru integriteta datoteka i čuvanje lozinki u bazama podataka veb aplikacija.
Ali, u stvari, relativno jednostavna funkcionalnost, kratka izlazna dužina i jednostavnost izvršenih operacija, što su prednosti algoritma, određuju i njegove nedostatke - MD5 se odnosi na algoritme koji su skloni hakovanju i imaju nizak stepen zaštita od rođendanskih napada.