0% au considerat acest document util (0 voturi)
6 vizualizări3 pagini

Functii Hash

Funcțiile hash sunt algoritmi care transformă datele digitale într-un șir criptat de lungime fixă, având aplicații esențiale în securitate, cum ar fi stocarea parolelor și asigurarea integrității fișierelor. Algoritmii de hashing populari includ MD5, SHA1, SHA2, și SHA3, fiecare având caracteristici și niveluri de securitate diferite. Atacurile asupra funcțiilor hash, cum ar fi collision attack și first pre-image attack, reprezintă riscuri semnificative pentru securitatea datelor.

Încărcat de

nicoletnailtech
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
6 vizualizări3 pagini

Functii Hash

Funcțiile hash sunt algoritmi care transformă datele digitale într-un șir criptat de lungime fixă, având aplicații esențiale în securitate, cum ar fi stocarea parolelor și asigurarea integrității fișierelor. Algoritmii de hashing populari includ MD5, SHA1, SHA2, și SHA3, fiecare având caracteristici și niveluri de securitate diferite. Atacurile asupra funcțiilor hash, cum ar fi collision attack și first pre-image attack, reprezintă riscuri semnificative pentru securitatea datelor.

Încărcat de

nicoletnailtech
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Functii hash

Funcția Hash este o ecuație matematică sau un algoritm care ia o intrare sub formă de date
digitale (poate fi orice, de la o parolă de e-mail, la conținutul unei cărți digitale) și o convertește
într-o ieșire criptată care constă într-un șir de litere și numere de lungime fixă.
Chiar dacă ieșirea unui Hash Function poate părea aleatorie, va produce întotdeauna aceeași
ieșire pentru o intrare dată. Dacă intrarea este modificată în vreun fel, valoarea hash a ieșirii va fi
complet diferită. De exemplu, rularea textului „abc” prin funcția hash SHA256 (aceasta este
funcția hash criptografică utilizată pentru securizarea blockchain-ului Bitcoin) dă următoarea
ieșire:
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
Dacă șirul de intrare este ușor modificat, și introduceți „abc!” în loc de „abc”, noua ieșire SHA
256 devine:
5ac9481b887da55cdb508bbb7d91e7896c418c1ad3badb6f4f6d2a524f5cdcaf
După cum se vede din exemplul de mai sus, o ușoară modificare a intrării produce o ieșire hash
complet nouă. Hash-urile sunt considerate a fi funcții unidirecționale, deoarece nu există nicio
modalitate de a obține intrarea originală din hash-ul de ieșire generat.
Funcțiile Hash sunt esențiale și au multe utilizări în tehnologia blockchain și în sistemele
descentralizate. În crypto-monede, în special în cele care funcționează cu algoritmul de dovadă a
consensului muncii (Proof of Work), sunt rulate următoarele prin funcția hash SHA256:
1. Date acumulate din block-ul tranzacțiilor semnate recent;
2. Informații de referință din block-ul anterior din blockchain;
3. Un număr generat aleatoriu.
Cele trei componente de mai sus sunt reținute până când rezultatul îndeplinește criterii specifice
care permit noului block de tranzacții să fie legat matematic de block-ul anterior, adăugând astfel
un alt block în blockchain.
Tabele hash
In multe aplicatii se lucreaza cu structuri mari de date in care este necesar sa fie facute cautari,
inserari, modificari si stergeri. Aceste structuri pot fi vectori, matrice, liste. In cazurile mai
fericite ale vectorilor, acestia pot fi sortati, caz in care localizarea unui element se face prin
metoda injumatatirii intervalului, adica in timp logaritmic. Chiar daca nu avem voie sa sortam
vectorul, tot se pot face anumite optimizari care reduc foarte mult timpul de cautare. De
exemplu, probabil in cazul unei aplicatii referitoare la indexarea unei baze de date, daca avem o
baza de date cu patru elemente de tip string, si anume B = ("bac", "zugrav", "abac", "zarva")
putem construi un vector Ind care sa ne indice ordinea in care s-ar cuveni sa fie asezate cuvintele
in vectorul sortat.

Ordinea alfabetica a cuvintelor este: "abac", "bac", "zarva", "zugrav", deci vectorul Ind este: Ind
= (3, 1, 4, 2)semnificand ca primul cuvant din vectorul sortat ar trebui sa fie al treilea din
vectorul B, respectiv "abac", si asa mai departe. In felul acesta am obtinut un vector sortat, care
presupune o indirectare a elementelor. Vectorul sortat este B' = (B(Ind(1)), B(Ind(2)), B(Ind(3)),
B(Ind(4)).

Aplicații ale funcțiilor hash


Parole
De cele mai multe ori parola nu este salvată pe hard-disk, ci se salvează un hash al acesteia.
Astfel în momentul în care userul introduce parola, se calculează hash-ul acesteia care este
comparat apoi cu hash-ul salvat în momentul setării inițiale a parolei stocat pe hard disk. 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. Avantajul acestui mod de salvare a parolelor
este că nimeni nu poate afla parolele utilizatorilor. În plus dacă un cracker compromite sistemul
și are astfel acces la fișierul cu parole, acesta poate observa hash-ul parolelor dar nu și parolele.
Iar din hash nu se poate obține parola.
Integritate
Toți producătorii de software includ pe langă fișierul binar care reprezintă programul și hash-ul
acestuia. Astfel după ce se descarcă fișierul, se calculează hash-ul acestuia apoi se compară cu
cel afișat pe site-ul producătorului. Dacă hașhurile nu sunt identice atunci fișierul a fost
modificat (poate fi un virus sau a fost copiat cu erori). Un singur bit modificat în informația a
cărui hash îl calculăm generează un Diggest complet diferit.
Semnatura digitala
Hash-ul mesajului se criptează cu cheia privată, iar rezultatul se numeste semnatură digitală.
Algoritmi de hashing
MD5 – Message Diggest Version 5
– generează un hash pe 128 biti exprimat în 32 cifre hexazecimale;
– a fost creat de prof. Ronald Rivest de la MIT in 1991;
– a fost standardizat în RFC1321;
– este unul dintre cei mai folosiți algoritmi de hashing;
– începând cu anul 2004 au început să fie descoperite diferite vulnerabilități în algoritm multe
ne-fatale.
SHA1 – Secure Hash Algorithm Version 1
– generează un hash output pe 160 biți exprimat în 40 cifre hexazecimale;
– a fost creat și publicat de guvernul USA (NSA) în 1993;
– operează pe mesaje de maximum 2^64-1 biți;
– este unul dintre cei mai folosiți algoritmi de hashing;
– începând cu anul 2004 au început să fie descoperite diferite vulnerabilitati în algoritm multe
ne-fatale.
SHA2 – Secure Hash Algorithm Version 2
– este o noua familie de algoritmi de Hash publicati in 2001 care contine:
– SHA-224, SHA-256, SHA-384 si SHA-512 dupa nr. de biți ai outputului;
SHA3 – Secure Hash Algorithm Version 3
– reprezintă un nou protocol care este înca în dezvoltare.
Whirlpool
– a fost creat in 1995;
– produce un hash de 512 biți;
– este o funcție nouă de hashing care poate opera cu mesaje de maxim de 2^256 biți;
Tiger
– optimizat pentru procesoarele pe 64 biti;
– outputul poate fi de 128 sau 160 biți pentru compatibilitate cu algoritmii mai vechi sau 192
biti;
Bcrypt
-explicit pentru protectia parolelorstocate in baze de date
Algoritmi hibrizi de criptare TSL/SSL – protocoale folositepentru securizarea datelor transm ise
prin Internet
C. Tipuri de atacuri asupra funcțiilor hash
Collision attack
Presupune găsirea a două mesaje oarecare cu același hash în mai putin de 2^(L/2) iterații. Acest
tip de vulnerabilitate nu reprezintă o problemă de securitate.
First pre-image attack
Presupune găsirea unui mesaj care determină un hash dat în mai putin de 2^L iterații. Acest tip
de vulnerabilitate reprezintă o gravă problemă de securitate.
Second pre-image attack
Presupune găsirea unui mesaj M2, avându-se un mesaj M1 care să determine același hash în mai
puțin de 2^L iterații. Acest tip de vulnerabilitate reprezintă o gravă problemă de securitate (L =
lungimea în biți a hash-ului rezultat).
MAC – Message Authentication Code
MAC se foloseste pentru garantarea identității sursei și integrității mesajului. Ideea de bază din
spatele unui MAC este simplă. În loc de a calcula doar hash-ul unui mesaj, sursa adaugă la mesaj
o cheie secretă știută doar de către destinație și calculează hash mesaj + cheie. Către destinație se
trimite mesajul în clar și MAC-ul său. Astfel destinația calculează hash-ul mesajului primit +
cheia secretă. Dacă MAC-ul primit de la sursă este identic cu cel calculat local de către destinație
există garanția integrității mesajului și identității sursei (non-repudiation).
generează un hash pe 128 biti exprimat în 32 cifre hexazecimale;
a fost creat de prof. Ronald Rivest de la MIT in 1991;
– a fost standardizat în RFC1321;
– este unul dintre cei mai folosiți algoritmi de hashing;
– începând cu anul 2004 au început să fie descoperite diferite vulnerabilități în algoritm multe
ne-fatale.

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