- Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... ·...

32
riptografie ¸ si Securitate - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematic˘ si Informatic˘ a Universitatea din Bucure¸ sti

Transcript of - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... ·...

Page 1: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

riptografie si Securitate

- Prelegerea 14.2 -Message Digest 5 - MD5

Adela Georgescu, Ruxandra F. Olimid

Facultatea de Matematica si InformaticaUniversitatea din Bucuresti

Page 2: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Cuprins

1. Informatii generale

2. Descriere

3. Securitate

Criptografie si Securitate 2/15 ,

Page 3: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Informatii generale

MD5 este:

I definit ın 1991 de R.Rivest ca ınlocuitor pentru MD4

I publicat ca standard internet RFC1321 ın 1992

I face parte dintr-o familie de functii hash: MD2, MD4, MD6(finalist SHA-3)

I realizat pentru calculatoarele pe 32-biti

I utilizat pentru stocarea parolelor ın versiuni mai vechi deMoodle sau pentru a asigura integritatea fisierelor la downloadsau transfer

Criptografie si Securitate 3/15 ,

Page 4: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

I MD5 este o functie hash cu iesirea pe 128 biti:

MD5 : {0, 1}∗ → {0, 1}128

I Foloseste constructia Merkle-Damgard pentru blocuri de 512biti si vector de initializare de 128 biti:

Criptografie si Securitate 4/15 ,

Page 5: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

I MD5 este o functie hash cu iesirea pe 128 biti:

MD5 : {0, 1}∗ → {0, 1}128

I Foloseste constructia Merkle-Damgard pentru blocuri de 512biti si vector de initializare de 128 biti:

Criptografie si Securitate 4/15 ,

Page 6: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

I Presupune 5 pasi:

I Pas 1: Padding

I Pas 2: Concatenarea lungimii mesajului

I Pas 3: Initializarea buffer-ului MD

I Pas 4: Procesarea mesajului

I Pas 5: Iesirea

Criptografie si Securitate 5/15 ,

Page 7: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 1. Padding

I Mesajul de intrare este spart ın blocuri de 512 biti :

M[0],M[1], . . . ,M[N − 2]

I Ultimul bloc M[N − 1] este completat pana la 448 biti cusecventa :

100 . . . 0

I Padding-ul se realizeaza ıntotdeauna, chiar daca (dinıntamplare) ultimul bloc are exact 448 biti.

Criptografie si Securitate 6/15 ,

Page 8: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 1. Padding

I Mesajul de intrare este spart ın blocuri de 512 biti :

M[0],M[1], . . . ,M[N − 2]

I Ultimul bloc M[N − 1] este completat pana la 448 biti cusecventa :

100 . . . 0

I Padding-ul se realizeaza ıntotdeauna, chiar daca (dinıntamplare) ultimul bloc are exact 448 biti.

Criptografie si Securitate 6/15 ,

Page 9: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 1. Padding

I Mesajul de intrare este spart ın blocuri de 512 biti :

M[0],M[1], . . . ,M[N − 2]

I Ultimul bloc M[N − 1] este completat pana la 448 biti cusecventa :

100 . . . 0

I Padding-ul se realizeaza ıntotdeauna, chiar daca (dinıntamplare) ultimul bloc are exact 448 biti.

Criptografie si Securitate 6/15 ,

Page 10: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 2. Concatenarea lungimii mesajului

I Lungimea mesajului (ın biti) se reprezinta pe 64 de biti;

I In cazul (foarte putin probabil!) ca lungimea ≥ 264, sefolosesc numai ultimii 64 biti din reprezentarea binara;

I Rezultatul se concateneaza la ultimul bloc M[N − 1], caredevine complet (512 biti);

I Mesajul rezultat contine numai blocuri de 512 biti:

M[0],M[1], . . . ,M[N − 1]

Criptografie si Securitate 7/15 ,

Page 11: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 2. Concatenarea lungimii mesajului

I Lungimea mesajului (ın biti) se reprezinta pe 64 de biti;

I In cazul (foarte putin probabil!) ca lungimea ≥ 264, sefolosesc numai ultimii 64 biti din reprezentarea binara;

I Rezultatul se concateneaza la ultimul bloc M[N − 1], caredevine complet (512 biti);

I Mesajul rezultat contine numai blocuri de 512 biti:

M[0],M[1], . . . ,M[N − 1]

Criptografie si Securitate 7/15 ,

Page 12: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 2. Concatenarea lungimii mesajului

I Lungimea mesajului (ın biti) se reprezinta pe 64 de biti;

I In cazul (foarte putin probabil!) ca lungimea ≥ 264, sefolosesc numai ultimii 64 biti din reprezentarea binara;

I Rezultatul se concateneaza la ultimul bloc M[N − 1], caredevine complet (512 biti);

I Mesajul rezultat contine numai blocuri de 512 biti:

M[0],M[1], . . . ,M[N − 1]

Criptografie si Securitate 7/15 ,

Page 13: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 2. Concatenarea lungimii mesajului

I Lungimea mesajului (ın biti) se reprezinta pe 64 de biti;

I In cazul (foarte putin probabil!) ca lungimea ≥ 264, sefolosesc numai ultimii 64 biti din reprezentarea binara;

I Rezultatul se concateneaza la ultimul bloc M[N − 1], caredevine complet (512 biti);

I Mesajul rezultat contine numai blocuri de 512 biti:

M[0],M[1], . . . ,M[N − 1]

Criptografie si Securitate 7/15 ,

Page 14: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 3. Initializarea buffer-ului MD

I Initializarea constructiei Merkle-Damgard necesita un vectorde initializare pe 128 biti;

I Acesta este sub forma unui buffer de 4 word-uri (A,B,C ,D),care va prelua valori intermediare dupa fiecare transformare aunui bloc:

I Initializarea se face la valorile indicate:

A = 01 23 45 67B = 89 ab cd efC = fe dc ba 98D = 76 54 32 10

Criptografie si Securitate 8/15 ,

Page 15: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 3. Initializarea buffer-ului MD

I Initializarea constructiei Merkle-Damgard necesita un vectorde initializare pe 128 biti;

I Acesta este sub forma unui buffer de 4 word-uri (A,B,C ,D),care va prelua valori intermediare dupa fiecare transformare aunui bloc:

I Initializarea se face la valorile indicate:

A = 01 23 45 67B = 89 ab cd efC = fe dc ba 98D = 76 54 32 10

Criptografie si Securitate 8/15 ,

Page 16: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 3. Initializarea buffer-ului MD

I Initializarea constructiei Merkle-Damgard necesita un vectorde initializare pe 128 biti;

I Acesta este sub forma unui buffer de 4 word-uri (A,B,C ,D),care va prelua valori intermediare dupa fiecare transformare aunui bloc:

I Initializarea se face la valorile indicate:

A = 01 23 45 67B = 89 ab cd efC = fe dc ba 98D = 76 54 32 10

Criptografie si Securitate 8/15 ,

Page 17: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 4. Procesarea mesajului

I Procesarea mesajului se realizeaza ın blocuri de cate 16word-uri;

I Compresia este de fapt o constructie Davies-Meyer undeadunarea se face modulo 232:

Criptografie si Securitate 9/15 ,

Page 18: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 4. Procesarea mesajului

I Procesarea mesajului se realizeaza ın blocuri de cate 16word-uri;

I Compresia este de fapt o constructie Davies-Meyer undeadunarea se face modulo 232:

Criptografie si Securitate 9/15 ,

Page 19: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 4. Procesarea mesajului

I Se definesc 4 functii auxiliare:

F(X,Y,Z) = daca X, atunci Y; altfel ZG(X,Y,Z) = daca Z, atunci X; altfel YH(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xor (X and (not Z))

I Se defineste o tabela calculata folosind functia sin:

T [i ] = 4294967296 · abs(sin(i))

Criptografie si Securitate 10/15 ,

Page 20: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 4. Procesarea mesajului

I Se definesc 4 functii auxiliare:

F(X,Y,Z) = daca X, atunci Y; altfel ZG(X,Y,Z) = daca Z, atunci X; altfel YH(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xor (X and (not Z))

I Se defineste o tabela calculata folosind functia sin:

T [i ] = 4294967296 · abs(sin(i))

Criptografie si Securitate 10/15 ,

Page 21: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

DescrierePas 4. Procesarea mesajului

I Functia de criptare din constructia Davies-Meyer esteconstituita din 4 runde;

I Fiecare runda foloseste una dintre functiile auxiliare F ,G ,H,I ;

I Pentru exemplificare, introducem prima runda:

[RFC1321]

Criptografie si Securitate 11/15 ,

Page 22: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

DescrierePas 4. Procesarea mesajului

I Functia de criptare din constructia Davies-Meyer esteconstituita din 4 runde;

I Fiecare runda foloseste una dintre functiile auxiliare F ,G ,H,I ;

I Pentru exemplificare, introducem prima runda:

[RFC1321]

Criptografie si Securitate 11/15 ,

Page 23: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

DescrierePas 4. Procesarea mesajului

I Functia de criptare din constructia Davies-Meyer esteconstituita din 4 runde;

I Fiecare runda foloseste una dintre functiile auxiliare F ,G ,H,I ;

I Pentru exemplificare, introducem prima runda:

[RFC1321]

Criptografie si Securitate 11/15 ,

Page 24: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Descriere

Pas 5. Iesirea

I Valoarea functiei hash este data de valoarea finala a bufferului(dupa aplicarea transformarii Merkle-Damgard pe ıntregmesajul M):

MD5(M) = ABCD

Criptografie si Securitate 12/15 ,

Page 25: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I ”Atacul zilei de nastere” asupra MD5 necesita numai≈ 2128/2 = 264 evaluari;

I In 1996, au fost determinate coliziuni ın MD5:

”The presented attack does not yet threaten practical applications

of MD5, but it comes rather close. In view of the flexibility of the

new analytic techniques it would be unwise to assume that the

attack could not be improved.”

(Hans Dobbertin: The Status of MD5 After a Recent Attack, RSA

Laboratories’ CryptoBytes vol.2, no.2, 1996)

Criptografie si Securitate 13/15 ,

Page 26: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I ”Atacul zilei de nastere” asupra MD5 necesita numai≈ 2128/2 = 264 evaluari;

I In 1996, au fost determinate coliziuni ın MD5:

”The presented attack does not yet threaten practical applications

of MD5, but it comes rather close. In view of the flexibility of the

new analytic techniques it would be unwise to assume that the

attack could not be improved.”

(Hans Dobbertin: The Status of MD5 After a Recent Attack, RSA

Laboratories’ CryptoBytes vol.2, no.2, 1996)

Criptografie si Securitate 13/15 ,

Page 27: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I Si ıntr-adevar, MD5 devine inutilizabil ın practica...

I MD5 era folosit pentru a asigura integritatea fisierelor ladescarcare;

I Serverul pune la dispozitia utilizatorului o valoare MD5precalculata corespunzatoare fisierelor descarcate (md5sum);

I Utilizatorul primeste fisierele, calculeaza valoarea hash MD5 siverifica daca este identica celei initiale;

I Aceasta utilizare nu mai este sigura ın practica:

”Two researchers from the Institute for Cryptology and IT-Security

have generated PostScript files with identical MD5-sums but

entirely different (but meaningful!) content.”

(Bruce Schneier: Schneier on Security, 10 iunie 2005)

Criptografie si Securitate 14/15 ,

Page 28: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I Si ıntr-adevar, MD5 devine inutilizabil ın practica...

I MD5 era folosit pentru a asigura integritatea fisierelor ladescarcare;

I Serverul pune la dispozitia utilizatorului o valoare MD5precalculata corespunzatoare fisierelor descarcate (md5sum);

I Utilizatorul primeste fisierele, calculeaza valoarea hash MD5 siverifica daca este identica celei initiale;

I Aceasta utilizare nu mai este sigura ın practica:

”Two researchers from the Institute for Cryptology and IT-Security

have generated PostScript files with identical MD5-sums but

entirely different (but meaningful!) content.”

(Bruce Schneier: Schneier on Security, 10 iunie 2005)

Criptografie si Securitate 14/15 ,

Page 29: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I Si ıntr-adevar, MD5 devine inutilizabil ın practica...

I MD5 era folosit pentru a asigura integritatea fisierelor ladescarcare;

I Serverul pune la dispozitia utilizatorului o valoare MD5precalculata corespunzatoare fisierelor descarcate (md5sum);

I Utilizatorul primeste fisierele, calculeaza valoarea hash MD5 siverifica daca este identica celei initiale;

I Aceasta utilizare nu mai este sigura ın practica:

”Two researchers from the Institute for Cryptology and IT-Security

have generated PostScript files with identical MD5-sums but

entirely different (but meaningful!) content.”

(Bruce Schneier: Schneier on Security, 10 iunie 2005)

Criptografie si Securitate 14/15 ,

Page 30: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I Si ıntr-adevar, MD5 devine inutilizabil ın practica...

I MD5 era folosit pentru a asigura integritatea fisierelor ladescarcare;

I Serverul pune la dispozitia utilizatorului o valoare MD5precalculata corespunzatoare fisierelor descarcate (md5sum);

I Utilizatorul primeste fisierele, calculeaza valoarea hash MD5 siverifica daca este identica celei initiale;

I Aceasta utilizare nu mai este sigura ın practica:

”Two researchers from the Institute for Cryptology and IT-Security

have generated PostScript files with identical MD5-sums but

entirely different (but meaningful!) content.”

(Bruce Schneier: Schneier on Security, 10 iunie 2005)

Criptografie si Securitate 14/15 ,

Page 31: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Securitate

I Si ıntr-adevar, MD5 devine inutilizabil ın practica...

I MD5 era folosit pentru a asigura integritatea fisierelor ladescarcare;

I Serverul pune la dispozitia utilizatorului o valoare MD5precalculata corespunzatoare fisierelor descarcate (md5sum);

I Utilizatorul primeste fisierele, calculeaza valoarea hash MD5 siverifica daca este identica celei initiale;

I Aceasta utilizare nu mai este sigura ın practica:

”Two researchers from the Institute for Cryptology and IT-Security

have generated PostScript files with identical MD5-sums but

entirely different (but meaningful!) content.”

(Bruce Schneier: Schneier on Security, 10 iunie 2005)

Criptografie si Securitate 14/15 ,

Page 32: - Prelegerea 14.2 - Message Digest 5 - MD5ruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/... · - Prelegerea 14.2 - Message Digest 5 - MD5 Adela Georgescu, Ruxandra F. Olimid

Important de retinut!

I MD5 NU este o functie hash sigura!

Criptografie si Securitate 15/15 ,