1 / 30

Hash Funkcije

Hash Funkcije. Emina Domjan • Juren Jurica • Toma Mlikota. Sadržaj. Definicija Kolizija Primjene Hash tablice Hash liste Hash stabla Kriptografske hash funkcije MD5 SHA. Definicija. HASH funkcija ili hash algoritam je funkcija za sažimanje i identificiranje podataka

Download Presentation

Hash Funkcije

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hash Funkcije Emina Domjan • Juren Jurica • Toma Mlikota

  2. Sadržaj • Definicija • Kolizija • Primjene • Hash tablice • Hash liste • Hash stabla • Kriptografske hash funkcije • MD5 • SHA

  3. Definicija • HASH funkcija ili hash algoritam je funkcija za sažimanje i identificiranje podataka • Izvođenje funkcije naziva se “hashing”, a njime se dobije hash vrijednost • Hash funkcija je transformacija koja od ulaza varijabilne veličine vraća znakovni niz fiksne dužine

  4. Definicija • Hash = chop and mix • Peter Luhn, IBM 1953. godine • Hash funkcije su determinističke • Ako su dva izlaza dobivena istom funkcijom različita onda su i ulazi bili različiti

  5. Kolizija • Kolizija je situacija koja se događa kada od dva različita ulaza u hash funkciju dobijemo identične izlaze • Može se izbjeći samo u situacijama kada postoji malen broj unaprijed poznatih ulaza

  6. Primjene hash funkcija • Detekciju i ispravljanje grešaka nastalih prijenosom podataka • Uspoređivanje datoteka te utvrđivanje integriteta • Pronalaženje datoteka u p2p • Hash tablice, liste, stabla

  7. Pronalaženje datoteka u p2p mrežama

  8. Hash tablice • Hash tablice ili hash mape su strukture podataka koje povezuju ključeve s određenim vrijednostima • Osnovna namjena hash tablica je učinkovito pretraživanje • Podržavaju funkcije insert (ključ, vrijednost), lookup (ključ), delete(ključ) te usluge tipa proširivanje tablice, pražnjenje tablice i sl.

  9. Hash tablice

  10. Kolizija u hash tablicama • Ulančavanje – svaki element niza referencira se na vezanu listu

  11. Kolizija u hash tablicama • Otvoreno adresiranje – podaci se spremaju direktno u niz, a niz se pretražuje dok se ne nađu traženi podaci

  12. Hash liste • Hash liste mogu biti bilo koja vrsta lista hash vrijednosti • Koriste se za dodatno ubrzanje pretraživanja hash tablica, očuvanje integriteta podataka, u distribuiranim bazama podataka …

  13. Hash liste

  14. Hash stabla • Nadopuna hash listi • Nazivaju se i Merkle trees te Tiger tree hashes • Hash stablo je stablo hash vrijednosti gdje su listovi u stablu hash vrijednosti blokova podataka. Čvorovi dalje u stablu su hash vrijednosti odgovarajuće djece • Koriste se za zaštitu podataka te da se osiguramo da čvorovi ne šalju krivotvorene podatke

  15. Hash stablo

  16. Kriptografske hash funkcije • Kriptografske hash funkcije su hash funkcije s dodatnim sigurnosnim svojstvima kako bi ih se moglo koristiti za autentifikaciju i očuvanje integriteta podataka • Neke od funkcija su HAVAL, MD2, MD4, MD5, N-Hash, RIPEMD-160, SHA, Snefru, Tiger, Whirlpool

  17. MD5 • Hash vrijednost velika je 128 bita • Prihvaćen je kao Internet standard (RFC 1321) • Algoritam je 1991. godine razvio Ronald Rivest (Department of Electrical Engineering and Computer Science, MIT)

  18. MD5 algoritam • Poruka se dijeli na blokove veličine 512 bita • MD5 algoritam radi na 128-bitnom izrazu koji se dijeli na 4 32-bitne riječi • Zatim se procesiraju redom svi 512-bitni blokovi kojima se mijenja 128-bitni izraz

  19. MD5 algoritam • Procesiranje poruke sastoji se od 4 slične faze koje se nazivaju “rounds”. Svaka faza sastoji se od 16 sličnih operacija baziranih na nelinearnoj funkciji F, modularnom zbrajanju i rotaciji bitova ulijevo

  20. MD5 algoritam

  21. MD5CRK • Pokrenuo ga je Jean-Luc Cooke (CertainKey Cryptosystems) 1. ožujka 2004. • Napad se odvijao distribuirano • Očekivano vrijeme potrebno za pronalazak kolizije je • Vjerojatnost uspjeha nakon K MD5 kalkulacija je • Očekivani broj operacija potrebnih za pronalaženje kolizije je

  22. Pollard's rho algorithm

  23. SHA - 1 • Iz porodice algoritama za kriptiranje SHA • Algoritam je baziran na metodama koje koristi Ronald R. Rivest (MIT) u MD4 i MD5 algoritmima za dobivanje sažetka • Algoritam za poruke duljine do 264 bita (216 TB) generira 160-bitni sažetak • 80 bita služe za izbjegavanje kolizije

  24. Princip SHA - 1 • U prvom koraku se ulazna informacija podijeli na blokove veličine 512 bita. • Svaki blok se podijeli na 16 32-bitnih riječi: w(i), 0 ≤ i ≤ 15 • 16 32-bitnih riječi se proširuje na 80 32-bitnih riječi:for i from 16 to 79 w(i) := (w(i-3) xor w(i-8) xor w(i-14) xor w(i-16)) leftrotate 1

  25. SHA - 1 • Izračunava se hash vrijednost za svaki blok • Glavna petlja • Na zadnji se blok dodaje jedinica pa N nula (gdje N može poprimiti vrijednosti iz skupa {0,511}) te 64-bitni broj koji pokazuje veličinu originalne poruke u bitovima

  26. Primjer • ako je zadnji blok 5475-bitne poruke: 1000011010101...10111 (355 bita) • onda se dodaje 1000...000xxx...x, gdje x-eva ima 64 (5475 binarno), a nula 92 (355+1+92+64=512). • Ukoliko je zadnji blok poruke veći od 447 bita, u njega ne bi stali jedinica i 64-bitni broj pa se dodaje još jedan 512 bitni blok (na prvi 1000...0, na drugi 0000....00xxx...x).

  27. Primjer • SHA1 ("The quick brown fox jumps over the lazy dog") == "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12“ • SHA1 ("The quick brown fox jumps over the lazy cog") == "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3“ • SHA1 ("") == "da39a3ee5e6b4b0d3255bfef95601890afd80709"

  28. SHA - 2 • Sadrži u sebi pod-algoritme SHA-256, SHA-384 and SHA-512 koji daju sažetak u duljini od 256, 384 i 512 bitova • SHA-256 ima 128 bita za izbjegavanje kolizije • SHA-384 ima 192 bita za izbjegavanje kolizije • SHA-512 ima 256 bita za izbjegavanje kolizije • SHA-2 algoritmi jamče nam veću sigurnost od SHA-1 algoritma zbog veće dužine sažetka i više bitova za izbjegavanje kolizije

  29. SHA – 2 • SHA-256:- koristi 32-bitne riječi- 64 koraka- više početnih varijabla • SHA-512:- koristi 64-bitne riječi- 80 koraka- različite početne vrijednosti i konstante- različiti shift i rotate amounts

More Related