slobodancvijović-gorša hash-funkcijeukriptografijimdjumic/uploads/diplomski/cvi15.pdf2...

35
Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Slobodan Cvijović-Gorša Hash-funkcije u kriptografiji Diplomski rad Osijek, 2013.

Upload: others

Post on 20-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Sveučilište J. J. Strossmayera u Osijeku

Odjel za matematiku

Slobodan Cvijović-Gorša

Hash-funkcije u kriptografiji

Diplomski rad

Osijek, 2013.

Page 2: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Sveučilište J. J. Strossmayera u Osijeku

Odjel za matematiku

Slobodan Cvijović-Gorša

Hash-funkcije u kriptografiji

Diplomski rad

Mentor: doc. dr. sc. Ivan Matić

Osijek, 2013.

Page 3: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Sadržaj

1 Uvod 3

2 Hash-funkcije 42.1. Definicija i osnovna svojstva . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.1. Veza između svojstava . . . . . . . . . . . . . . . . . . . . . . . 5

3 Klasifikacija hash-funkcija 63.1. Pojednostavljena klasifikacija hash-funkcija . . . . . . . . . . . . . . . . 63.2. Ciljevi napada i vrste krivotvorina . . . . . . . . . . . . . . . . . . . . . 8

3.2.1. Napadač protiv MDC . . . . . . . . . . . . . . . . . . . . . . . . 83.2.2. Napadač protiv MAC . . . . . . . . . . . . . . . . . . . . . . . . 83.2.3. Vrste krivotvorina . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.3. Ostala svojstva hash-funkcija i primjene . . . . . . . . . . . . . . . . . 93.3.1. Dodatna svojstva jednosmjernih hash funkcija . . . . . . . . . . 10

4 Osnovna konstrukcija hash-funkcija 114.1. Proširenje funkcija kompresije do hash-funkcija . . . . . . . . . . . . . . 12

5 Hash-funkcije bez ključa (MDC) 145.1. Blok-šifre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.2. Hash-funkcije bazirane na blok-šiframa . . . . . . . . . . . . . . . . . . 15

5.2.1. Matyas-Meyer-Oseas hash-funkcija . . . . . . . . . . . . . . . . 165.2.2. Davies-Meyer hash-funkcija . . . . . . . . . . . . . . . . . . . . 175.2.3. Miyaguchi-Preneel hash-funkcija . . . . . . . . . . . . . . . . . . 18

5.3. Prilagođene hash-funkcije bazirane na MD4 . . . . . . . . . . . . . . . 195.3.1. MD4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.3.2. MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.3.3. SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225.3.4. Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6 Hash-funkcije s ključem (MAC) 256.1. CBC-MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256.2. Konstrukcija MAC-ova od MDC-ova . . . . . . . . . . . . . . . . . . . 266.3. Prilagođeni MAC algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.3.1. Algoritam ovjere poruka (MAA) . . . . . . . . . . . . . . . . . . 266.3.2. MD5-MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Literatura 30

Sažetak 31

Page 4: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Title and summary 32

Životopis 33

Page 5: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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, povjerljivipodaci trebaju što veću sigurnost, a tu veliku ulogu igra kriptografija. Njen cilj jeučiniti podatke nerazumljivim i teškim za dešifriranje ljudima koji nemaju ovlaštenpristup. U ovome radu ćemo se upoznati sa hash-funkcijama koje igraju jednu odtemeljnih uloga u današnjoj kriptografiji. Hash-funkcije su funkcije koje za ulaznu po-ruku daju ”šifriranu” poruku uglavnom fiksne duljine poznatu pod nazivom hash. Unastavku ćemo dati definiciju hash-funkcija te ćemo govoriti o njihovim svojstvima iprimjeni.

U drugom poglavlju ćemo dati definiciju hash-funkcije i navest ćemo sva potrebnasvojstva 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 modeliterativne hash-funkcije te njen detaljan prikaz. U ovom poglavlju je još ukratko opi-sano proširenje funkcija kompresije do hash-funkcija.

Peto poglavlje je posvećeno hash-funkcijama bez ključa. Na početku poglavlja ćemoreći nešto o blok šiframa, a zatim o hash-funkcijama koje se na njima baziraju. Zatimćemo navesti nekoliko algoritama hash-funkcija baziranih na MD4 hash-funkciji, a zakraj poglavlja ćemo dati primjere tih algoritama.

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 radanekoliko prilagođenih MAC algoritama.

3

Page 6: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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 osnovnasvojstva. Hash-funkcije za ulaz uzimaju poruku koja je uglavnom fiksne duljine i zaizlaz daju ”šifriranu” poruku poznatiju kao hash-code, hash-rezultat, hash-vrijednost ilijednostavno 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 ikodomenu 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 reprezentirativeć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ćuneke druge ulazne vrijednosti.

2.1. Definicija i osnovna svojstva

Na najvišoj razini, hash-funkcije možemo podijeliti u dvije velike klase: hash funkcijebez ključa koje za ulazni parametar imaju samo poruku i hash funkcije s ključem kojeza ulaz imaju poruku i tajni ključ. O svakoj od ovih klasa ćemo više govoriti neštokasnije, a za početak ćemo dati definiciju hash-funkcije i navesti osnovna svojstva.

Definicija 2.1 Hash-funkcija (u najširem smislu) je funkcija h, koja zadovoljava idućadva svojstva:

1. kompresija - h ulazu x proizvoljne konačne duljine pridružuje izlaz h(x) fiksneduljine n.

2. jednostavnost izračuna - zadani su h i ulaz x, h(x) je lako izračunati.

Kao što vidimo iz definicije, pod hash-funkcijom podrazumijevamo hash-funkcije bezključa, ako nije drugačije navedeno. Osnovno svojstvo svih efikasnih hash-funkcija jezahtjev da za bilo koja dva izračunata različita hasha i ulazi iz kojih su oni izračunatimoraju biti različiti. Drugo svojstvo efikasnih hash-funkcija bi bilo to da za dva izra-čunata ista hasha ulazi iz kojih su izračunati ne moraju biti isti. Ako izračunamo hashvrijednost za jedan ulaz, a nakon toga ulazu promijenimo samo jedan bit, tada bi noviizračunati hash trebao biti potpuno različit od prethodnog.

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 dvarazlič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

Page 7: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Kako bi olakšali daljnje definiranje, navest ćemo neka dodatna svojstva za hash funkcijebez ključa koje imaju ulaze x, x′ i izlaze y, y′.

1. jednosmjernost - za unaprijed određene izlaze računski je neizvedivo pronaći nekiulaz koji je hashiran u taj izlaz, tj. pronaći original x′ takav da je h(x′) = y zaneki y za koji odgovarajući ulaz nije poznat.

2. jednoznačnost ili slaba otpornost na koliziju - računski je neizvedivo pronaći bilokoji drugi ulaz koji ima isti izlaz kao određeni ulaz, odnosno, za dani x pronaćidrugi original x 6= x′ takav da je h(x) = h(x′).

3. općenita jednoznačnost ili jaka otpornost na koliziju - računski je neizvedivopronaći bilo koja dva različita ulaza x i x′ koji hashirani daju isti izlaz, tj. takvida je h(x) = h(x′) (primijetimo da je izbor ulaza slobodan).

Kada kažemo ”računski neizvedivo”, mislimo na to da se zahtijeva napor daleko iznadraspoloživih resursa.

2.1.1. Veza između svojstava

Jaka otpornost na koliziju povlači slabu otpornost na koliziju

Pretpostavimo da je h jako otporna na koliziju. Neka xj predstavlja fiksni ulaz. Ako h

nije slabo otporna na koliziju, to znači da možemo pronaći dva različita ulaza xi takvihda je h(xi) = h(xj). U tom slučaju je par (xi, xj) par različitih ulaza za koje hashiranjedaje isti izlaz, a to je u suprotnosti sa svojstvom jake otpornosti na koliziju.

Jaka otpornost na koliziju ne garantira jednosmjernost

Neka je hash funkcija g jako otporna na koliziju i neka ulazima proizvoljne dužinepridružuje n-bitne izlaze. Definirat ćemo funkciju h na sljedeći način (znak || nampredstavlja ulančavanje):

h(x) =

{1 ||x, ako je x duljine bita n0 || 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 duljineje i jako i slabo otporna na koliziju (originali su jedinstveni), ali nije jednosmjerna.

5

Page 8: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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 hashfunkcije 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:

1. modificirano otkrivanje kodova (MDC)MDC je podklasa hash-funkcija bez ključa što znači da za ulaz koriste samo jedanparametar - ulaznu poruku. Svrha modificirane detekcije kodova je izračunavanjehash-vrijednosti kojom se osigurava integritet podataka koji zahtijeva određenaaplikacija. Kako je MDC podklasa hash-funkcija bez ključa, samim tim se možedodatno klasificirati. Specifične klase MDC-a koje ćemo navesti su:

i) jednosmjerna hash funkcija (OWHF) - za njih je karakteristično to da jeteško pronaći ulaz koji će hashiran dati unaprijed određenu hash-vrijednost

ii) hash-funkcije s jakom otpornosti na koliziju (CRHF) - za njih je karakte-ristično to da je teško pronaći bilo koja dva ulaza koji imaju iste hash-vrijednosti.

2. Kodovi autentičnosti poruke (MAC)MAC je podklasa hash-funkcija s ključem što znači da će za ulaz koristiti dvaparametra - ulaznu poruku i tajni ključ. Svrha kodova autentičnosti poruke jeolakšanje sigurnosti, bez korištenja nekih dodatnih mehanizama, imajući u vidui izvornu poruku i njen integritet.

Smatra se da je algoritamska specifikacija hash funkcije javno poznata. U slučaju MDC-a, za danu ulaznu poruku, bilo tko može izračunati hash-vrijednost, a u slučaju MAC-a,za danu ulaznu poruku svatko tko zna tajni ključ može izračunati hash-vrijednost.MDC bi trebao imati svojstvo jednoznačnosti, inače bi napadač B mogao promatratidigitalni potpis neke stranke A na h(x), a zatim pronaći x′ takav da je h(x) = h(x′) ipotvrditi da je A potpisao x′. Ako je napadač B u mogućnosti odabrati poruku kojustranka A potpisuje, tada B treba samo pronaći kolizijski par (x, x′), što je lakše negopronaći drugi original od x, pa je općenita jednoznačnost također potrebna. Kako smonaveli potrebna svojstva MDC hash-funkcija, sada možemo dati i njihove definicije.

Definicija 3.1 Jednosmjerna hash funkcija (OWHF) je hash-funkcija h kao u Defini-ciji 2.1 sa sljedećim dodatnim svojstvima, koja smo definirali ranije: jednosmjernost ijednoznačnost.

6

Page 9: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Slika 3.1: Pojednostavljena klasifikacija hash-funkcija

Definicija 3.2 Hash-funkcija s jakom otpornosti na koliziju (CRHF) je hash-funkcijah kao u Definiciji 2.1 sa sljedećim dodatnim svojstvima, koja smo definirali ranije:jednoznačnost i općenita jednoznačnost.

Iako se ne navodi u definiciji, u praksi CRHF gotovo uvijek ima svojstvo jednosmjer-nosti.

Definicija 3.3 MAC algoritam je familija funkcija hk parametrizirana tajnim ključemk sa sljedećim svojstvima:

1. jednostavnost izračuna - za poznatu funkciju hk kojoj je dana vrijednost k i ulazx, hk je lagano izračunati. Taj rezultat se naziva MAC-vrijednost ili jednostavnoMAC.

2. kompresija - hk pridružuje ulazu x proizvoljne konačne duljine izlaz kk(x) fiksneduljine n.

3. računska otpornost - daje 0 ili više tekst-MAC parova (xi, hk(xi)), računski jeneizvedivo izračunati bilo koji tekst-MAC par (x, hk(x)) za bilo koji novi ulazx 6= xi (uključujući i vjerojatnost da je hk(x) = hk(xi) za neki i).

7

Page 10: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Računska otpornost se treba zadržati, inače MAC algoritam može postati predmetMAC krivotvorine. Računska otpornost implicira svojstvo neotkrivanja ključa (morabiti računski neizvedivo otkriti k), ali neotkrivanje ključa nam ne implicira računskuotpornost zbog toga što ne trebamo uvijek otkriti ključ za krivotvorinu novog MAC-a.

3.2. Ciljevi napada i vrste krivotvorina

U ovisnosti o tome koju hash-funkciju napadač napada, imat će i različite ciljeve na-pada. U nastavku ćemo navesti što si za cilj postavlja napadač koji napada MDC, akoje ciljeve napadač koji napada MAC te kakve sve vrste krivotvorina postoje.

3.2.1. Napadač protiv MDC

Napadač koji želi napasti MDC za cilj ima sljedeće:

i) napasti OWHF - ako za hash-vrijednost y želi pronaći original x takav da jey = h(x) ili ako za jedan par (x, h(x)) želi pronaći drugi original x′ takav da jeh(x′) = h(x).

ii) napasti CRHF - želi pronaći bilo koja dva ulaza x, x′ takva da je h(x′) = h(x).

3.2.2. Napadač protiv MAC

Napadač koji želi napasti MAC algoritam za cilj ima sljedeće:

napasti MAC - bez ikakvog znanja o ključu k želi izračunati novi tekst-MAC para(x, hk(x)) za neki tekst x 6= xi na način da otkrije jedan ili više parova (xi, kk(xi)).

3.2.3. Vrste krivotvorina

Ako je MAC krivotvorina moguća, treba razmotriti ozbiljnost praktičnih posljedica.Posljedice se mogu razlikovati ovisno o stupnju kontrole protivnika preko vrijednosti xza koje MAC može biti krivotvoren. Taj stupanj se razlikuje po sljedećoj klasifikacijikrivotvorina:

1. selektivna krivotvorina - napadi u kojima je protivnik u stanju proizvesti novitekst-MAC par za tekst po vlastitom izboru ili za tekst koji je dijelom pod nje-govom kontrolom.

2. egzistencijalna krivotvorina - napadi u kojima je protivnik u stanju proizvestinovi tekst-MAC par, ali bez kontrole nad vrijednostima tog teksta.

Jedan od najštetnijih napada bilo bi otkrivanje ključa od samog MAC ključa te tajnapad omogućuje selektivnu krivotvorinu. MAC krivotvorina dopušta protivniku dakrivotvoreni 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 integritetili autentičnost provjerava je često ograničena na unaprijed određene strukture ili vi-soke stupnjeve podudararanja.

8

Page 11: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Analogno napadima na MAC, napadi na MDC sheme, prvenstveno jednoznačnost ikolizijski napad, se mogu razvrstati kao selektivni napad - ako se poruka može dijelomkontrolirati, ili kao egzistencijalni napad.

3.3. Ostala svojstva hash-funkcija i primjene

Većina hash-funkcija bez ključa u praksi je obično originalno dizajnirana u svrhu pru-žanja integriteta podataka, uključujući i potvrdu identiteta pomoću digitalnog potpisa.Većina tih funkcija su ustvari MDC-ovi dizajnirana da ima svojstvo jednosmjernosti,slabe otpornosti na koliziju ili jake otpornosti na koliziju. Zbog toga što su jedno-smjerne funkcije fundamentalno kriptografski primitivne, mnogi od tih MDC-ova supreporučene za korištenje u različitim primjenama kao što su potvrda znanja određe-nih podataka, izvođenje ključa i generiranje pseudoslučajnih brojeva.Hash-funkcije koje se koriste za potvrđivanje znanja određenih podataka olakšavajupredaju vrijednosti podataka ili demonstriraju posjedovanje podataka bez otkrivanjatakvih podataka o samom sebi, a ovjera je moguća od strane koja posjeduje podatke.Ovo nalikuje korištenju MAC-ova, gdje se u suštini pokazuje poznavanje tajne. Svoj-stvo koje hash-funkcija zahtijeva je jednosmjernost. Specifični primjeri su korišteni uprovjerama lozinkom koristeći nesigurne datoteke, digitalni potpisi simetričnim klju-čem i potvrda ključem u uspostavi protokola ovjerenim ključem.Općenito, korištenje hash-funkcija u druge svrhe, osim za one za koje su originalno di-zajnirane, zahtijeva oprez, jer takve primjene mogu zahtijevati dodatna svojstva kojaove funkcije nisu dizajnirane za pružiti. Hash-funkcije bez ključa imaju širok spektarprimjene, uključujući one koje smo naveli ranije:

- izvođenje ključeva - za izračun niza novih ključeva iz prijašnjih ključeva.

- generiranje pseudoslučajnih brojeva - za generiranje nizova brojeva koji imajurazna svojstva slučajnosti

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 nijepreporučljivo za bilo kakve primjene bez oprezne analize.

Hash funkcije se često koriste u primjenama gde se zahtijeva svojstvo jednosmjernosti,ali ne i kompresije. Na osnovu toga je moguće razlikovati tri klase funkcija:

1. (općenite) hash-funkcije - funkcije kao u Definiciji 2.1, obično s dodanim svoj-stvom jednosmjernosti, koje sažima ulaz proizvoljne duljine u n-bitni izlaz.

2. funkcije kompresije (hash-funkcije fiksne veličine) - funkcije kao u Definiciji 2.1,obično s dodanim svojstvom jednosmjernosti, ali je domena ograničena na ulazefiksne veličine, tj. sažimanje m-bitnog ulaza u n-bitni izlaz, gdje je m > n.

9

Page 12: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

3. nekompresijske jednosmjerne funkcije - to su hash-funkcije fiksne veličine, osimšto je kod njih m = n.

3.3.1. Dodatna svojstva jednosmjernih hash funkcija

Od jednosmjernih hash-funkcija se zahtijeva da imaju svojstva jednosmjernosti i slabeotpornosti na koliziju. Hash funkcije otporne na koliziju (CRHF) moraju zadovoljavatisvojstvo jake i slabe otpornosti na koliziju. Hash-funkcije otporne na koliziju običnoimaju i svojstvo jednosmjernosti, ali ono nije zahtijevano. U literaturi se često OWHFnazivaju slabim jednosmjernim hash-funkcijama, a CRHF se nazivaju jakim jednos-mjernim hash-funkcijama.Dodatna svojstva jednosmjernih hash-funkcija potrebna za različite primjene su:

1. međusobna nepovezanost - ulazni i izlazni podaci ne bi trebali biti u korelaciji.2. otpornost na blisku koliziju - mora biti teško pronaći bilo koja dva ulaza x i x′

takva da se h(x) i h(x′) razlikuju u malom broju bitova.3. djelomična jednosmjernost (lokalna jednosmjernost) - mora biti teško pronaći bilo

koji podniz za otkrivanje cijelog ulaza. Štoviše, čak i ako je poznat dio ulaza,trebalo bi biti teško pronaći ostatak.

Hash-funkcije ne bi trebale biti slabije u odnosu na neke dijelove svog ulaza ili izlazaod drugih funkcija, a svi nizovi bi trebali biti jednako teški. Neka od ovih svojstava semogu nazvati certifikacijska svojstva - svojstva koja se intuitivno poželjno jave, premdase ne može pokazati izravna neophodnost.

10

Page 13: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

4 Osnovna konstrukcija hash-funkcija

Većina hash-funkcija bez ključa h su dizajnirane kao iterativni procesi koji hashirajuulaze proizvoljne duljine obrađujući uzastopne ulazne blokove fiksne veličine.

Slika 4.1: Opći model iterativne hash-funkcije

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 dodatnihblokova za postizanje cjelokupne duljine bita, a što je više od duljine blokova r i čestouključ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, funkcijikompresije 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. NekaHi označava djelomičan rezultat poslije faze i, opći proces za iterativnu hash-funkcijus ulazom x = x1x2 . . . xt može biti modeliran na sljedeći način:

H0 = IV ; Hi = f(Hi−1, xi), 1 ≤ i ≤ t; h(x) = g(Ht).

Hi−1 predstavlja n-bitno ulančavanje između faze i−1 i faze i, a H0 je ranije definiranapočetna vrijednost ili inicijalna vrijednost (IV). Opcionalan izlaz tranformacije g, Slika4.2, koristi se u konačnom koraku za pridruživanje n-bitnih ulančanih varijabli m-bitnom rezultatu g(Ht). g je često identiteta, g(Ht) = Ht.Specifične hash funkcije su karakteristične po naravi predobrade, funkciji kompresije itransformaciji izlaza.

11

Page 14: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Slika 4.2: Detaljan prikaz općeg modela iterativne hash-funkcije

4.1. Proširenje funkcija kompresije do hash-funkcija

Svaka funkcija kompresije f koja ima svojstvo jake otpornosti na koliziju može seproširiti do hash-funkcije h jako otporne na koliziju (uzimajući ulaz proizvoljne duljine).To nam daje važan odnos između funkcija kompresije sa svojstvom jake otpornosti nakoliziju i hash-funkcija sa svojstvom jake otpornosti na koliziju. To proširenje se možeučinkovito učiniti koristeći Merkleov meta-način prikazan u Algoritmu 4.1.

Algoritam 4.1 Merkleov meta-način hashiranja

ULAZ: funkcija kompresije f koja ima svojstvo jake otpornosti na kolizijuIZLAZ: hash-funkcija h bez ključa koja ima svojstvo jake otpornosti na koliziju

1. Pretpostavimo da f pridružuje (n+ r)-bitne ulaze n-bitnim izlazima (konkretno,razmatramo n = 128 i r = 512). Konstrukcija hash-funkcije h od f , daje n-bitnehash-vrijednosti kako slijedi.

2. Razdvojiti ulaz x duljine niza b u blokove x1x2 . . . xt, svaki duljine r, dopunitiposljednji blok xt s bitovima jednakim 0, ako je potrebno.

12

Page 15: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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).

4. Ako uzmemo da 0j predstavlja niz koji se sastoji od j bitova jednakih 0, definiramon-bitnu hash-vrijednost od x da vrijedi h(x) = Ht+1 = f(Ht||xt+1) izračunatu iz

H0 = 0n; Hi = f(Hi−1||xi), 1 ≤ i ≤ t+ 1.

Dokaz da je rezultirana funkcija h jako otporna na koliziju, slijedi iz jednostavnihargumenata da kolizija za h može implicirati koliziju za f za iste faze i. Uključivanjeduljinskog bloka, koji efektivno šifrira sve poruke tako da nijedan šifrirani ulaz nije krajnijednog drugog šifriranog ulaza, je neophodno za ovo razmatranje. Dodavanje takvogduljinskog bloka se naziva MD-jačanje.

Algoritam 4.2 MD-jačanje

Prije hashiranja poruke x = x1, x2 . . . xt (gdje je xi blok duljine bita r prikladan zaodgovarajuću funkciju kompresije) duljine bita b, dodavajući završni duljinski blok,xt+1, sadrži dopunjeni (s bitovima jednakim 0) binarni prikaz od b. (To podrazumijevab < 2r.)

13

Page 16: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

5 Hash-funkcije bez ključa (MDC)

Sada kada smo naveli opća svojstva i konstrukcije hash-funkcija, možemo promatratipodklasu 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štapostoje tri najšire kategorije iterativnih hash-funkcija koje su do danas proučavane, ato su hash-funkcije bazirane na blok šiframa, prilagođene hash-funkcije i hash-funkcijebazirane na modularnoj aritmetici. Prilagođene hash-funkcije su dizajnirane specijalnoza hashiranje, uzimajući u obzir brzinu i neovisnost o drugim komponentama, dok sublok-šifre i modularno množenje potkomponente koje mogu biti korištene i u drugesvrhe koje ne obuhvaćaju hashiranje.

5.1. Blok-šifre

Blok-šifra je funkcija koja tekstu podijeljenom u n-bitne blokove pridružuje n-bitneblokove šifriranog teksta, n se naziva duljinski blok. Kod ovakvog šifriranja ulaz možebiti 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 tajniključ, na izlazu dati originalni 128-bitni tekstualni blok.

Slika 5.1: Shema blok-šifriranja Slika 5.2: Shema blok-dešifriranja

Blok-šifra je bazirana na dva algoritma, jedan je za šifriranje - E i drugi za dešifriranje- E−1. Princip rada algoritama je sličan, za ulaz uzimaju blok podatke od n-bita i ključod k-bita, a na izlazu daju blok od n-bita. Ako algoritmi koriste isti ključ, dešifriranjeće biti inverzna funkcija šifriranja te će za svaki ulazni blok X i ključ K vrijediti:

E−1k (Ek(X)) = X

14

Page 17: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Za svaki ključ, funkcija Ek je permutacija (bijektivno preslikavanje). Svaki ključ služiza 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ćalana 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 primjenazbog premale duljine ključa koja je iznosila 56 bita, a poznati su slučajevi kada jeključ otkriven od strane napadača u manje od 24 sata. Kasnije su se razvile raznenadogradnje ove blok-šifre koji su davali veću sigurnost, ali seDES blok-šifra početkom21. stoljeća prestala koristiti jer je dobila svog nasljednika AES (Advanced Encryptionstandard) blok-šifru.

5.2. Hash-funkcije bazirane na blok-šiframa

Konstrukcija hash-funkcija baziranih na blok-šiframa temelji se na tome da, ukolikoje učinkovita implementacija blok šifre već dostupna u sustavu (bilo u softveru ili uhardveru), tada će njeno korištenje kao centralne komponente hash-funkcije donijetifunkcionalnost uz malo dodatnih troškova. Blok-šifra može biti dobar ”materijal” zaizgradnju hash-funkcije koja može biti korištena u različitim primjenama. Konstrukcijehash-funkcija koje su dane su dokazivo sigurne (teško je i računski neizvedivo pronaćiulaz, drugi ulaz ili kolizije iako je napadaču na raspolaganju ogromna računarska moć ivrijeme), ali uz pretpostavku da korištene blok šifre imaju idealna svojstva. Međutim,blok-šifre nemaju ta svojstva (npr. one su inverzne), a u praksi pokazuju dodatneslabosti. Iako je mnoštvo neophodnih uvjeta poznato, još nije potpuno jasno koje svezahtijeve mora ispunjavati blok-šifra kako bi bilo moguće konstruirati sigurnu hash-funkciju, a svojstva koja inače odgovaraju blok-šiframa možda neće garantirati dobruhash-funkciju.Za konstrukciju koju ćemo kasnije navesti, koristiti ćemo Definiciju 5.1.

Definicija 5.1 (n, r) blok-šifra je blok-šifra definirana kao inverzna funkcija od n-bitnog izvornog teksta do n-bitnog šifriranog teksta korištenjem r-bitnog ključa. Akoje E takva šifra, onda Ek(x) predstavlja šifriranje od x pod ključem k.

Hash-funkcije izgrađene od n-bitnih blok-šifri možemo podijeliti na one s n-bitnim i2n-bitnim hash-vrijednostima, tj. hash-vrijednostima jednostruke i dvostruke duljine,gdje se n i 2n odnose na veličnu izlaza blok-šifri. Ako pretpostavimo da su računanjaod 264 operacija neisplativa, cilj jednostruke duljine jeste omogućiti OWHF za šifre čijaje duljina bloka blizu n = 64, ili osigurati CRHF za šifre duljine bloka n = 128. Mnogon-bitnih blok-šifri postoji u veličini od otprilike n = 64, a jednostruki hash-kodovi oveveličine nemaju svojstvo jake otpornosti na koliziju. Za takve šifre cilj je dobiti hash-kodove duljine bita 2n koji su CRHF-ovi.

15

Page 18: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

U najjednostavnijem slučaju, veličina ključa korištenog u takvim hash-funkcijama jepribližno jednaka duljini bloka šifre (npr. n-bitova). U drugim slučajevima hash-funkcije koriste dulje ključeve. Jedna karakteristika takvih hash-funkcija koju trebanaglasiti je broj operacija u blok-šiframa potrebnih za proizvodnju hash izlaza duljinebloka jednakom onom u šifri iz čega proizlazi i sljedeća definicija.

Definicija 5.2 Neka je h iterativna hash-funkcija izgrađena od blok-šifri, s funkcijomkompresije f koja za dobivanje svakog sljedećeg n-bitnog bloka poruke obavlja s procesablok šifriranja. Tada kažemo da je stopa od h jednaka 1/s.

Hash-funkcije bazirane na blok-šiframa prikazane su u sljedećoj tablici:

Hash-funkcije (n, k,m) StopaMatyas-Meyer-Oseas (n, k, n) 1

Davies-Meyer (n, k, n) k/nMiyaguchi-Preneel (n, k, n) 1MDC-2(s DES) (64, 56, 128) 1/2MDC-4(s DES) (64, 56, 128) 1/4

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.

5.2.1. Matyas-Meyer-Oseas hash-funkcija

U ovoj hash-funkciji baziranoj na blok-šiframa, svaki blok ulaznog podatka xi se šifrirablok metodom, a kao ključ se koristi rezultat prethodne funkcije kompresije Hi−1. Izlazblok-šifre se obrađuje XOR funkcijom, a izlaz te funkcije ujedno predstavlja i krajnjirezultat funkcije kompresije Hi.

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 kaoključ za šifriranje. Zbog toga se često uključuje i dodatna funkcija g koja će konvertiratiizlaz funkcije kompresije u format pogodan za sljedeći stupanj.

Algoritam 5.1 Matyas-Meyer-Oseas hashiranje

ULAZ: niz x.IZLAZ: n-bitni hash-kod od x.

1. Ulaz x podijeliti na n-bitne blokove i dopuniti posljednji blok ukoliko je potrebno.Obilježiti popunjenu poruku koja se sastoji od t n-bitnih blokova x1x2 . . . xt.Konstantna n-bitna početna vrijednost IV se mora ranije postaviti.

2. Izlaz Ht je definiran s: H0 = IV ;Hi = Eg(Hi−1)(xi)⊕ xi, 1 ≤ i ≤ t.

16

Page 19: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Slika 5.3: Shema Matyas-Meyer-Oseas hash-funkcije

5.2.2. Davies-Meyer hash-funkcija

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 na128-bitne segmente, a izlaz funkcije kompresije će također biti 128 bita.

Slika 5.4: Shema Davies-Meyer hash-funkcije

17

Page 20: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Algoritam 5.2 Davies-Meyer hashiranje

ULAZ: niz x.IZLAZ: n-bitni hash-kod od x.

1. Ulaz x podijeliti u k-bitne blokove, gdje je k veličina ključa. Dopuniti posljednjiblok ako je potrebno. Obilježiti dopunjenu poruku koja se sastoji od k-bitnihblokova x1x2 . . . xt. Konstantna n-bitna početna vrijednost IV se mora ranijepostaviti.

2. Izlaz Ht je definiran s: H0 = IV ;Hi = Exi(Hi−1)⊕Hi−1, 1 ≤ i ≤ t.

5.2.3. Miyaguchi-Preneel hash-funkcija

Ova hash-funkcija je nadogradnja Matyas-Meyer-Oseas funkcije, a razlikuje se u tomešto se kao ulaz u XOR funkciju, a na izlazu iz funkcije kompresije, koristi nešifriraniblok ulaznog podatka xi, izlaz blok-šifre i rezultat prethodne funkcije kompresije Hi−1.

Slika 5.5: Shema Miyaguchi-Preneel hash-funkcije

Algoritam 5.3 Miyaguchi-Preneel hashiranje

Ovaj algoritam je identičan algoritmu Matyas-Meyer-Oseas, osim što je izlaz Hi−1

prethodne funkcije kompresije također obrađen XOR funkcijom. Preciznije, Hi jedefiniran s: H0 = IV,Hi = Eg(Hi−1)(xi)⊕ xi ⊕Hi−1, 1 ≤ i ≤ t.

18

Page 21: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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 dizajniranza softversku implementaciju na 32-bitnim strojevima. Briga za sigurnost motivirala jedizajniranje MD5 hash funkcije nedugo nakon dizajniranja MD4 funkcije, kao konzer-vativnu verziju MD4. Od ostalih bitnih varijacija ove hash-funkcije još ćemo spomenutiSigurni Hash Algoritam (SHA-1).

5.3.1. MD4

MD4 je 128-bitna hash-funkcija. Ciljevi originalnog MD4 dizajna su bili ti da je njegovo"slamanje" zahtijevalo brute-force trud - pronalaženje poruka sa istom hash-vrijednostizahtijeva oko 264 operacija, a pronalazak poruke koja daje unaprijed određenu hash-vrijednost zahtijeva 2128 operacija. Danas je poznato da MD4 ne ispunjava te ciljevezbog toga što su pronađene kolizije u 220 računanja funkcije kompresije. Iz tog razlogaMD4 nije preporučljiv za korištenje kao hash-funkcija s jakom otpornošću na koliziju.Bez obzira na to, dati ćemo opis MD4 algoritma zbog njegove povijesne i kriptoana-litičke važnosti. Također, on služi i za opisivanje i usporedbu drugih hash-funkcija uovoj familiji.U sljedećoj tablici prikazana je notacija koja se koristi za MD4 familiju algoritama.

Notacija Značenjeu, v, w varijable reprezentirane 32-bitnim vrijednostima

0x67452301 hexadecimalni 32-bitni cijeli broj (najmanje značajan byte: 01)+ zbrajanje modulo 232

u bitovni komplementu←↩ s rezultat rotacije u lijevo za s pozicijauv bitovno AND

u ∨ v bitovno ORu⊕ v bitovno XOR

f(u, v, w) uv ∨ uwg(u, v, w) uv ∨ uw ∨ vwh(u, v, w) u⊕ v ⊕ w

Tablica 5.2: Notacija za MD4 familiju algoritama

Algoritam 5.4 MD4 Hash-funkcija

ULAZ: niz x proizvoljne duljine b ≥ 0.IZLAZ: 128-bitni hash-kod od x.

19

Page 22: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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 od0 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].

2. Predobrada - dopuniti x tako da je njegova duljina višekratnik od 512. Dodatijedan 1-bit, zatim dodati r−1 (≥ 0) 0−bita za najmanji r takav da rezultirajućaduljina bude za 64 manja od višekratnika od 512 . Na kraju dodati 64-bitnireprezentant od b mod 264, kao dvije 32-bitne riječi s najmanjom značajnostiprve riječi. Neka je m broj 512-bitnih blokova u rezultirajućem stringu (b +

r + 64 = 512m = 32 · 16m). Formatirani ulaz se sastoji od 16m 32-bitne riječix0x1 . . . x16m−1. Inicijalizirati: (H1, H2, H3, H4)← (h1, h2, h3, h4).

3. Obrada - za svaki i od 0 do m − 1 kopirati i-ti blok od 16 32-bitnih riječi uprivremeni spremnik: X[j] ← x16i+j, 0 ≤ j ≤ 15, zatih ih obraditi kao tri rundeod po 16 koraka prije dodavanja novih ulančanih varijabli:(Runda 1 ) Za svaki j od 0 do 15 radi sljedeće:t← (A+ f(B,C,D) +X[z[j]] + y[j]), (A,B,C,D)← (D, t←↩ s[j], B, C)

(Runda 2 ) Za svaki j od 16 do 31 radi sljedeće:t← (A+ g(B,C,D) +X[z[j]] + y[j]), (A,B,C,D)← (D, t←↩ s[j], B, C)

(Runda 3 ) Za svaki j od 32 do 47 radi sljedeće:t← (A+ h(B,C,D) +X[z[j]] + y[j]), (A,B,C,D)← (D, t←↩ s[j], B, C)

(nadogradnja ulančanih vrijednosti)(H1, H2, H3, H4) ← (H1 + A,H2 + B,H3 +

c,H4 +D).

4. Završetak - konačna hash-vrijednost je spajanje (konkatenacija): H1||H2||H3||H4

(s prvim i zadnjim byte-om kao byte-ovima niskog i visokog reda od H1 i H4,redom).

20

Page 23: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

5.3.2. MD5

MD5 je dizajniran kao pojačana verzija MD4 i to prije nego što su pronađene kolizije uMD4. MD5 je vrlo popularan kriptografski algoritam i ima široku primjenu. Poznatoje da MD5 ima slabosti. Iako nisu pronađene kolizije za MD5, pronađene su kolizije zaMD5 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

2. zamjena funkcije u Rundi 2 novom funkcijom

3. modifikacija reda pristupa za riječi u Rundama 2 i 3

4. modifikacija iznosa pomaka (kao da se pomak razlikuje u različitim rundama)

5. korištenje jedinstvenih dodanih konstanti u svakom od 4 · 16 koraka baziranih nacijelobrojnom dijelu od 232 · sin(j) u koraku j

6. dodavanje izlaza iz prethodnog koraka u svaki od 64 koraka.

Algoritam 5.5 MD5 hash-funkcija

ULAZ: niz x proizvoljne duljine b ≥ 0.IZLAZ: 128-bitni hash-kod od x.

1. Obilježavanje - zamijeniti funkciju Runde 2 sljedećim: g(u, v, w) def= uw ∨ uw

Definirati funkciju Runde 4: k(u, v, w) def= v ⊕ (u ∨ w).

2. Definiranje konstanti - redefiniraj jedinstvene konstante:y[j]= prva 32 bita binarne vrijednosti abs(sin(j + 1)), 0 ≤ j ≤ 63, gdje je j uradijanima, a "abs" predstavlja apsolutnu vrijednost. Redefiniraj red pristupariječima u Rundi 2 i 3 te definiraj za Rundu 4:z[16 . . . 31] = [1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12],z[32 . . . 47] = [5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2],z[48 . . . 63] = [0, 7, 14, 5, 13, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9].Redefiniraj broj pozicija bitova za lijevi pomak (rotaciju):s[0 . . . 15] = [7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22],s[16 . . . 31] = [5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20],s[32 . . . 47] = [4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23],s[48 . . . 63] = [6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21].

3. Predobrada - ista kao u MD4.

4. Obrada - u svakoj od Rundi 1,2 i 3, zamjeni B ← (t←↩ s[j]) s B ← B+(t←↩ s[j]).Također, odmah nakon Runde 3 dodaj:t← (A+ k(B,C,D) +X[z[j]] + y[j]), (A,B,C,D)← (D,B + (t←↩ s[j]), B, C).

21

Page 24: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

5. Završetak - isti kao u MD4.

MD5 se često koristi za provjeru integriteta datoteka pomoću hash-vrijednosti dato-teke. Kada se primi datoteka, izračunava se njena MD5 hash-vrijednost i uspoređujese s hash-vrijednosti koja je dobivena uz datoteku. Ako su identični, datoteka je ne-promijenjena.MD5 se često primjenjuje i za šifriranje kod pohrane zaporki, ali postoji velik brojMD5 baza podataka kojima se tako zaštićene zaporke mogu dešifrirati. Kao zaštitaod tih napada, prije šifriranja zaporke se u tekst zaporke može dodati poznati slučajniniz bitova što će znatno otežati napad. U takvim šifriranjima MD5 hash-funkcijompreporučljivo je šifriranje provesti u više iteracija kako bi se povećala razina sigurnosti.

5.3.3. SHA-1

SHA-1 je drugi iz niza SHA algoritama, a također je baziran na MD4. Razvijen je zaodređene svrhe američke vlade. Glavne razlike između SHA-1 i MD4 su sljedeće:

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 hi to: f u prvoj, g u trećoj, a h u drugoj i četvrtoj rundi. Svaka runda ima 20

koraka umjesto 16.

3. Unutar funkcije kompresije, svaka 16-bitna blok poruka je proširena na 80-bitniblok, procesom u kojem svaka od zadnjih 64 riječi od 80 riječi je XOR od 4 riječiiz ranije pozicije u proširenim blokovima. Tih 80 riječi su tada ulaz jedna-riječ-jedan-korak u 80 koraka.

4. Ključni korak je modificiran na sljedeći način: jedina korištena rotacija je kons-tantna 5-bitna rotacija. Peta radna varijabla je dodana u svaki korak rezultata;poruci iz proširene blok poruke se pristupa sekvencijalno; a C je nadogradnja odB rotirana lijevo 30 bita, radije nego samo B.

5. SHA-1 koristi četiri dodane konstante različite od 0, dok je MD4 koristio tri, odkojih su samo dvije bile različite od 0.

Algoritam 5.6 SHA-1

ULAZ:niz x duljine b ≥ 0.IZLAZ: 160-bitni hash-kod od x.

1. Obilježavanje - isto kao u MD4.

22

Page 25: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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č x0x1 . . . x16m−1. Inicijalizacijaulančanih varijabli: (H1, H2, H3, H4, H5)← (h1, h2, h3, h4, h5).

4. Obrada - za svaki i od 0 do m kopiraj i-ti blok od šesnaest 32-bitnih riječi uprivremeni spremnik X[j]← x16i+j, 0 ≤ j ≤ 15 i obraditi ih u četiri runde od 20

koraka prije ažuriranja ulančanih varijabli:(proširivanje 16-bitnih blokova u 80-bitne blokove, neka Xj označava X[j])za svaki j od 16 do 79, Xj ← ((Xj−3 ⊕Xj−8 ⊕Xj−14 ⊕Xj−16)←↩ 1).(inicijalizacija radnih varijabli)(A,B,C,D,E)← (H1, H2, H3, H4, H5).(Runda 1) Za j od 0 do 19 radi sljedeće:t← ((A←↩ 5) + f(B,C,D) + E +Xj + y1),(A,B,C,D,E)← (t, A,B ←↩ 30, C,D).(Runda 2) Za j od 20 do 39 radi sljedeće:t← ((A←↩ 5) + h(B,C,D) + E +Xj + y2),(A,B,C,D,E)← (t, A,B ←↩ 30, C,D).(Runda 3) Za j od 40 do 59 radi sljedeće:t← ((A←↩ 5) + g(B,C,D) + E +Xj + y3),(A,B,C,D,E)← (t, A,B ←↩ 30, C,D).(Runda 4) Za j od 60 do 79 radi sljedeće:t← ((A←↩ 5) + h(B,C,D) + E +Xj + y4),(A,B,C,D,E)← (t, A,B ←↩ 30, C,D).(nadogradnja ulančanih varijabli) (H1, H2, H3, H4, H5)← (H1 +A,H2 +B,H3 +

C,H4 +D,H5 + E).

5. Završetak - Hash-vrijednost je :H1||H2||H3||H4||H5.(s prvim i zadnjim byte-om kao byte-ovima visokog i niskog reda od H1 i H5,redom).

Ako uporedimo 128-bitne hash-funkcije, 160-bitne hash-vrijednosti SHA-1 algoritmadaju veću sigurnost protiv brute-force napada. Iako je SHA-1 algoritam također do-kazano probijen, za ostvarenje njegovog proboja su korištene kompleksne analitičkefunkcije te nije za vjerovati da su takve funkcije dostupne internet korisnicima. Unatočtoj sigurnosti, upitna je upotreba SHA-1 algoritma u budućim primjenama. Postojinekoliko varijanti poboljšanog SHA-1 algoritma, koji nisu u široj upotrebi, ali premadosadašnjim ispitivanjima ne postoje dokazani proboji tih algoritama.

23

Page 26: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

5.3.4. Primjeri

U sljedećoj tablici dani su primjeri hash-vrijednosti za navedene hash-funkcije bezključa:

Hash-funkcija Niz znakova Hash-vrijednost

MD4

"a" bde52cb31de33e46245e05fbdbd6fb24"Moj primjer A" 4acecefa86bd158a11d9b98ca1ca8b5e"Moj primjer B" 032e607fef5327939da9cdd0bf74d6df

" " 31d6cfe0d16ae931b73c59d7e0c089c0

MD5

"a" 0cc175b9c0f1b6a831c399e269772661"Moj primjer A" a9b02d6047b3aab84da65e613640d26e"Moj primjer B" 630c40bbbbc895cf4b74b1278fe30b6b

" " d41d8cd98f00b204e9800998ecf8427e

SHA-1

"a" 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"Moj primjer A" f112d38f65e8dcf865e9118737e836ba8400279e"Moj primjer B" 7628e9d91b2f888ca08de4fa463e2c07c7c8bb04

" " da39a3ee5e6b4b0d3255bfef95601890afd80709

Tablica 5.3: Primjeri hash-vrijednosti za različite hash-funkcije

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-vrijednostza određene nizove znakova, a sve to zahvaljujući "efektu lavine" zbog kojeg malepromjene na ulazu imaju značajne i nepredvidive promjene na izlazu.

24

Page 27: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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 MACalgoritma 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 takoprovjeriti 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 zaneku poruku korištenjem ključa, inače se algoritam smatra nesigurnim. Mnogi MACalgoritmi su bazirani na blok-šiframa. MAC algoritmi sa relativno malim duljinama ilikratkim 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čnodio izlazne transformacije g; može biti i ulaz za funkciju kompresije u prvoj iteraciji ilimož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č.

Algoritam 6.1 CBC-MAC

ULAZ: poruka x, specifikacija blok-šifre E i tajni MAC ključ k za E.IZLAZ: n-bitni MAC za x.

1. Dopunjavanje i podjela na blokove - dopuni x ako je potrebno, a zatim podijeli xu n-bitne blokove označene s x1, . . . , xt.

2. CBC obrada - Neka Ek označava šifriranje koristeći blok-šifru E s ključem k.Izračunaj blokHt prema sljedećem: H1 ← Ek(x1); Hi ← Ek(Hi−1⊕xi), 2 ≤ i ≤ t.(Ovo predstavlja standardno blok-šifriranje zasnovano na ulančavanju.)

3. Opcionalna obrada za povećanje snage MAC-a - koristeći drugi tajni ključ k′ 6= k,opcionalno izračunaj: H ′t ← E−1k′ (Ht), Ht ← Ek(H

′t).

4. Završetak - MAC je n-bitni blok Ht.

25

Page 28: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Slika 6.1: Shema CBC-MAC algoritma

6.2. Konstrukcija MAC-ova od MDC-ova

Često se MAC algoritmi konstruiraju od MDC algoritama i to tako da se tajni ključ kdodaje kao dio MDC ulaza. Problem oko ovog pristupa su još uvijek nepotvrđene pret-postavke oko svojstava koja imaju MDC-ovi. Dok je većina MDC-ova dizajnirana daosigura jednosmjernost ili jaku otpornost na koliziju, zahtjevi MAC algoritama se raz-likuju (vidjeti Definiciju 3.3). Čak i da jednosmjerna hash-funkcija spriječi otkrivanjetajnog ključa kao dijela ulazne poruke, to neće značiti nemogućnost stvaranja MAC-ova za nove ulaze. Zbog toga izgradnja MAC-ova iz hash-funkcija zahtijeva pažljivuanalizu.

6.3. Prilagođeni MAC algoritmi

U ovom poglavlju ćemo reći nešto o dva algoritma koja su dizajnirana u svrhu ovjereporuka, a to su MAA i MD5-MAC algoritmi.

6.3.1. Algoritam ovjere poruka (MAA)

MAA je prilagođeni MAC algoritam za 32-bitne strojeve, uključujući i 32-bitne opera-cije. Glavna petlja algoritma sadrži dva paralelna međusobno ovisna slijeda računanja.Poruke koje se obrađuju u blokovima od 4-bytea koriste ulančane varijable od 8-byte-a.Vrijeme izvršenja algoritma je proporcionalno duljini same poruke, a pokazalo se da jeMAA dvostruko sporiji od MD4 algoritma.

26

Page 29: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

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.

1. Proširenje ključa neovisno o poruci - proširiti ključ Z do šest 32−bitnih vrijed-nosti X, Y, V,W, S, T . X i Y su početne vrijednosti; V i W su varijable glavnepetlje; S i T su dodani poruci.

(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 ← J4 (mod 232 − 1)⊕J4 (mod 232 − 2)Y ← [K5(mod 232 − 1)⊕K5(mod 232 − 2)](1 + P )2(mod 232 − 2)V ← J6 (mod 232 − 1)⊕J6 (mod 232 − 2)W ← K7 (mod 232 − 1)⊕K7 (mod 232 − 2)S ← J8 (mod 232 − 1)⊕J8 (mod 232 − 2)T ← K9 (mod 232 − 1)⊕K9 (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.

2. Inicijalizacija i predobrada - inicijalizirati vektor rotacije v ← V i ulančane va-rijable: H1 ← X,H2 ← Y . Dodaj blokove izvedenih ključeva S i T u x, a nekax1 . . . xt označavaju dobivene proširene segmente 32-bitnih blokova. (Zadnja dvabloka uključuju tajne izvedene ključeve.)

3. Obrada blokova - obraditi svaki 32-bitni blok xi za i od 1 do t prema sljedećem:v ← (v ←↩ 1), U ← (v ⊕W )

t1 ← (H1 ⊕ xi)×1 (((H2 ⊕ xi) + U) OR A) AND C)

t2 ← (H2 ⊕ xi)×2 (((H1 ⊕ xi) + U) OR B) AND D)

H1 ← t1,H2 ← t2

(×i označava množenje mod 232 − i za i = 1 ili i = 2; + je zbrajanje mod 232;←↩ 1 predstavlja rotaciju ulijevo za jedan bit).

4. Završetak - dobiveni MAC je: H = H1 ⊕H2.

Dio vezan uz proširenja ključa neovisno o poruci je relativno složen pa je za fiksniključ dovoljno jedno izračunavanje. Jačanje algoritma protiv različitih kriptoanalitičkihnapada je omogućeno miješanjem različitih operacija (mod 232− i, za i = 1 ili i = 2 teAND-OR izračunavanja).

27

Page 30: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

6.3.2. MD5-MAC

U svrhu dodatne zaštite cilj je bio izgraditi MAC od MDC-a tako da MAC funkcijakompresije 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).

Algoritam 6.3 MD5-MAC

ULAZ: niz x proizvoljne duljine b ≥ 0; ključ k duljine ≤ 128.IZLAZ: 64-bitna MAC-vrijednost od x. MD5-MAC algoritam se dobiva iz MD5 algo-ritma sljedećim promjenama:

1. Konstante - konstante Ui i Ti su definirane s:Ui = Ti||Ti+1||Ti+2||Ti||Ti+1||Ti+2;T0 : 97 ef 45 ac 29 0f 43 cd 45 7e 1b 55 1c 80 11 34;T1 : b1 77 ce 96 2e 72 8e 7c 5f 5a ab 0a 36 43 be 18;T2 : 9d 21 b4 21 bc 87 b9 4d a2 9d 27 bd c7 5b d7 c3.

2. Proširenje ključa

(a) Ako je k kraći od 128 bita, spojiti k na samog sebe potreban broj puta iredefinirati k kao 128 polaznih bitova s lijeva.

(b) NekaMD5 označava MD5 s dopunjenom i dodanom izostavljenom duljinom.Proširiti k u tri podključa K0, K1iK2 od po 16-byte-a prema sljedećem:Ki ←MD5(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.

3. K0 zamjenjuje četiri 32-bitna IV od MD5 algoritma (npr. hi = K0[i]).

4. K1[i] se dodaje mod 232 svakoj konstanti y[j] korištenoj u Rundi iMD5 algoritma.

5. K2 se koristi pri izgradnji 512-bitnog bloka koji je dodan postavljenom ulazu x

koje slijedi regularnom nadopunjavanju i duljini bloka kako je definirano u MD5:K2||K2 ⊕ T0||K2 ⊕ T1||K2 ⊕ T2.

6. MAC-vrijednost je najdalje lijevo 64 bita od 128-bitnog izlaza iz hashirana do-punjenog i produljenog ulaznog niza koristeći MD5 s gornjim modifikacijama.

Primjer MD5-MAC 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

Page 31: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

niz znakova MD5-MAC vrijednost" " 1f1ef2375cc0e0844f98e7e811a34da8

"abc" e8013c11f7209d1328c0caa04fd012a6"abcdefghijklmnopqrstuvwxyz" 9172867eb60017884c6fa8cc88ebe7c9

Tablica 6.1: Primjeri MD5-MAC algoritma

29

Page 32: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Literatura

[1] A.Dujella, M.Maretić, Kriptografija, Element, Zagreb, 2007.

[2] A. J.Menezes, P.C. van Oorschot, S.A.Vanstone, Handbook of AppliedCryptography, CRC Press, Boca Racon, 1997.

[3] D.R. Stinson, Cryptography Theory and Practice, CRC Press, Boca Racon, 2005.

[4] Algoritmi za izračunavanje sažetaka, CARNet, dostupno na:http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2006-08-166.pdf

30

Page 33: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Sažetak

U radu smo opisali posebnu vrstu funkcija koje imaju veliku ulogu u kriptografiji, ato su hash-funkcije. Upoznali smo se s njihovim svojstvima te smo naveli veze izmeđuodređenih svojstava. Potom smo dali pojednostavljenu klasifikaciju hash-funkcija, azatim dodatna svojstva koja moraju imati određene hash-funkcije. Opisali smo ciljevenapada 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 napadaMAC. Potom smo prikazali osnovnu konstrukciju hash-funkcija, a zatim smo pojasnilina koji način možemo funkcije kompresije proširiti do hash-funkcija. Zatim smo seupoznali s hash-funkcijama bez ključa, objasnili što su to blok-šifre i kakva je njihovauloga u izgradnji hash-funkcija. Detaljnije smo opisali nekoliko algoritama koji sebaziraju na blok-šiframa te na MD4 hash-funkciji, a zatim primjerima ilustrirali kakoizgledaju hash-vrijednosti različitih hash-funkcija za isti niz znakova. Nakon toga smorekli nešto o hash-funkcijama s ključem. Na samom kraju rada smo rekli nešto više oprilagođenim MAC algoritmima.

31

Page 34: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Title and summary

In this paper we described special type of functions which play significant role incryptography, and those are hash functions. We explained their properties and relationsbetween properties. We gave simplified classification of hash functions and what extraproperties have some of them. In work is described which are targets of attack on hashfunctions, and we explained what is target of adversary on MDC, especially his specificclasses OWHF and CRHF, and then we explained target of attacking on MAC. Afterthat we show basic construction of hash-functions and way of extending compressionfunctions to hash functions. Then we talked about unkeyed hash function, we saidsomething about block ciphers and their usage in construction hash function. Alsowe gave detailed descriptions of few algorithms which are based on block ciphers andMD4 hash-function, and we illustrated on example with same string which hash-valueswe get if we use some of those hash functions. At the end we said something aboutcustomized MACs algorithms.

32

Page 35: SlobodanCvijović-Gorša Hash-funkcijeukriptografijimdjumic/uploads/diplomski/CVI15.pdf2 Hash-funkcije Kaoštosmospomenuliuuvodu,uovomradućemogovoritiohash-funkcijamaukrip-tografiji

Ž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 isrednjoškolskog obrazovanja sam sudjelovam na općinskim i županijskim natjecanjimaiz matematike. 2008. godine sam upisao Sveučilišni nastavnički studij matematike iinformatike na Odjelu za matematiku u Osijeku.

33