Sunteți pe pagina 1din 4

TEMA : ALGORITMUL DE CRIPTARE MD5

PARTEA TEORETICA

MD5 (Message Digest Algorithm 5) este o funcție criptografică de tip hash unidirecțional,


care livrează ca rezultat o valoare fixă ca lungime de 128 Biți. Funcția MD5 a fost
dezvoltată în 1991 de Ronald L. Rivest și publicată în 1992 în RFC 1321. Este utilizată
drept componentă în unele scheme de semnătură electronică, deși tinde să fie înlocuită în
acest scop de SHA-1 sau RIPEMD-160, funcții mai puțin sensibile la coliziuni. Valoarea
calculată cu ajutorul funcției MD5 este folosită însă pe scară largă drept sumă de control,
la verificarea integrității fișierelor.

Aparitia algoritmului de criptare

MD5 este reprezentanta unei serii de funcții de hash, care a fost dezvoltată de către Ronald
L. Rivest la MIT. După ce serii de analize au arătat că funcția precedentă de
hash MD4 este probabil nesigură, a fost dezvoltată ca înlocuitor în 1991 funcția de hash
mult mai sigură MD5. Într-adevăr, au fost descoperite mai tîrziu vulnerabilități de
securitate de către Hans Dobbertin.

În 1996 Dobbertin face cunoscută existența unei coliziuni în funcția de compresie din


MD5. Aceasta nu este un atac propriu-zis îndreptat împotriva funcției MD5, dar face ca
toți criptologii să propună înlocuirea folosirii funției MD5 cu funcții mai sigure.

În august 2004 au fost descoperite de către cercetătorii chinezi coliziuni în funcția propriu-


zisă MD5.

Aceste atacuri demonstrează însă numai existența coliziunilor în algoritm. Atacuri de


tip Preimage cu această nouă metoda de atac nu au produs rezultate într-un interval de
timp realist. Deci un certificat digital creat cu ajutorul funcției MD5 încă nu poate să fie
falsificat

Algoritmul

MD5 procesează un mesaj cu lungime variabilă într-o ieșire cu lungime fixă de 128
biți. Mesajul de intrare este împărțit în bucăți de blocuri de 512 biți (șaisprezece cuvinte de
32 de biți); mesajul este căptușit astfel încât lungimea acestuia să fie divizibilă cu 512.
Căptușeala funcționează după cum urmează: întâi un singur bit, 1, este anexat la sfârșitul
mesajului. Aceasta este urmată de atâtea zerouri necesare pentru a aduce lungimea
mesajului până la 64 de biți mai mică decât un multiplu de 512. Restul de biți sunt
completate cu 64 de biți reprezentând lungimea mesajului inițial, modulul 2 64 .

Algoritmul principal MD5 funcționează pe un stat de 128 de biți, împărțite în patru cuvinte
pe 32 de biți, notate A , B , C și D . Acestea sunt inițializate la anumite constante
fixe. Principalul algoritm utilizează apoi fiecare bloc de mesaje pe 512 biți, la rândul său,
pentru a modifica starea. Procesarea unui bloc de mesaje constă în patru etape similare,
denumite runde ; fiecare rundă este compusă din 16 operații similare bazate pe o
funcție F non-liniară , adăugare modulară și rotație stângă. Figura 1 ilustrează o operație în
cadrul unei runde. Există patru funcții posibile; una diferită este utilizată în fiecare rundă:
Partea practica

(MESSAGE DIGEST5) - HASHA-RE MD5

convert

Mesaj: ELENATROCINABCDZ

00100000 01000101 01001100 01000101 01001110 01000001 01010100 01010010

01001111 01000011 01001001 01001110 01000001 01000010 01000011 01000100

A => 00100000 01000101 01001100 01000101

B => 01001110 01000001 01010100 01010010

C => 01001111 01000011 01001001 01001110

D =>01000001 01000010 01000011 01000100

T[n] = int(2^32 * |sin n|) = 19

Deplasament <<<1

• F = (B and C) or (not B and D)

 01001110 01000001 01010100 01010010 and 01001111 01000011 01001001 01001110 =


01001110010000010100000001000010

• Not(10111111101111111011101110111111) and 01001110010000010100000001000010 =


00001110000000010000000000000000

A or B = 01101110010001010101110001010111

• A + F mod 2^32 = 00100000 01000101 01001100 01000101 + 00001110000000010000000000000000


mod 2^32 = 541412421 + 234946560 mod 2^32 = 776358981

• P(2) + Ti mod 2^32

776358981 + 19 mod 2^32 = 776359000

• Deplasare circulara cu 1 biti la stanga


101110010001100100110001011000<<<1 = 011100100011001001100010110001

• A + B mod 2^32 = 541412421+ 1312904274 msd 2^32 = 1855326695 =


1101110100101100000100111100111

• D => A =>00100000 01000101 01001100 01000101

A => B => 01001110 01000001 01010100 01010010

B => C => 01001111 01000011 01001001 01001110

C => D => 01000001 01000010 01000011 01000100

Hash => 408A8C454E4154524F43494E41424344

Concluzie:

Ca concuzie pot afirma ca pentru acest system de criptare chiar si o mica schimbare
a mesajului va avea ca rezultat un has in mare parte diferit, din cauza efectului avalansa.
Criptarea prin MD5 este specific pentru mesajele ce constau din orice numar de biti: nu se
limiteaza la multiplii de 8 octeti.

Criptarea cu acest algoritm are o variata utilizare precum in deosebi in sistemul


bancar si anume la introducerea parolelor pentru cardurile bancare.

S-ar putea să vă placă și