algoritmul de hashing MD5 este o funcție criptografică unidirecțională care acceptă un mesaj de orice lungime ca intrare și returnează ca ieșire o valoare de digerare cu lungime fixă pentru a fi utilizată pentru autentificarea mesajului original.
funcția hash MD5 a fost inițial concepută pentru a fi utilizată ca un algoritm hash criptografic sigur pentru autentificarea semnăturilor digitale. MD5 a fost depreciat pentru alte utilizări decât ca o sumă de control non-criptografică pentru a verifica integritatea datelor și a detecta corupția neintenționată a datelor.deși inițial conceput ca un algoritm de cod de autentificare a mesajelor criptografice pentru utilizare pe internet, hashing-ul MD5 nu mai este considerat fiabil pentru utilizare ca sumă de control criptografică, deoarece cercetătorii au demonstrat tehnici capabile să genereze cu ușurință coliziuni MD5 pe computerele comerciale.Ronald Rivest, fondator al RSA Data Security și profesor la MIT, a proiectat MD5 ca o îmbunătățire a unui algoritm anterior de digerare a mesajelor, MD4. Descriindu-l în Internet Engineering Task Force RFC 1321, „algoritmul MD5 Message-Digest”, a scris el:
algoritmul ia ca intrare un mesaj de lungime arbitrară și produce ca ieșire o ‘amprentă’ pe 128 de biți sau ‘rezumat de mesaje’ al intrării. Se presupune că este imposibil din punct de vedere computațional să se producă două mesaje care au același rezumat al mesajelor sau să se producă orice mesaj care are un rezumat predefinit al mesajelor țintă. Algoritmul MD5 este destinat aplicațiilor de semnătură digitală, unde un fișier mare trebuie să fie comprimat într-o manieră sigură înainte de a fi criptat cu o cheie privată (secretă) sub un criptosistem cu cheie publică, cum ar fi RSA.
IETF sugerează că HASHINGUL MD5 poate fi utilizat în continuare pentru protecția integrității, menționând „în cazul în care suma de control MD5 este utilizată în linie cu protocolul exclusiv pentru a proteja împotriva erorilor, o sumă de control MD5 este încă o utilizare acceptabilă.”Cu toate acestea, a adăugat că” orice aplicație și protocol care utilizează MD5 în orice scop trebuie să precizeze în mod clar serviciile de securitate așteptate din utilizarea MD5.”
caracteristicile algoritmului de digerare a mesajelor
digesturile mesajelor, cunoscute și sub numele de funcții hash, sunt funcții unidirecționale; acceptă un mesaj de orice dimensiune ca intrare, și produce ca ieșire un rezumat mesaj de lungime fixă.MD5 este al treilea algoritm de digerare a mesajelor creat de Rivest. Toate cele trei (celelalte sunt MD2 și MD4) au structuri similare, dar MD2 a fost optimizat pentru mașinile pe 8 biți, în comparație cu cele două formule ulterioare, care sunt optimizate pentru mașinile pe 32 de biți. Algoritmul MD5 este o extensie a MD4, pe care revizuirea critică sa dovedit a fi rapidă, dar, eventual, nu absolut sigură. În comparație, MD5 nu este la fel de rapid ca algoritmul MD4, dar a oferit mult mai multă asigurare a securității datelor.
cum funcționează MD5
algoritmul de hashing MD5 message digest procesează datele în blocuri de 512 biți, defalcate în 16 cuvinte compuse din 32 de biți fiecare. Ieșirea din MD5 este o valoare de digerare a mesajelor pe 128 de biți.
calculul valorii Digest MD5 se realizează în etape separate care procesează fiecare bloc de date pe 512 biți împreună cu valoarea calculată în etapa precedentă. Prima etapă începe cu valorile de digerare a mesajelor inițializate folosind valori numerice hexazecimale consecutive. Fiecare etapă include patru mesaje digest trece care manipulează valori în blocul de date curent și valorile procesate din blocul anterior. Valoarea finală calculată din ultimul bloc devine MD5 digest pentru acel bloc.
MD5 security
scopul oricărei funcții de digerare a mesajelor este de a produce digesturi care par a fi aleatorii. Pentru a fi considerată sigură din punct de vedere criptografic, funcția hash ar trebui să îndeplinească două cerințe: în primul rând, că este imposibil pentru un atacator să genereze un mesaj care să corespundă unei valori hash specifice; și în al doilea rând, că este imposibil pentru un atacator să creeze două mesaje care produc aceeași valoare hash.
hash-urile MD5 nu mai sunt considerate sigure din punct de vedere criptografic și nu ar trebui utilizate pentru autentificarea criptografică.
în 2011, IETF a publicat RFC 6151, „considerații de securitate actualizate pentru MD5 Message-Digest și algoritmii HMAC-MD5”, care citează o serie de atacuri recente împotriva hash-urilor MD5, în special unul care a generat coliziuni hash într-un minut sau mai puțin pe un notebook standard și altul care ar putea genera o coliziune în doar 10 secunde pe un sistem Pentium de 2,66 GHz 4. Drept urmare, IETF a sugerat că noile modele de protocoale nu ar trebui să utilizeze deloc MD5 și că atacurile recente de cercetare împotriva algoritmului „au oferit motive suficiente pentru a elimina utilizarea MD5 în aplicațiile în care este necesară rezistența la coliziune, cum ar fi semnăturile digitale.”