Funcii Hash 1 Puin teorie Funciile de dispersie

  • Slides: 26
Download presentation
Funcţii Hash 1. Puţină teorie. . . Funcţiile de dispersie mai sunt denumite în

Funcţii Hash 1. Puţină teorie. . . Funcţiile de dispersie mai sunt denumite în literatura de specialitate: • funcţii hash (denumirea ce o vom folosi în continuare) • sume hash • funcţii rezumat Proprietate matematică foarte importantă: • Funcţiile hash nu sunt inversabile !!!

Funcţii Hash 1. Puţină teorie. . . Proprietăţi (dorite) ale funcţiilor hash 1. să

Funcţii Hash 1. Puţină teorie. . . Proprietăţi (dorite) ale funcţiilor hash 1. să nu fie inversabile 2. pentru valori asemănătoare ale intrărilor să dea ieşiri diferite 3. să fie rapid calculabile 4. să aiba o distributie de valori cât mai uniformă, pentru a minimiza probabilitatea de coliziune (valori egale pentru obiecte diferite)

Funcţii Hash 2. Exemplu (naiv) de funcţie hash: Fie Fh( sir_biti ) = numărul

Funcţii Hash 2. Exemplu (naiv) de funcţie hash: Fie Fh( sir_biti ) = numărul biţilor care au valoarea 1, reprezentat pe 3 biţi Exemple de folosire: 1. Fh (145) = Fh(10010001) = 3 (B 10) = 011 (B 2) 2. Fh (147) = Fh(10010011) = 4 (B 10) = 100 (B 2) 3. Important: 4. Intrări asemănătoare, ieşiri diferite ! 5. Nu se poate deduce valoarea de la intrare funcţie de cea de ieşire

Funcţii Hash 2. Exemplu Alte exemple de folosire: 1. 2. 3. 4. Fh(00011111) =

Funcţii Hash 2. Exemplu Alte exemple de folosire: 1. 2. 3. 4. Fh(00011111) = 5 (B 10) = 101 (B 2) Fh(00111101) = 5 (B 10) = 101 (B 2) Fh(00011011) = 5 (B 10) = 101 (B 2) … şamd Important: 1. Intrări diferite, pot genera ieşiri identice !

Funcţii Hash 3. Observaţii foarte importante Funcţiile hash nu sunt folosite la criptare !!!

Funcţii Hash 3. Observaţii foarte importante Funcţiile hash nu sunt folosite la criptare !!! De ce: Deoarece sunt funcţii neinversabile. Unde sunt folosite: 1. Căutări în tabele (de şiruri de caractere sau în industrie în bazele de date de dimensiuni mari) 2. Sume de control (transimiterea datelor p-zise, urmate de suma de control: CRC 8, CRC 12, CRC 16, etc) 3. Coduri corectoare de erori (mai puţin, deoarece sunt ineficiente) 4. Autentificare 5. Semnătură digitală

Algoritmul de autentificare MD 5 1. Scurt istoric Algoritmul MD 5 (message digest) •

Algoritmul de autentificare MD 5 1. Scurt istoric Algoritmul MD 5 (message digest) • este ultimul dintr-o serie de algoritmi proiectaţi de Ronald Rivest, profesor la MIT (Massachusetts Institute of Technology) • MD 5 a fost dezvoltat în 1990 ca un înlocuitor mai sigur al algoritmului MD 4 criptanalizat de Hans Dobbertin care a demonstrat slăbiciunile acestuia.

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Algoritmul MD 5 are

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Algoritmul MD 5 are drept intrare un text de lungime arbitrară şi produce la ieşire o amprentă digitală cu o lungime de 128 de biţi. Este de dorit ca: • două mesaje diferite să nu genereze aceeaşi amprentă • în acelaşi timp, să nu se poată genera un anumit mesaj căruia să-i fie asociat o anumită amprentă bine definită. Algoritmul MD 5 este folosit în aplicaţiile ce folosesc semnătura digitală, unde un fişier de dimensiune mare trebuie "semnat" într-un mod sigur înainte de a fi criptat cu un algoritm cu cheie publică cum ar fi RSA.

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pentru a calcula amprenta

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pentru a calcula amprenta digitală a unui mesaj, MD 5 foloseşte funcţii de dispersie (hash functions). Proprietăţile cele mai importante (din punctul de vedere al criptografiei) ale funcţiilor hash sunt: • dacă două rezultate sunt diferite atunci în mod sigur şi mesajele aflate la intrare sunt diferite (vezi Fig. 1); • pe de altă parte, egalitatea a două rezultate nu implică faptul că la intrare au fost mesaje identice.

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Algoritmii ce folosesc funcţii

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Algoritmii ce folosesc funcţii de dispersie sunt în general folosiţi în autentificarea mesajelor şi trebuie să răspundă următoarelor cerinţe: • să asigure integritatea mesajului prin căutarea unei metode care să verifice dacă acesta nu a fost modificat sau falsificat; • identificarea expeditorului; • să asigure că expeditorul nu poate nega faptul că a transmis mesajul; • rapiditate: autentificarea să fie mai mult mai rapidă decât un algoritm de criptare clasic • dimensiune fixă a rezultatului; • să asigure securitatea mesajului în cazul încercării decriptării neautorizate a acestuia.

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 În esenţă MD 5

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 În esenţă MD 5 este o modalitate de a verifica integritatea datelor trimise ce este mult mai sigură decât sumele de control sau alte metode utilizate în mod curent.

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 1 Mesajul iniţial

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 1 Mesajul iniţial va fi completat cu un bit 1 urmat de o succesiune de biţi 0 până cand lungimea în biţi a mesajului va fi egală cu 448 modulo 512. Motivul acestui tip de expandare că 512*x+448 este multiplu de 64 (8 octeţi).

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 2 Mesajului completat

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 2 Mesajului completat la pasul anterior îi este adăugată lungimea în biţi a mesajului original. În cazul în care lungimea mesajului este mai mare decât 2^64, vor fi păstraţi doar ultimii 64 de biţi ai numărului ce reprezintă lungimea acestuia. În acest moment lungimea mesajului (în biţi) va fi multiplu de 512 (sau 16 words (32 bit)).

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 3 – Iniţializarea

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 3 – Iniţializarea buffer-ului MD Un buffer de 4 words (A, B, C, D) este folosit pentru a calcula amprenta. De observat că lungimea buffer-ului este exact 128 de biţi ce va fi lungimea finală a amprentei MD 5. Cele patru registre vor fi iniţializate după cum urmează: Word A: 01234567 Word B: 89 ABCDEF Word C: FEDCBA 98 Word D: 76543210

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 4 Se va

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Pasul 4 Se va folosi o funcţie de evaluare I(X, Y, Y) şi va schimba G(X, Y, Z) după cum urmează: F(X, Y, Z) = XY v not(X) Z (X and Y or not(X)and Z) G(X, Y, Z) = XZ v Y not(Z) H(X, Y, Z) = X xor Y xor Z I(X, Y, Z) = Y xor (X v not(Z)) Acest pas va utiliza şi o tabelă T construită folosindu-se funcţia sinus, unde T[i] va desemna elementul de pe poziţia i ce are valoarea întreagă egală cu a expresiei sin(i)*2^32. Obs: 2^32 = 4294967296

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Diagrama algoritmului MD 5

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Diagrama algoritmului MD 5

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Diagrama algoritmului MD 5

Algoritmul de autentificare MD 5 2. Descrierea algoritmului MD 5 Diagrama algoritmului MD 5

Algoritmul de autentificare MD 5 2. Exemplu din lumea reală: Yahoo Mail

Algoritmul de autentificare MD 5 2. Exemplu din lumea reală: Yahoo Mail

Algoritmul de autentificare MD 5 2. Exemplu din lumea reală: Yahoo Mail

Algoritmul de autentificare MD 5 2. Exemplu din lumea reală: Yahoo Mail

Algoritmul de autentificare MD 5 2. Exemplu din lumea reală: Yahoo Mail

Algoritmul de autentificare MD 5 2. Exemplu din lumea reală: Yahoo Mail

Algoritmul de autehtificare SHA-1 (Secure Hash Standard) 1. Scurt istoric Specificaţiile iniţiale algoritmului au

Algoritmul de autehtificare SHA-1 (Secure Hash Standard) 1. Scurt istoric Specificaţiile iniţiale algoritmului au fost publicate în 1993 în Federal Information Processing Standards Publication, de organizaţia guvernamentală americană NIST (National Institute of Standards and Technology). Această primă versiune este denumită generic SHA-0. La doi ani după publicare algoritmul a retras ca şi standard de către NSA (National Security Agency) şi a fost republicat şi aprobat în 1995 sub denumirea SHA-1.

Algoritmul de autehtificare SHA-1 1. Scurt istoric Conform NSA, prima versiune nu oferea destulă

Algoritmul de autehtificare SHA-1 1. Scurt istoric Conform NSA, prima versiune nu oferea destulă securitate dar o explicaţie oficială asupra lacunelor de securitate identificate nu a fost dată niciodată. Slăbiciuni au fost găsite atât în versiunea SHA-0 cât şi în SHA-1, dar varianta finală a rezistat mai bine atacurilor de -a lungul timpului ceea ce confirmă decizia NSA.

Algoritmul de autehtificare SHA-1 2. Descrierea algoritmului Atât SHA-0 cât şi SHA-1 produc o

Algoritmul de autehtificare SHA-1 2. Descrierea algoritmului Atât SHA-0 cât şi SHA-1 produc o amprentă digitală de 164 de biţi (cu o dimensiune maximă de 256 de biţi) iar principiul de funcţionare este asemănător cu al algoritmului MD 5 descris anterior. Organizaţia guvernamentală americană NIST a mai publicat specificaţiile a încă patru variante algoritmului, cunoscute sub denumirea generică de SHA 2: SHA-224; SHA-256; SHA-384; SHA-512.

Algoritmul de autehtificare SHA-1 2. Descrierea algoritmului Algoritmii SHA-256 şi SHA-512 folosesc funcţii hash

Algoritmul de autehtificare SHA-1 2. Descrierea algoritmului Algoritmii SHA-256 şi SHA-512 folosesc funcţii hash pe 32 respectiv 64 de biţi. Ambii algoritmi folosesc rotiri şi adunări cu constante diferite dar, în mare, structura logică este aceeaşi, numărul de runde fiind însă diferit. SHA-224 şi SHA-384 sunt doar versiunile truncate pentru SHA-256 respectiv SHA-512 calculate însă cu valori iniţiale diferite.

Algoritmul de autehtificare SHA-1 3. Aplicabilitatea algoritmului SHA-1 Algoritmul de autentificare SHA-1 este folosit

Algoritmul de autehtificare SHA-1 3. Aplicabilitatea algoritmului SHA-1 Algoritmul de autentificare SHA-1 este folosit de DSA (Digital Signature Standard) în care este de altfel şi încorporat. De asemeni funcţiile SHA au fost utilizate pentru algoritmii de criptare pe blocuri de biţi SHACAL. Compania Microsoft a încorporat algoritmul SHA-1 în sistemul de prevenire a copiilor pentru consola XBox.

Algoritmul de autehtificare SHA-1 4. Diagramă SHA-1

Algoritmul de autehtificare SHA-1 4. Diagramă SHA-1

Algoritmul de autehtificare SHA-1 4. Diagramă SHA-2

Algoritmul de autehtificare SHA-1 4. Diagramă SHA-2