Sadraj Definicija Kolizija Primjene Hash tablice Hash liste Hash stabla Kriptografske hash funkcije MD5 SHA Definicija HASH funkcija ili hash algoritam je funkcija za saimanje i identificiranje podataka
Izvoenje funkcije naziva se hashing, a njime se dobije hash vrijednost
Hash funkcija je transformacija koja od ulaza varijabilne veliine vraa znakovni niz fiksne duine Definicija Hash = chop and mix Peter Luhn, IBM 1953. godine
Hash funkcije su deterministike Ako su dva izlaza dobivena istom funkcijom razliita onda su i ulazi bili razliiti
Kolizija Kolizija je situacija koja se dogaa kada od dva razliita ulaza u hash funkciju dobijemo identine izlaze
Moe se izbjei samo u situacijama kada postoji malen broj unaprijed poznatih ulaza Primjene hash funkcija Detekciju i ispravljanje greaka nastalih prijenosom podataka Usporeivanje datoteka te utvrivanje integriteta Pronalaenje datoteka u p2p
Hash tablice, liste, stabla
Pronalaenje datoteka u p2p mreama Hash tablice Hash tablice ili hash mape su strukture podataka koje povezuju kljueve s odreenim vrijednostima Osnovna namjena hash tablica je uinkovito pretraivanje Podravaju funkcije insert (klju, vrijednost), lookup (klju), delete(klju) te usluge tipa proirivanje tablice, pranjenje tablice i sl. Hash tablice Kolizija u hash tablicama Ulanavanje svaki element niza referencira se na vezanu listu Kolizija u hash tablicama Otvoreno adresiranje podaci se spremaju direktno u niz, a niz se pretrauje dok se ne nau traeni podaci Hash liste Hash liste mogu biti bilo koja vrsta lista hash vrijednosti
Koriste se za dodatno ubrzanje pretraivanja hash tablica, ouvanje integriteta podataka, u distribuiranim bazama podataka Hash liste 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 odgovarajue djece Koriste se za zatitu podataka te da se osiguramo da vorovi ne alju krivotvorene podatke Hash stablo Kriptografske hash funkcije Kriptografske hash funkcije su hash funkcije s dodatnim sigurnosnim svojstvima kako bi ih se moglo koristiti za autentifikaciju i ouvanje integriteta podataka Neke od funkcija su HAVAL, MD2, MD4, MD5, N-Hash, RIPEMD-160, SHA, Snefru, Tiger, Whirlpool MD5 Hash vrijednost velika je 128 bita Prihvaen je kao Internet standard (RFC 1321) Algoritam je 1991. godine razvio Ronald Rivest (Department of Electrical Engineering and Computer Science, MIT) MD5 algoritam Poruka se dijeli na blokove veliine 512 bita
MD5 algoritam radi na 128-bitnom izrazu koji se dijeli na 4 32-bitne rijei
Zatim se procesiraju redom svi 512-bitni blokovi kojima se mijenja 128-bitni izraz MD5 algoritam Procesiranje poruke sastoji se od 4 sline faze koje se nazivaju rounds. Svaka faza sastoji se od 16 slinih operacija baziranih na nelinearnoj funkciji F, modularnom zbrajanju i rotaciji bitova ulijevo MD5 algoritam MD5CRK Pokrenuo ga je Jean-Luc Cooke (CertainKey Cryptosystems) 1. oujka 2004. Napad se odvijao distribuirano Oekivano vrijeme potrebno za pronalazak kolizije je Vjerojatnost uspjeha nakon K MD5 kalkulacija je Oekivani broj operacija potrebnih za pronalaenje kolizije je Pollard's rho algorithm 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 saetka Algoritam za poruke duljine do 2 64 bita (216 TB) generira 160-bitni saetak 80 bita slue za izbjegavanje kolizije Princip SHA - 1 U prvom koraku se ulazna informacija podijeli na blokove veliine 512 bita. Svaki blok se podijeli na 16 32-bitnih rijei: w(i), 0 i 15 16 32-bitnih rijei se proiruje na 80 32-bitnih rijei: 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 SHA - 1 Izraunava se hash vrijednost za svaki blok
Glavna petlja
Na zadnji se blok dodaje jedinica pa N nula (gdje N moe poprimiti vrijednosti iz skupa {0,511}) te 64-bitni broj koji pokazuje veliinu originalne poruke u bitovima 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 vei 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). 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 " SHA - 2 Sadri u sebi pod-algoritme SHA-256, SHA-384 and SHA-512 koji daju saetak 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 jame nam veu sigurnost od SHA-1 algoritma zbog vee duine saetka i vie bitova za izbjegavanje kolizije SHA 2 SHA-256: - koristi 32-bitne rijei - 64 koraka - vie poetnih varijabla
SHA-512: - koristi 64-bitne rijei - 80 koraka - razliite poetne vrijednosti i konstante - razliiti shift i rotate amounts