PROGRAMSKO OSTVARENJE ALGORITAMA BLAKE, Shabal I SIMD
Total Page:16
File Type:pdf, Size:1020Kb
SVEU ČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA ČUNARSTVA DIPLOMSKI RAD br. 132 PROGRAMSKO OSTVARENJE ALGORITAMA BLAKE, Shabal i SIMD Monika Čeri Zagreb, sije čanj 2011. SVEU ČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA ČUNARSTVA DIPLOMSKI RAD br. 132 PROGRAMSKO OSTVARENJE ALGORITAMA BLAKE, Shabal i SIMD Monika Čeri Zagreb, sije čanj 2011. Sadržaj 1. Uvod .......................................................................................................................... 1 2. Funkcije za izra čunavanje sažetka poruke................................................................. 2 3. Secure Hash Algorithm (SHA) ................................................................................... 4 3.1. SHA-1 ............................................................................................................... 4 3.1.1. Postupak dobivanja sažetka poruke algoritmom SHA-1............................. 4 3.1.2. Napadi na SHA-0 i SHA-1.......................................................................... 5 3.2. SHA-2 ............................................................................................................... 6 3.2.1. Postupak dobivanja sažetka poruke algoritmom SHA-2............................. 7 3.2.2. Napadi na SHA-2....................................................................................... 9 4. Natje čaj za SHA-3 ....................................................................................................10 4.1. Tijek natje čaja za SHA-3 ..................................................................................10 4.1.1. Osnovni zahtjevi za prijavu na natje čaj .....................................................10 4.1.2. Kriteriji ocjenjivanja...................................................................................10 4.1.3. Krugovi natje čaja ......................................................................................11 4.2. Kandidati drugog kruga natje čaja .....................................................................13 5. Algoritam BLAKE......................................................................................................15 5.1. Osnovne karakteristike algoritma......................................................................15 5.1.1. Notacija i korištene operacije ....................................................................15 5.1.2. Osnovna struktura algoritma.....................................................................16 5.2. Postupak ra čunanja sažetka algoritmom BLAKE-32.........................................17 5.2.1. Proširenje ulaznog teksta..........................................................................18 5.2.2. Izra čun funkcije kompresije.......................................................................18 5.3. Postupak ra čunanja sažetka algoritmom BLAKE-64.........................................21 5.3.1. Proširenje ulaznog teksta..........................................................................21 5.3.2. Izra čun funkcije kompresije.......................................................................21 5.4. Postupak ra čunanja sažetka algoritmom BLAKE-28.........................................22 5.4.1. Proširenje ulaznog teksta..........................................................................22 5.4.2. Izra čun funkcije kompresije.......................................................................23 5.5. Postupak ra čunanja sažetka algoritmom BLAKE-48.........................................23 5.5.1. Proširenje ulaznog teksta..........................................................................23 5.5.2. Izra čun funkcije kompresije.......................................................................23 6. Algoritam Shabal ......................................................................................................25 6.1. Osnovne karakteristike algoritma......................................................................25 6.1.1. Notacija i korištene operacije ....................................................................25 ii 6.1.2. Osnovna struktura algoritma.....................................................................25 6.2. Postupak ra čunanja sažetka algoritmom Shabal-256 .......................................26 6.2.1. Proširenje ulaznog teksta..........................................................................26 6.2.2. Izra čun rundi pomo ću poruke....................................................................26 6.2.3. Finalizacija................................................................................................29 6.3. Postupak ra čunanja sažetka algoritmom Shabal-512 .......................................30 6.4. Postupak ra čunanja sažetka algoritmom Shabal-224 .......................................30 6.5. Postupak ra čunanja sažetka algoritmom Shabal-384 .......................................31 7. Algoritam SIMD.........................................................................................................32 7.1. Osnovne karakteristike algoritma......................................................................32 7.1.1. Notacija i korištene operacije ....................................................................32 7.1.2. Osnovna struktura algoritma.....................................................................33 7.2. Postupak ra čunanja sažetka algoritmom SIMD-256 .........................................34 7.2.1. Proširenje ulaznog teksta..........................................................................34 7.2.2. Izra čun funkcije kompresije.......................................................................37 7.2.3. Finalizacija................................................................................................39 7.3. Postupak ra čunanja sažetka algoritmom SIMD-512 .........................................40 7.3.1. Proširenje ulaznog teksta..........................................................................40 7.3.2. Izra čun funkcije kompresije.......................................................................41 7.3.3. Finalizacija................................................................................................44 7.4. Postupak ra čunanja sažetka algoritmom SIMD-224 .........................................44 7.5. Postupak ra čunanja sažetka algoritmom SIMD-384 .........................................44 8. Prakti čni rad..............................................................................................................46 8.1. Upute za upotrebu korisni čkog su čelja .............................................................46 8.2. Formati ulaznih i izlaznih datoteka....................................................................47 8.3. Programsko ostvarenje algoritama za izra čunavanje sažetka poruke...............48 8.3.1. Algoritam BLAKE......................................................................................48 8.3.2. Algoritam Shabal ......................................................................................51 8.3.3. Algoritam SIMD ........................................................................................53 9. Usporedba vremena izra čuna sažetka......................................................................56 9.1. Vrijeme izra čunavanja sažetka algoritmom SHA-256 .......................................56 9.2. Vrijeme izra čunavanja sažetka algoritmom BLAKE-32 .....................................56 9.3. Vrijeme izra čunavanja sažetka algoritmom Shabal-256....................................57 9.4. Vrijeme izra čunavanja sažetka algoritmom SIMD-256......................................58 9.5. Usporedba algoritama po trajanju izra čuna sažetka .........................................58 10. Zaklju čak..............................................................................................................60 11. Literatura..............................................................................................................61 iii Sažetak............................................................................................................................62 Abstract ...........................................................................................................................63 Dodatak A........................................................................................................................64 Dodatak B........................................................................................................................67 iv 1. Uvod Nakon otkri ća ranjivosti dosadašnjih funkcija za izra čunavanje sažetka poruke pomo ću napada kolizijom, dovela se u pitanje sigurnost certifikata i protokola koji ih koriste. Uspješnim napadom na algoritam SHA-1, NIST je za novu normu odredio skupinu algoritama SHA-2 koji se temelje na algoritmu SHA-1. Trenutno sigurnost algoritama SHA-2 nijje ugrožena, no dovodi se u pitanje njihova dugoro čnost upravo zbog toga što se temelje na algoritmu SHA-1. Samo je pitanje vremena kada će se i za njih prona ći slabosti. Upravo je zbog toga NIST objavio natje čaj za novi algoritam za izra čunavanje sažetka poruke, SHA-3, koji će naslijediti skupinu algoritama SHA-2. U ovom radu opisana su osnovna svojstva funkcija za izra čunavanje sažetka poruke i algoritmi iz familije SHA, BLAKE, Shabal i SIMD. Programski je ostvareno radno okruženje koje omogu ćava izra čun sažetka poruke pomo ću algoritama BLAKE, Shabal i SIMD. Tako ñer, uspore ñena su dobivena vremena sažimanja s algoritmom SHA-2.