Beruflich Dokumente
Kultur Dokumente
Strossmayera u Osijeku
Odjel za matematiku
Slobodan Cvijović-Gorša
Hash-funkcije u kriptografiji
Diplomski rad
Osijek, 2013.
Sveučilište J. J. Strossmayera u Osijeku
Odjel za matematiku
Slobodan Cvijović-Gorša
Hash-funkcije u kriptografiji
Diplomski rad
Osijek, 2013.
Sadržaj
1 Uvod 3
2 Hash-funkcije 4
2.1. Definicija i osnovna svojstva . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1. Veza između svojstava . . . . . . . . . . . . . . . . . . . . . . . 5
3 Klasifikacija hash-funkcija 6
3.1. Pojednostavljena klasifikacija hash-funkcija . . . . . . . . . . . . . . . . 6
3.2. Ciljevi napada i vrste krivotvorina . . . . . . . . . . . . . . . . . . . . . 8
3.2.1. Napadač protiv MDC . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2. Napadač protiv MAC . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.3. Vrste krivotvorina . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. Ostala svojstva hash-funkcija i primjene . . . . . . . . . . . . . . . . . 9
3.3.1. Dodatna svojstva jednosmjernih hash funkcija . . . . . . . . . . 10
Literatura 30
Sažetak 31
Title and summary 32
Životopis 33
1 Uvod
U današnje vrijeme je nezamisliva razmjena podataka bez uporabe računala i interneta.
Kako je pristup podacima putem interneta omogućen velikom broju ljudi, povjerljivi
podaci trebaju što veću sigurnost, a tu veliku ulogu igra kriptografija. Njen cilj je
učiniti podatke nerazumljivim i teškim za dešifriranje ljudima koji nemaju ovlašten
pristup. U ovome radu ćemo se upoznati sa hash-funkcijama koje igraju jednu od
temeljnih uloga u današnjoj kriptografiji. Hash-funkcije su funkcije koje za ulaznu po-
ruku daju ”šifriranu” poruku uglavnom fiksne duljine poznatu pod nazivom hash. U
nastavku ćemo dati definiciju hash-funkcija te ćemo govoriti o njihovim svojstvima i
primjeni.
U drugom poglavlju ćemo dati definiciju hash-funkcije i navest ćemo sva potrebna
svojstva koja bi hash-funkcija trebala imati te veze između određenih svojstava.
Treće poglavlje govori o klasifikaciji hash-funkcija. Reći ćemo nešto o ciljevima na-
pada na određene hash-funkcije i vrstama krivotvorina. Na kraju poglavlja navest
ćemo ostala svojstva hash-funkcija potrebna za različite primjene.
Poglavlje 4 nam ilustrira osnovnu konstrukciju hash-funkcija i daje nam opći model
iterativne hash-funkcije te njen detaljan prikaz. U ovom poglavlju je još ukratko opi-
sano proširenje funkcija kompresije do hash-funkcija.
U zadnjem poglavlju ćemo opisati hash-funkcije s ključem. Ukratko ćemo reći o kons-
trukciji MAC-ova iz MDC-ova, a na samom kraju poglavlja ćemo opisati princip rada
nekoliko prilagođenih MAC algoritama.
3
2 Hash-funkcije
Kao što smo spomenuli u uvodu, u ovom radu ćemo govoriti o hash-funkcijama u krip-
tografiji. Na početku ćemo dati definiciju hash-funkcije i navesti neka njena osnovna
svojstva. Hash-funkcije za ulaz uzimaju poruku koja je uglavnom fiksne duljine i za
izlaz daju ”šifriranu” poruku poznatiju kao hash-code, hash-rezultat, hash-vrijednost ili
jednostavno hash. Preciznije rečeno, hash-funkcija h pridružuje nizovima znakova pro-
izvoljne konačne duljine nizove znakova fiksne duljine, od npr. n bita. Za domenu D i
kodomenu R definiramo preslikavanje h : D → R, gdje je |D| > |R|. Kako je |D| > |R|
znači da će dolaziti do kolizija jer sa manjim brojem znakova trebamo reprezentirati
veći broj znakova. Osnovna ideja hash-funkcija je da hash služi kao kompaktna re-
prezentativna slika (digitalni otisak) ulazne vrijednosti i da se ne može dobiti pomoću
neke druge ulazne vrijednosti.
Hash-funkcije služe kako bi se što više podigla razina sigurnosti podataka. Kripto-
grafske hash-funkcije se smatraju nesigurnima ako je moguće nalaženje prethodno ne-
poznatog podatka za koji algoritam daje traženi hash ili ako je moguće nalaženje dva
različita podatka koji će nakon hashiranja dati isti hash. Ako bi napadač mogao na-
praviti bilo što od prethodno navedenog, mogla bi se ugroziti sigurnost podataka.
4
Kako bi olakšali daljnje definiranje, navest ćemo neka dodatna svojstva za hash funkcije
bez ključa koje imaju ulaze x, x0 i izlaze y, y 0 .
Neka je hash funkcija g jako otporna na koliziju i neka ulazima proizvoljne dužine
pridružuje n-bitne izlaze. Definirat ćemo funkciju h na sljedeći način (znak || nam
predstavlja ulančavanje):
1 || x, ako je x duljine bita n
h(x) =
0 || g(x), inače.
Ovako definirana funkcija h je (n + 1)-bitna hash funkcija koja je jako otporna na koli-
ziju, ali nije jednosmjerna. Kao jednostavniji primjer, identiteta na ulaze fiksne duljine
je i jako i slabo otporna na koliziju (originali su jedinstveni), ali nije jednosmjerna.
5
3 Klasifikacija hash-funkcija
3.1. Pojednostavljena klasifikacija hash-funkcija
Kao što smo spomenuli ranije, hash-funkcije dijelimo na hash funkcije s ključem i hash
funkcije bez ključa. Međutim, za stvarnu uporabu, trebamo detaljniju podjelu hash-
funkcija, temeljenu na daljnjim svojstvima koja posjeduju te na odrazu zahtjeva spe-
cifičnih aplikacija. Među brojnim kategorijama u funkcionalnoj klasifikaciji, razmotrit
ćemo dva tipa hash-funkcija:
6
Slika 3.1: Pojednostavljena klasifikacija hash-funkcija
Iako se ne navodi u definiciji, u praksi CRHF gotovo uvijek ima svojstvo jednosmjer-
nosti.
7
Računska otpornost se treba zadržati, inače MAC algoritam može postati predmet
MAC krivotvorine. Računska otpornost implicira svojstvo neotkrivanja ključa (mora
biti računski neizvedivo otkriti k), ali neotkrivanje ključa nam ne implicira računsku
otpornost zbog toga što ne trebamo uvijek otkriti ključ za krivotvorinu novog MAC-a.
Jedan od najštetnijih napada bilo bi otkrivanje ključa od samog MAC ključa te taj
napad omogućuje selektivnu krivotvorinu. MAC krivotvorina dopušta protivniku da
krivotvoreni tekst prihvati kao vjerodostojan, a posljedice mogu biti teške čak i u egzis-
tencijalnom slučaju. U pokušaju da se spriječe smisleni napadi, poruka čiji se integritet
ili autentičnost provjerava je često ograničena na unaprijed određene strukture ili vi-
soke stupnjeve podudararanja.
8
Analogno napadima na MAC, napadi na MDC sheme, prvenstveno jednoznačnost i
kolizijski napad, se mogu razvrstati kao selektivni napad - ako se poruka može dijelom
kontrolirati, ili kao egzistencijalni napad.
Mnoga korištenja MDC-a u praksi mogu udovoljiti dodatna svojstva osim onoga za
čega su bila originalno namijenjena. Ipak, korištenje proizvoljnih hash-funkcija nije
preporučljivo za bilo kakve primjene bez oprezne analize.
9
3. nekompresijske jednosmjerne funkcije - to su hash-funkcije fiksne veličine, osim
što je kod njih m = n.
Hash-funkcije ne bi trebale biti slabije u odnosu na neke dijelove svog ulaza ili izlaza
od drugih funkcija, a svi nizovi bi trebali biti jednako teški. Neka od ovih svojstava se
mogu nazvati certifikacijska svojstva - svojstva koja se intuitivno poželjno jave, premda
se ne može pokazati izravna neophodnost.
10
4 Osnovna konstrukcija hash-funkcija
Većina hash-funkcija bez ključa h su dizajnirane kao iterativni procesi koji hashiraju
ulaze proizvoljne duljine obrađujući uzastopne ulazne blokove fiksne veličine.
Hash ulaz x proizvoljne konačne duljine je podijeljen na r-bitne blokove xi fiksne du-
ljine. Ova predobrada se obično uključuje dodavanjem koliko god je potrebno dodatnih
blokova za postizanje cjelokupne duljine bita, a što je više od duljine blokova r i često
uključuje blok ili djelomični blok koji ukazuje na duljinu bita od nedopunjena ulaza.
Svaki blok xi tada služi kao ulaz unutarnjoj hash-funkciji f fiksne veličine, funkciji
kompresije od h, koja izračunava novi međurezultat duljine bita n, za neki fiksni n,
kao funkcija od prethodnog n-bitnog međurezultata i sljedećeg ulaznog bloka xi . Neka
Hi označava djelomičan rezultat poslije faze i, opći proces za iterativnu hash-funkciju
s ulazom x = x1 x2 . . . xt može biti modeliran na sljedeći način:
11
Slika 4.2: Detaljan prikaz općeg modela iterativne hash-funkcije
12
3. Definirati dodatni završni blok xt+1 , duljinski blok, kako bi zadržali poravnati(dopunjeni)
binarni prikaz od b (pretpostavljamo da je 2b < 2r ).
H0 = 0n ; Hi = f (Hi−1 ||xi ), 1 ≤ i ≤ t + 1.
13
5 Hash-funkcije bez ključa (MDC)
Sada kada smo naveli opća svojstva i konstrukcije hash-funkcija, možemo promatrati
podklasu hash-funkcija bez ključa poznatu kao modificirano otkrivanje kodova (MDC).
Sa strukturalne točke gledišta ove funkcije se mogu kategorizirati prema prirodi ope-
racija koje obuhvaćaju njihove unutarnje funkcije kompresije. S ove točke gledišta
postoje tri najšire kategorije iterativnih hash-funkcija koje su do danas proučavane, a
to su hash-funkcije bazirane na blok šiframa, prilagođene hash-funkcije i hash-funkcije
bazirane na modularnoj aritmetici. Prilagođene hash-funkcije su dizajnirane specijalno
za hashiranje, uzimajući u obzir brzinu i neovisnost o drugim komponentama, dok su
blok-šifre i modularno množenje potkomponente koje mogu biti korištene i u druge
svrhe koje ne obuhvaćaju hashiranje.
5.1. Blok-šifre
Blok-šifra je funkcija koja tekstu podijeljenom u n-bitne blokove pridružuje n-bitne
blokove šifriranog teksta, n se naziva duljinski blok. Kod ovakvog šifriranja ulaz može
biti npr. 128-bitni tekstualni blok, a izlaz je odgovarajući 128-bitni šifrirani tekstu-
alni blok. Transformacija se obavlja pomoću tajnog ključa koji predstavlja drugi ulaz.
Dešifriranje je slično, algoritam će 128-bitnom šifriranom tekstualnom bloku, uz tajni
ključ, na izlazu dati originalni 128-bitni tekstualni blok.
14
Za svaki ključ, funkcija Ek je permutacija (bijektivno preslikavanje). Svaki ključ služi
za izbor jedne od mogućih 2n permutacija gdje n predstavlja broj bitova ulaznog bloka.
Početkom korištenja ove vrste šifriranja veličina ulaznog bloka n obično je iznosila 64
bita, a kasnije se zbog potrebe za povećanjem sigurnosti veličina ulaznog bloka povećala
na 128-bitne i veće blokove.
Jedna od najstarijih i najpoznatijih blok-šifri je DES (Data Encryption Standard )
koju je razvio IBM. Danas se ta blok-šifra smatra nesigurnom za većinu primjena
zbog premale duljine ključa koja je iznosila 56 bita, a poznati su slučajevi kada je
ključ otkriven od strane napadača u manje od 24 sata. Kasnije su se razvile razne
nadogradnje ove blok-šifre koji su davali veću sigurnost, ali se DES blok-šifra početkom
21. stoljeća prestala koristiti jer je dobila svog nasljednika AES (Advanced Encryption
standard ) blok-šifru.
15
U najjednostavnijem slučaju, veličina ključa korištenog u takvim hash-funkcijama je
približno jednaka duljini bloka šifre (npr. n-bitova). U drugim slučajevima hash-
funkcije koriste dulje ključeve. Jedna karakteristika takvih hash-funkcija koju treba
naglasiti je broj operacija u blok-šiframa potrebnih za proizvodnju hash izlaza duljine
bloka jednakom onom u šifri iz čega proizlazi i sljedeća definicija.
Tablica 5.1: k predstavlja veličinu ključa (približno), funkcija daje m-bitne hash-
vrijednosti
U nastavku ćemo nešto više reći o prve tri hash-funkcije prikazane u Tablici 5.1.
Ukoliko blok-šifra zahtijeva različite dužine ulaznog bloka podatka i ključa za šifriranje,
njen rezultat će biti nepogodne dužine za sljedeći stupanj gdje se treba koristiti kao
ključ za šifriranje. Zbog toga se često uključuje i dodatna funkcija g koja će konvertirati
izlaz funkcije kompresije u format pogodan za sljedeći stupanj.
ULAZ: niz x.
IZLAZ: n-bitni hash-kod od x.
16
Slika 5.3: Shema Matyas-Meyer-Oseas hash-funkcije
Ova hash-funkcija uzima svaki blok ulaznog podatka xi kao ključ za šifriranje blok-
šifrom. Kao ulaz blok-šifre koristi se rezultat prethodne funkcije kompresije Hi−1 .
Zbog toga se ova hash-funkcija može smatrati suprotnom od Matyas-Meyer-Oseas hash-
funkcije. Izlaz blok-šifre se obrađuje XOR funkcijom, a rezultat toga predstavlja re-
zultat funkcije kompresije Hi . Veličina ulaznog podatka je određena duljinom ključa,
npr. ako šifriranje zahtijeva 128-bitni ključ, onda će ulazni podatak biti podijeljen na
128-bitne segmente, a izlaz funkcije kompresije će također biti 128 bita.
17
Algoritam 5.2 Davies-Meyer hashiranje
ULAZ: niz x.
IZLAZ: n-bitni hash-kod od x.
18
5.3. Prilagođene hash-funkcije bazirane na MD4
Prilagođene hash-funkcije su funkcije koje su dizajnirane specijalno, od samog početka,
za posebne namjene hashiranja, s optimiziranom izvedbom i bez ograničenja na kori-
štenje postojećih komponenti sustava kao što su blok šifre ili modularna aritmetika.
One koje se u praksi najčešće koriste su bazirane na MD4 hash-funkciji.
Broj 4 u seriji hash-funkcija ("Message Digest algorithms"), MD4 je posebno dizajniran
za softversku implementaciju na 32-bitnim strojevima. Briga za sigurnost motivirala je
dizajniranje MD5 hash funkcije nedugo nakon dizajniranja MD4 funkcije, kao konzer-
vativnu verziju MD4. Od ostalih bitnih varijacija ove hash-funkcije još ćemo spomenuti
Sigurni Hash Algoritam (SHA-1).
5.3.1. MD4
Notacija Značenje
u, v, w varijable reprezentirane 32-bitnim vrijednostima
0x67452301 hexadecimalni 32-bitni cijeli broj (najmanje značajan byte: 01)
+ zbrajanje modulo 232
u bitovni komplement
u ←- s rezultat rotacije u lijevo za s pozicija
uv bitovno AND
u∨v bitovno OR
u⊕v bitovno XOR
f (u, v, w) uv ∨ uw
g(u, v, w) uv ∨ uw ∨ vw
h(u, v, w) u⊕v⊕w
19
1. Definiranje konstanti - definirati četiri 32-bitne početne ulančane vrijednosti
(IV ): h1 =0x67452301, h2 =0xefcdab89, h3 =0x98badcfe, h4 =0x10325476.
Definirati 32-bitne konstante:
y[j] = 0, 0 ≤ j ≤ 15;
y[j] =0x5a827999,16 ≤ j ≤ 31; (konstanta=kvadratni korijen iz 2)
y[j] =0x6ed9eba1, 32 ≤ j ≤ 47; (konstanta=kvadratni korijen iz 3)
Definirati red pristupanja izvornim riječima (svaka lista sadrži cijele brojeve od
0 do 15):
z[0 . . . 15] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
z[16 . . . 31] = [0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15],
z[32 . . . 47] = [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15].
Na kraju definirati broj pozicija bitova za lijevi pomak (rotaciju):
s[0 . . . 15] = [3, 7, 11, 19, 3, 7, 11, 19, 3, 7, 11, 19, 3, 7, 11, 19],
s[16 . . . 31] = [3, 5, 9, 13, 3, 5, 9, 13, 3, 5, 9, 13, 3, 5, 9, 13],
s[32 . . . 47] = [3, 9, 11, 15, 3, 9, 11, 15, 3, 9, 11, 15, 3, 9, 11, 15].
20
5.3.2. MD5
MD5 je dizajniran kao pojačana verzija MD4 i to prije nego što su pronađene kolizije u
MD4. MD5 je vrlo popularan kriptografski algoritam i ima široku primjenu. Poznato
je da MD5 ima slabosti. Iako nisu pronađene kolizije za MD5, pronađene su kolizije za
MD5 funkcije kompresije.
Promjene koje su napravljene kako bi od MD4 dobili MD5 su:
1. dodavanje četvrte runde od 16 koraka i funkcije u Rundi 4
21
5. Završetak - isti kao u M D4.
5.3.3. SHA-1
1. Hash-vrijednost je 160 bita, a koristi se pet (za razliku od četiri) 32-bitnih ulan-
čanih varijabli.
2. Funkcija kompresije ima četiri runde umjesto tri, a koristi MD4 funkcije f, g i h
i to: f u prvoj, g u trećoj, a h u drugoj i četvrtoj rundi. Svaka runda ima 20
koraka umjesto 16.
5. SHA-1 koristi četiri dodane konstante različite od 0, dok je MD4 koristio tri, od
kojih su samo dvije bile različite od 0.
ULAZ:niz x duljine b ≥ 0.
IZLAZ: 160-bitni hash-kod od x.
22
2. Definiranje konstanti - definirati peti IV koji se podudara s onima u MD4:
h5 =0xc3d2e1f0.
Definirati cjelobrojne dodane konstante:
y1 =0x5a827999, y2 =0x6ed9eba1, y3 =0x8f1bbcdc, y4 =0xca62c1d6.
3. Globalna predobrada - dopuna kao u MD4, izuzev dvije finalne 32-bitne riječi spe-
cificirane duljine b je dodana s najznačajnijom riječi prethodeći manje značajnoj.
Kao u MD4, formatirani ulaz je 16m bitna riječ x0 x1 . . . x16m−1 . Inicijalizacija
ulančanih varijabli: (H1 , H2 , H3 , H4 , H5 ) ← (h1 , h2 , h3 , h4 , h5 ).
23
5.3.4. Primjeri
Na primjerima iz Tablice 5.3 vidimo da se prilikom promjene samo jednog slova hash-
vrijednosti potpuno razlikuju. U praksi je gotovo nemoguće predvidjeti hash-vrijednost
za određene nizove znakova, a sve to zahvaljujući "efektu lavine" zbog kojeg male
promjene na ulazu imaju značajne i nepredvidive promjene na izlazu.
24
6 Hash-funkcije s ključem (MAC)
Hash-funkcije s ključem, čija je glavna svrha autentikacija i provjera integriteta poruka,
nazivaju se kodovi autentičnosti poruke (MAC). Prilikom slanja poruke, uz poruku se
šalje i dodatni podatak, koji se naziva MAC oznaka, a dobiva se upotrebom MAC
algoritma i tajnog ključa. Ukoliko primatelj posjeduje identični tajni ključ može upo-
trebom istog algoritma provjeriti da li MAC oznaka odgovara primljenoj poruci i tako
provjeriti integritet i autentičnost poruke. MAC algoritam mora biti siguran od krivo-
tvorenja. Napadač ne smije biti u mogućnosti generirati novu važeću MAC oznaku za
neku poruku korištenjem ključa, inače se algoritam smatra nesigurnim. Mnogi MAC
algoritmi su bazirani na blok-šiframa. MAC algoritmi sa relativno malim duljinama ili
kratkim ključevima još uvijek mogu ponuditi adekvatnu sigurnost u ovisnosti o raču-
nalnim resursima dostupnim za protivnike i konkretnom okruženju primjene.
Iterativni MAC se može opisati kao iterativna hash-funkcija - MAC ključ je obično
dio izlazne transformacije g; može biti i ulaz za funkciju kompresije u prvoj iteraciji ili
može biti uključen u funkciju kompresije f u bilo kojoj fazi.
6.1. CBC-MAC
Najčešći MAC algoritam baziran na blok-šifri koristi blok-šifriranje zasnovano na ulan-
čavanju i naziva se CBC-MAC. Kada se DES koristi kao blok-šifra E, tada je n = 64,
a MAC ključ je 56−bitni DES ključ.
25
Slika 6.1: Shema CBC-MAC algoritma
26
Algoritam 6.2 Algoritam ovjere poruka (MAA)
ULAZ: podatak x duljine 32j, 1 ≤ j ≤ 106 ; 64−bitni tajni MAC ključ Z = Z[1] . . . Z[8].
IZLAZ: 32-bitni MAC za x.
(a) Prvo zamijeniti bilo koji bajt 0x00 ili 0xff u Z na sljedeći način:
P ← 0; za i od 1 do 8 (P ← 2P ; ako je Z[i]=0x00 ili 0xff tada (P ←
P + 1;Z[i] ← Z[i] OR P )).
(b) Neka su J i K prva četiri, odnosno zadnja četiri byte-a od Z i izračunaj:
X ← J 4 (mod 232 − 1)⊕J 4 (mod 232 − 2)
Y ← [K 5 (mod 232 − 1)⊕K 5 (mod 232 − 2)](1 + P )2 (mod 232 − 2)
V ← J 6 (mod 232 − 1)⊕J 6 (mod 232 − 2)
W ← K 7 (mod 232 − 1)⊕K 7 (mod 232 − 2)
S ← J 8 (mod 232 − 1)⊕J 8 (mod 232 − 2)
T ← K 9 (mod 232 − 1)⊕K 9 (mod 232 − 2)
(c) Obraditi tri dobivena para (X, Y ), (V, W ), (S, T ) kako bi se uklonili svi byte-
ovi 0x00 i 0xff (isto kao za Z). Definiraj AND-OR konstante: A=0x02040801,
B=0x00804021, C=0xbfef7fdf, D=0x7dfefbff.
27
6.3.2. MD5-MAC
U svrhu dodatne zaštite cilj je bio izgraditi MAC od MDC-a tako da MAC funkcija
kompresije i sama ovisi o ključu k, što dovodi do toga da je ključ uključen u sve ite-
racije. Sljedeći algoritam se bazira na tome, a konstruiran je koristeći MD5 algoritam.
Performanse su mu blizu performansi MD5 algoritma (5 − 20% je sporiji u softveru).
2. Proširenje ključa
(a) Ako je k kraći od 128 bita, spojiti k na samog sebe potreban broj puta i
redefinirati k kao 128 polaznih bitova s lijeva.
(b) Neka M D5 označava MD5 s dopunjenom i dodanom izostavljenom duljinom.
Proširiti k u tri podključa K0 , K1 iK2 od po 16-byte-a prema sljedećem:
Ki ← M D5(k||Ui ||k), za i od 0 do 2.
(c) Podijeli svaki K0 i K1 u četiri 32-bitna podniza Kj [i], 0 ≤ i ≤ 3.
4. K1 [i] se dodaje mod 232 svakoj konstanti y[j] korištenoj u Rundi i MD5 algoritma.
Neka su konstante Ui i Ti definirane kao u Algoritmu 6.3. U Tablici 6.1 je navedeno ne-
koliko primjera MD5-MAC algoritma za ključ k=00112233445566778899aabbccddeeff.
28
niz znakova MD5-MAC vrijednost
"" 1f1ef2375cc0e0844f98e7e811a34da8
"abc" e8013c11f7209d1328c0caa04fd012a6
"abcdefghijklmnopqrstuvwxyz" 9172867eb60017884c6fa8cc88ebe7c9
29
Literatura
[1] A. Dujella, M. Maretić, Kriptografija, Element, Zagreb, 2007.
[3] D. R. Stinson, Cryptography Theory and Practice, CRC Press, Boca Racon, 2005.
30
Sažetak
U radu smo opisali posebnu vrstu funkcija koje imaju veliku ulogu u kriptografiji, a
to su hash-funkcije. Upoznali smo se s njihovim svojstvima te smo naveli veze između
određenih svojstava. Potom smo dali pojednostavljenu klasifikaciju hash-funkcija, a
zatim dodatna svojstva koja moraju imati određene hash-funkcije. Opisali smo ciljeve
napada na hash-funkcije, te naveli što si za cilj uzima napadač koji napada MDC,
odnosno njegove specifične klase OWHF i CRHF, a potom cilj napadača koji napada
MAC. Potom smo prikazali osnovnu konstrukciju hash-funkcija, a zatim smo pojasnili
na koji način možemo funkcije kompresije proširiti do hash-funkcija. Zatim smo se
upoznali s hash-funkcijama bez ključa, objasnili što su to blok-šifre i kakva je njihova
uloga u izgradnji hash-funkcija. Detaljnije smo opisali nekoliko algoritama koji se
baziraju na blok-šiframa te na MD4 hash-funkciji, a zatim primjerima ilustrirali kako
izgledaju hash-vrijednosti različitih hash-funkcija za isti niz znakova. Nakon toga smo
rekli nešto o hash-funkcijama s ključem. Na samom kraju rada smo rekli nešto više o
prilagođenim MAC algoritmima.
31
Title and summary
In this paper we described special type of functions which play significant role in
cryptography, and those are hash functions. We explained their properties and relations
between properties. We gave simplified classification of hash functions and what extra
properties have some of them. In work is described which are targets of attack on hash
functions, and we explained what is target of adversary on MDC, especially his specific
classes OWHF and CRHF, and then we explained target of attacking on MAC. After
that we show basic construction of hash-functions and way of extending compression
functions to hash functions. Then we talked about unkeyed hash function, we said
something about block ciphers and their usage in construction hash function. Also
we gave detailed descriptions of few algorithms which are based on block ciphers and
MD4 hash-function, and we illustrated on example with same string which hash-values
we get if we use some of those hash functions. At the end we said something about
customized MACs algorithms.
32
Životopis
Rođen sam 4. kolovoza 1989. godine u Vukovaru. Živim u Borovu. Osnovnu školu
"Borovo" u Borovu sam završio 2004. godine, a potom sam upisao Prirodoslovno-
matematički smjer u Gimnaziji "Vukovar" u Vukovaru. Za vrijeme osnovnoškolskog i
srednjoškolskog obrazovanja sam sudjelovam na općinskim i županijskim natjecanjima
iz matematike. 2008. godine sam upisao Sveučilišni nastavnički studij matematike i
informatike na Odjelu za matematiku u Osijeku.
33