Sunteți pe pagina 1din 11

Definiie:

O funcie hash (hash function) reprezint un algoritm matematic


criptografic care genereaz un checksum (rezumat criptografic)
unic pentru fiecare mesaj. Acest checksum se numeste Message
Diggest, Diggest sau Hash.

Proprieti ale funciilor hash:

Dou mesaje diferite genereaz dou hash-uri diferite, adic


fiecare mesaj genereaz un hash unic sau nu exist 2 mesaje
diferite avnd acelai hash;
Dimensiunea hash-ului este ntotdeauna aceeai indiferent de
mrimea datelor care genereaz hash-ul;
Aceste funcii se numesc one-way functions deoarece nu exist
posibilitatea practic ca din hash s se recreeze mesajul ini ial;
Funciile de hash sunt extrem de sensibile la orice modificare
orict de mic (efect de avalan);
Hash-ul unui mesaj este mereu acelai.

Aplicaii ale funciilor hash:

Sistemele de parole - De cele mai multe ori parola nu este


salvat pe hard-disk n clar ci se salveaz un hash al acesteia.
Astfel n momentul n care utilizatorul introduce parola, se
calculeaza hash-ul acesteia care este comparat apoi cu hash-ul
salvat n momentul setrii iniiale a parolei din fiierul de pe harddisk. Dac cele dou hash-uri sunt egale atunci parola este
corect. Dac parola ar fi fost introdus gre it, hash-ul ei ar fi fost
diferit de cel salvat pe hard-disk fiindc fiecare mesaj are propriul
hash, nu exista dou mesaje (dou parole cu acela i hash).
Avantajul acestui mod de salvare a parolelor este c nimeni (nici
root pe Linux sau administrator pe Windows) nu poate afla
parolele utilizatorilor. n plus, dac un cracker compromite
sistemul i are astfel acces la fiierul cu parole, acesta poate
observa hash-ul parolelor i nu parolele. Iar din hash nu se poate
obine parola.

Aplicaii ale funciilor hash:

Garantarea integritatii unui fisier, program executabil etc.


Toi productorii de software includ pe lng fiierul binar care
reprezint programul i hash-ul acestuia. Astfel, dup descrcarea
fiierului, se calculeaz hash-ul acestuia apoi se compar cu cel
afiat pe site-ul producatorului. Dac hashurile nu sunt identice
atunci fiierul a fost modificat (poate fi un virus, cal troian sau pur
i simplu a fost copiat cu erori). Un singur bit modificat n
informaia a crui hash calculm genereaz un Diggest complet
diferit.
Semnarea digital a unui mesaj - Hash-ul mesajului se cripteaz
cu cheia privat, iar rezultatul se numete semnatur digital.

Algoritmi de hashing:

Message Diggest Version 5 (MD5)


genereaz un hash pe 128 bii exprimat n 32 cifre
hexazecimale;
a fost creat de prof. Ronald Rivest de la MIT n 1991;
a fost standardizat n RFC1321;
ncepnd cu anul 2004 au nceput s fie descoperite diferite
vulnerabiliti n algoritm multe ne-fatale;

Algoritmi de hashing:

Secure Hash Algorithm Version 1 (SHA1):


genereaz un hash output pe 160 bii exprimat n 40 cifre
hexazecimale;
a fost creat i publicat de National Security Agency (SUA) n 1993;
opereaza pe mesaje de maximum 2^64-1 bii;
ncepnd cu anul 2004 au nceput s fie descoperite diferite
vulnerabiliti n algoritm multe ne-fatale.
Secure Hash Algorithm Version 2 (SHA2):
are ase funcii hash cu digest (valori hash) care sunt 224, 256,
384 sau 512 bii (SHA-224, SHA-256, SHA-384, SHA-512, SHA512/224, SHA-512/256).
Secure Hash Algorithm Version 3 (SHA3):
a fost lansat de ctre NIST la 5 august 2015.

Algoritmi de hashing:

Whirlpool:
provine de la numele unei galaxii situata la aproximativ 31
milioane de ani lumina in constelaia Canes Venatici.
a fost creat de Rijmen Vincent, care de asemenea a contribuit la
crearea Advanced Encription Standard AES, i Paulo Barreto,
fiind prezentat pentru prima oara n anul 2000.
mrimea amprentei generate de Whirlpool este de 512 bii.
Tiger Tree Hashing (TTH):
a fost creat n 1995 de catre Ross Anderson i Eli Biham pentru o
eficiena imbunataita pe platformele de 64 bii;
mrimea amprentei rezultate este de 192 bii, dar pentru
compatibilitai cu anumite protocoale se folosesc i amprente
trunchiate din cea originala de 128 i respectiv 160 bii, rezultnd
denumirile de: Tiger-128, Tiger-160 i respectiv Tiger-192.

Tipuri de atacuri asupra functiilor de hash:

Collision attack - Presupune gsirea a dou mesaje oarecare cu


acelai hash n mai puin de 2^(L/2) iteraii. Acest tip de
vulnerabilitate nu reprezint o problem de securitate;
First pre-image attack - Presupune gsirea unui mesaj care
determin un hash dat n mai puin de 2^L itera ii. Acest tip de
vulnerabilitate reprezint o grav problem de securitate;
Second pre-image attack - Presupune gsirea unui mesaj M2,
avndu-se un mesaj M1 care s determine acela i hash n mai
puin de 2^L iteraii. Acest tip de vulnerabilitate reprezint o grav
problem de securitate;

* L = lungimea hash-ului rezultat

Tipuri de atacuri asupra functiilor de hash:

Message Authentication Code (MAC) - Se foloseste pentru


garantarea identitii sursei i integritii mesajului. Ideea de baz
din spatele unui MAC este simpla. n loc de a calcula doar hash-ul
unui mesaj, sursa adaug la mesaj o cheie secret tiut doar de
ctre destinaie i calculeaz hash mesaj + cheie. Ctre destina ie
se trimite mesajul n clar i MAC-ul su. Astfel, destinaia
calculeaz hash-ul mesajului primit + cheia secret. Dac MAC-ul
primit de la surs este identic cu cel calculat local de ctre
destinaie, exist garania integritii mesajului i identitii sursei
(non-repudiation).

Bibliografie:

Site: http://www.garykessler.net/library/crypto.html#hash