Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 30

Hash Funkcije

Emina Domjan Juren Jurica Toma Mlikota


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

You might also like