Sunteți pe pagina 1din 26

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ă 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

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 (B10) = 011 (B2)
2. Fh (147) = Fh(10010011) = 4 (B10) = 100 (B2)

Important:
1. Intrări asemănătoare, ieşiri diferite !
2. 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. Fh(00011111) = 5 (B10) = 101 (B2)


2. Fh(00111101) = 5 (B10) = 101 (B2)
3. Fh(00011011) = 5 (B10) = 101 (B2)
4. … ş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 !!!
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: CRC8, CRC12,
CRC16, etc)
3. Coduri corectoare de erori (mai puţin, deoarece
sunt ineficiente)
4. Autentificare
5. Semnătură digitală
Algoritmul de autentificare MD5
1. Scurt istoric

Algoritmul MD5 (message digest)

• este ultimul dintr-o serie de algoritmi proiectaţi de


Ronald Rivest, profesor la MIT (Massachusetts Institute
of Technology)

•MD5 a fost dezvoltat în 1990 ca un înlocuitor mai sigur al


algoritmului MD4 criptanalizat de Hans Dobbertin care a
demonstrat slăbiciunile acestuia.
Algoritmul de autentificare MD5
2. Descrierea algoritmului MD5

Algoritmul MD5 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 MD5 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 MD5
2. Descrierea algoritmului MD5
Pentru a calcula amprenta digitală a unui mesaj, MD5
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 MD5
2. Descrierea algoritmului MD5

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 MD5
2. Descrierea algoritmului MD5

În esenţă MD5 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 MD5
2. Descrierea algoritmului MD5

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 MD5
2. Descrierea algoritmului MD5

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 MD5
2. Descrierea algoritmului MD5

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
MD5.

Cele patru registre vor fi iniţializate după cum urmează:


Word A: 01234567
Word B: 89ABCDEF
Word C: FEDCBA98
Word D: 76543210
Algoritmul de autentificare MD5
2. Descrierea algoritmului MD5

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 MD5
2. Descrierea algoritmului MD5

Diagrama algoritmului MD5


Algoritmul de autentificare MD5
2. Descrierea algoritmului MD5

Diagrama algoritmului MD5


Algoritmul de autentificare MD5
2. Exemplu din lumea reală: Yahoo Mail
Algoritmul de autentificare MD5
2. Exemplu din lumea reală: Yahoo Mail
Algoritmul de autentificare MD5
2. Exemplu din lumea reală: Yahoo Mail
Algoritmul de autehtificare SHA-1
(Secure Hash Standard)
1. Scurt istoric
Specificaţiile iniţiale ale 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ă


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 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 MD5 descris anterior.

Organizaţia guvernamentală americană NIST a mai


publicat specificaţiile a încă patru variante ale
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 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 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-2

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