73
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ugrađenim sustavima Ante Modrić Zagreb, lipanj 2013.

DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 607

Kriptografski algoritmi prilagođeni

ugrađenim sustavima

Ante Modrić

Zagreb, lipanj 2013.

Page 2: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

Sadržaj

1 Uvod ........................................................................................................................................... 1

2 Algoritmi za kriptiranje blokova podataka ................................................................................. 2

2.1 PRESENT .......................................................................................................................... 2

2.1.1 Kriptiranje .................................................................................................................. 2

2.1.2 Dekriptiranje............................................................................................................... 4

2.1.3 Raspored ključeva ...................................................................................................... 5

2.1.4 Analiza sigurnosti ....................................................................................................... 6

2.2 KATAN i KTANTAN ....................................................................................................... 8

2.2.1 KATAN ...................................................................................................................... 9

2.2.2 KTANTAN............................................................................................................... 11

2.2.3 Analiza sigurnosti ..................................................................................................... 12

2.3 CLEFIA ............................................................................................................................ 13

2.3.1 Građevni blokovi algoritma CLEFIA ....................................................................... 13

2.3.2 Kriptiranje/Dekriptiranje .......................................................................................... 16

2.3.3 Generiranje rasporeda ključeva ................................................................................ 17

2.3.4 Analiza sigurnosti ..................................................................................................... 21

2.4 KLEIN .............................................................................................................................. 23

2.4.1 Kriptiranje ................................................................................................................ 23

2.4.2 Dekriptiranje............................................................................................................. 24

2.4.3 Raspored ključeva .................................................................................................... 25

2.4.4 Analiza sigurnosti ..................................................................................................... 26

3 Algoritmi za kriptiranje toka podataka ..................................................................................... 28

3.1 DECIMv2

.......................................................................................................................... 28

3.1.1 Pregled algoritma ..................................................................................................... 28

3.1.2 Specifikacija ............................................................................................................. 29

3.1.3 Analiza sigurnosti ..................................................................................................... 30

3.2 Grain ................................................................................................................................. 31

3.2.1 Specifikacija ............................................................................................................. 32

3.2.2 Inicijalizacija ............................................................................................................ 33

3.2.3 Analiza sigurnosti ..................................................................................................... 34

3.3 MICKEY 2.0 .................................................................................................................... 34

3.3.1 Specifikacija ............................................................................................................. 34

3.3.2 Inicijalizacija algoritma ............................................................................................ 37

3.3.3 Analiza sigurnosti ..................................................................................................... 38

Page 3: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

3.4 TRIVIUM ......................................................................................................................... 38

3.4.1 Specifikacija ............................................................................................................. 38

3.4.2 Analiza sigurnosti ..................................................................................................... 40

4 Algoritmi za izračunavanje sažetka poruke .............................................................................. 42

4.1 QUARK ............................................................................................................................ 42

4.1.1 Spužvasta konstrukcija ............................................................................................. 42

4.1.2 Permutacija ............................................................................................................... 43

4.1.3 Specifikacija ............................................................................................................. 44

4.1.4 Analiza sigurnosti ..................................................................................................... 45

4.2 SPONGENT ..................................................................................................................... 47

4.2.1 Struktura algoritma ................................................................................................... 47

4.2.2 Analiza sigurnosti ..................................................................................................... 49

4.3 PHOTON .......................................................................................................................... 50

4.3.1 Struktura algoritma ................................................................................................... 50

4.3.2 Specifikacija ............................................................................................................. 52

4.3.3 Analiza sigurnosti ..................................................................................................... 53

4.4 DM-PRESENT ................................................................................................................. 55

5 Usporedba algoritama .............................................................................................................. 56

5.1 Pregled usporedbi sklopovskih implementacija ............................................................... 56

5.2 Usporedba programskih implementacija .......................................................................... 57

6 Zaključak .................................................................................................................................. 60

Literatura .......................................................................................................................................... 61

Dodatak A ........................................................................................................................................ 65

Dodatak B......................................................................................................................................... 66

Dodatak C......................................................................................................................................... 67

Dodatak D ........................................................................................................................................ 69

Page 4: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

1

1 Uvod

Ubrzanim razvitkom ugradbenih računalnih sustava te bežičnih mreža, povećava se

uporaba raznih pametnih kartica, RFID (engl. Radio-frequency identification) sustava i

sličnih uređaja. Zbog česte upotrebe, napadi na sigurnost takvih sustava su postali

povećana prijetnja, pa se više pažnje posvećuje kriptografskim algoritmima koji bi takve

napade trebali spriječiti.

Kod ugradbenih računalnih sustava, veličina (sklopovske) implementacije je često ključni

faktor. Također, ograničena je količina raspoložive memorije te procesorska snaga. Stoga

je prilikom osmišljavanja programa koji se trebaju izvršavati na takvim uređajima potrebno

posebnu pažnju posvetiti što manjem zauzimanju tih resursa. Isto vrijedi i za kriptografske

algoritme koji, uz pružanje zadovoljavajuće razine sigurnosti, moraju biti prilagođeni

ograničenjima dostupnih resursa u ugrađenim sustavima.

Prvi radovi na temu kriptografskih algoritama za ugrađene sustave su se temeljili na

prilagodbi postojećih kriptografskih algoritama upotrebi u okruženjima s vrlo ograničenim

resursima [1][2][3]. Iako su takve prilagodbe bile uspješne, postojeći algoritmi ipak nisu

ispunjavali sva željena svojstva, bilo zbog razine sigurnosti ili količine resursa potrebnih za

njihovo izvođenje. Stoga, je počelo istraživanje novih kriptografskih algoritama, specifično

dizajniranih za potrebe korištenja u ugrađenim računalnim sustavima.

U nastavku rada su opisani neki takvi algoritmi te analiza sigurnosti koju pružaju. U

poglavlju 2 su opisani algoritmi za kriptiranje blokova podataka, u poglavlju 3 algoritmi za

kriptiranje toka podataka, a u poglavlju 4 su opisani algoritmi za izračun sažetka poruke. U

poglavlju 5 je dana usporedba programskih implementacija opisanih algoritama.

Page 5: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

2

2 Algoritmi za kriptiranje blokova podataka

2.1 PRESENT

PRESENT [4] je simetrični algoritam za kriptiranje blokova podataka modeliran za

jednostavnost te vrlo ograničena okruženja, kako prostorno tako i u performansama

sustava. Dizajniran je za sustave u kojima je umjerena razina sigurnosti zadovoljavajuća,

kod kojih će ključ često biti odabran tijekom proizvodnje uređaja te potrebe za promjenom

ključa neće biti. S obzirom na to da je kod ugrađenih sustava i sličnih okruženja za koje je

namijenjen ovaj algoritam često ključna veličina same implementacije, ovaj algoritam je

dizajniran tako da pruža zadovoljavajuću razinu sigurnosti i kod implementiranja samo

funkcije za kriptiranje (što dodatno smanjuje zauzeće prostora). Takva implementacija je

vrlo pogodna za upotrebu u autentifikacijskom protokolu izazov-odgovor (engl. challenge-

response authentication protocol).

2.1.1 Kriptiranje

PRESENT kriptira blokove podataka veličine 64 bita s ključem veličine 80 bitova. Moguća

je i veličina ključa od 128 bitova za sustave kod kojih je potrebna viša razina sigurnosti, no

takva implementacija ima povećane zahtjeve te se zbog toga rjeđe koristi. Kao i napredni

simetrični kriptosustav (engl. Advanced Encryption Standard - AES), PRESENT se bazira

na strukturi mreže zamjena i permutacija (engl. substitution-permutation network, SP-

mreža) koju provodi kroz 31 rundu algoritma. Svaka od tih rundi se sastoji od dodavanja

potključa (engl. round key) stanju algoritma korištenjem operatora isključivo ili (XOR),

linearne permutacije bitova stanja te nelinearne zamjene bitova stanja. Nakon zadnje runde

algoritma stanju se dodaje 32. potključ koji služi za izbjeljivanje kriptiranog bloka

podataka za poboljšanje sigurnosti. Osnovni oblik algoritma je prikazan na slici 2.1., a

pojedini dijelovi algoritma su objašnjeni u nastavku.

Page 6: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

3

dodajKljučRunde

Za potključ

gdje je i trenutno STANJE ,

dodajKljučRunde se sastoji od operacije:

zamjenaBitova

Nelinearna zamjena bitova stanja se izvršava pomoću 4-bitne kutije za zamjenu (engl.

substitution box, S-box) koja se primjenjuje paralelno 16 puta u svakoj rundi da bi se

zamjena provela na svim bitovima stanja. Razlog tome je optimizacija veličine sklopovske

implementacije, jer su 4-bitne kutije za zamjenu puno kompaktnije od 8-bitnih.

Raspored zamjena koje se obavljaju u ovom koraku prikazan je u heksadecimalnoj notaciji

u sljedećoj tablici:

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S[x] C 5 6 B 9 0 A D 3 E F 8 4 7 1 2

Kod provođenja operacije zamjenaBitova, trenutno STANJE se gleda kao

šesnaest 4-bitnih riječi gdje je

. Izlazne riječi S[x] se na sličan način spajaju u ažurirano stanje.

permutacijaBitova

Permutacija bitova stanja se provodi tako da se i-ti bit STANJA pomiče na poziciju P(i)

prema sljedećoj tablici:

Tablica 2.1. PRESENT kutija za zamjenu bitova

Slika 2.1. Pseudokod PRESENT potupka kriptiranja

Page 7: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

4

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

P(i) 0 16 32 48 1 17 33 49 2 18 34 50 3 19 65 51

i 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

P(i) 4 20 36 52 5 21 37 53 6 22 38 54 7 23 39 55

i 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

P(i) 8 24 40 56 9 25 41 57 10 26 42 58 11 27 43 59

i 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

P(i) 12 28 44 60 13 29 45 61 14 30 46 62 15 31 47 63

Iz tablice se može lako doći do drugog, za programsku implementaciju jednostavnijeg,

zapisa:

2.1.2 Dekriptiranje

Dekriptiranje se od kriptiranja kod obje inačice algoritma razlikuje samo u smjeru

transformacija te njihovom poretku. Opći oblik algoritma za dekriptiranje je prikazan na

slici 2.2., a pojedini dijelovi su objašnjeni u nastavku.

Tablica 2.2. PRESENT permutacija bitova

Slika 2.2. Pseudokod PRESENT postupka dekriptiranja

Page 8: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

5

inverznaZamjenaBitova

Inverz nelinearne zamjene bitova je ponovo ostvaren pomoću paralelne primjene iste 4-

bitne kutije za zamjenu 16 puta, s time da je ta kutija identična onoj korištenoj za

kriptiranje, ali su ulaz i izlaz zamijenjeni. Raspored zamjena je inverz zamjena obavljenih

tijekom kriptiranja:

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S[x] 5 E F 8 C 1 2 D B 4 6 3 0 7 9 A

inerznaPermutacijaBitova

Inverz permutacije bitova se obavlja prema sljedećoj tablici:

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

P(i) 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60

i 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

P(i) 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61

i 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

P(i) 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62

i 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

P(i) 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63

2.1.3 Raspored ključeva

PRESENT može imati ključ duljine 80 ili 128 bitova, no zbog manjih zahtjeva i dovoljne

razine sigurnosti najčešće se koristi ključ duljine 80 bitova (PRESENT-80). U toj inačici

algoritma zadani ključ se sprema u poseban registar . U rundi i se u potključ

prepisuju 64 krajnje lijeva bita trenutnog sadržaja registra ključa, tj.

Tablica 3.3. PRESENT kutija za inverznu zamjenu bitova

Tablica 3.4. PRESENT inverzna permutacija bitova

Page 9: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

6

Nakon prepisivanja potključa, registar ključa se ažurira prema sljedećim

pravilima:

1.

2.

3.

Kod inačice algoritma koja koristi ključ od 128 bita (PRESENT-128), raspored ključeva se

razlikuje samo u pravilima ažuriranja registra ključa nakon prepisivanja potključa:

1.

2.

3.

4.

2.1.4 Analiza sigurnosti

Diferencijalna i linearna kriptoanaliza

Da bi se procijenila otpornost algoritma PRESENT na diferencijalnu i linearnu

kriptoanalizu, potrebno je odrediti donju granicu aktivnih kutija za zamjenu (S-box)

uključenih u diferencijalnu (tj. linearnu) karakteristiku algoritma.

Diferencijalna kriptoanaliza je sadržana u Teoremu 1, čiji se formalni dokaz može

pronaći u [4]:

Teorem 1. Diferencijalna karakteristika svakih 5 rundi PRESENT-a ima minimalno 10

aktivnih kutija za zamjenu.

Prema navedenom teoremu, svaka diferencijalna karakteristika 25 rundi PRESENT-a mora

imati barem aktivnih kutija za zamjenu. Maksimalna diferencijalna

vjerojatnost PRESENT-ovih kutija za zamjenu je 2-2

, pa je zato vjerojatnost bilo koje

diferencijalne karakteristike 25 rundi ograničena na 2-100

. Postoje napredne tehnike u

kojima kriptoanalitičar može odstraniti rubne runde algoritma da bi iskoristio skraćenu

karakteristiku, no čak i uz odstranjivanje rubnih 6 rundi algoritma (za što su šanse uspjeha

male) količina podataka potrebna za iskorištavanje diferencijalne karakteristike preostalih

Page 10: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

7

25 rundi je veća nego što je moguće prikupiti. Prema tome, sigurnosne granice su

zadovoljavajuće za sve upotrebe PRESENT-a.

Linearna kriptoanaliza se rješava Teoremom 2, koji analizira najbolju linearnu

aproksimaciju 4 runde PRESENT-a. Formalni dokaz Teorema 2 se može naći u [4]:

Teorem 2. Neka je maksimalna pristranost linearne aproksimacije 4 runde

PRESENT-a. Tada je

.

Izravno koristeći Teorem 2 dolazimo do granice maksimalne pristranosti (engl. bias)

linearne aproksimacije 28 rundi

Čak i pod pretpostavkom da je kriptoanalitičaru dovoljno samo 28 od 31 runde PRESENT-

a, linearna kriptoanaliza algoritma bi zahtijevala približno 284

poznatih parova jasnog i

kriptiranog teksta, a to nije ostvarivo.

Strukturalni napadi

Strukturalni napadi koji su prilagođeni za analizu algoritama sa strukturom sličnom AES-u

(u koje spada i PRESENT), kao što su integralni napad (engl. integral attack) ili napad

uskog grla (engl. bottleneck attack), koriste strukture bazirane na riječima (koje su najčešće

veličine jednog bajta). S obzirom na to da PRESENT koristi operatore koji gotovo

isključivo barataju bitovima, strukture bazirane na riječima gube svoju svrhu, pa takvi

napadi ne mogu uspjeti.

Algebarski napadi

Algebarski napadi su uspješniji kod algoritama za kriptiranje toka podataka nego kod

algoritama za kriptiranje blokova podataka, no zbog jednostavne strukture PRESENT-a

potrebno je razmotriti i takve napade. Kutija za zamjenu kakva se koristi u PRESENT-u,

kao i bilo koja 4-bitna kutija za zamjenu, može se opisati s 21 kvadratnom jednadžbom s 8

ulaznih i izlaznih bitovnih varijabli. Cijeli algoritam se može opisati s

kvadratnih jednadžbi s varijabli, gdje je n ukupan broj kutija za zamjenu u

algoritmu za kriptiranje te rasporedu ključeva. Za PRESENT imamo ,

iz čega slijedi da se cijeli sustav sastoji od 11,067 kvadratnih jednadžbi sa 4,216 varijabli.

Problem rješavanja kvadratnih jednadžbi s više varijabli je NP-težak, no sustavi izvedeni iz

algoritama za kriptiranje blokova podataka su vrlo rijetko popunjeni s obzirom na to da su

sastavljeni od n malih linearno povezanih sustava. Zasad nije jasno da li se to može

Page 11: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

8

iskoristiti za algebarski napad ili ne. Predloženi su neki specijalizirani postupci [5][6], no

pronađene su greške u njima [7][8]. Simulacije na oslabljenim inačicama AES-a u

programu Magma [9] pokazuju da kod svih osim najmanjih SP-mreža brzo dolazi do

problema s vremenskom i memorijskom složenošću [10]. Isti zaključak vrijedi i za

PRESENT.

Napad na raspored ključeva

S obzirom na to da ne postoje provjerene smjernice za osmišljavanje sustava rasporeda

ključeva, postoji mnogo različitih sustava za raspored ključeva te specifičnih napada na

njih. Najučinkovitiji od njih se mogu opisati kao napadi povezanim ključevima (engl.

related-key attacks) [11] i napadi posmicanjem (engl. slide attacks) [12], a obje grupe

napada se baziraju na prepoznavanju veza između različitih potključeva ili grupa

potključeva. Prilikom generiranja potključeva, PRESENT koristi brojač ovisan o broju

runde. Time se stvara otpornost na napade posmicanjem. Također, nad registrom ključa K

vrše se nelinearne operacije kako bi se postigla raznolikost potključeva:

do 21. runde svi bitovi registra ključa su nelinearne funkcije 80-bitnog ključa

unesenog od strane korisnika

nakon 21. runde svi bitovi registra ključa ovise o barem 4 bita ključa unesenog od

strane korisnika

u trenutku generiranja potključa K32, 32 bita registra ključa su funkcija 3. reda nad

ulaznim ključem, dok su ostali bitovi funkcija 9. reda ulaznog ključa

Ova svojstva PRESENT-a bi se trebala pokazati dovoljnima za otpornost na napade na

raspored ključeva.

2.2 KATAN i KTANTAN

KATAN i KTANTAN [13] su simetrični algoritmi za kriptiranje blokova podataka

modelirani za što efikasniju sklopovsku implementaciju, imajući prvenstveno na umu

prostornu efikasnost. S obzirom na to da dijele većinu strukture, ova dva algoritma se

smatraju istom ''obitelji'' algoritama.

Svi algoritmi iz ove obitelji imaju 80-bitne ključeve, te pružaju jednaku razinu sigurnosti.

Ovisno o inačici algoritma, blokovi podataka koji se kriptiraju ili dekriptiraju mogu biti 32,

48 ili 64 bita. Veći blok podataka koji se kriptira omogućuje veću propusnost (engl.

Page 12: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

9

throughput) ali zauzima i više prostora kod sklopovske implementacije. Od ova dva tipa

algoritama, KTANTAN je nešto kompaktniji u sklopovskoj implementaciji jer je njegov

ključ fiksan te se sklopovski upisuje u uređaj koji koristi taj algoritam.

2.2.1 KATAN

Algoritam KATAN dolazi u 3 inačice: KATAN32, KATAN48 i KATAN64. Sve inačice

imaju 80-bitni ključ te se izvršavaju u 254 koraka. Nelinearne funkcije koje se koriste za

transformacije tijekom izvođenja su također jednake u svim inačicama.

Kriptiranje

Jasni tekst se upisuje u registre L1 i L2 (veličine registara u pojedinim inačicama se nalaze

u tablici 2.5.), s time da se prvi bit teksta upisuje na krajnje lijevu poziciju registra L1, dok

se zadnji bit teksta upisuje na krajnje desnu poziciju registra L2. Svaku rundu se oba

registra posmiču za jedno mjesto ulijevo, a na krajnje desnu poziciju se upisuju

novoizračunati bitovi. Nakon 254 koraka algoritma, sadržaji registara L1 i L2 se ispisuju

kao kriptirani tekst.

Inačica algoritma x1 x2 x3 x4 x5

KATAN32/KTANTAN32 13 19 12 7 8 5 3

KATAN48/KTANTAN48 19 29 18 12 15 7 6

KATAN64/KTANTAN64 25 39 24 15 20 11 9

Inačica algoritma y1 y2 y3 y4 y5 y6

KATAN32/KTANTAN32 18 7 12 10 8 3

KATAN48/KTANTAN48 28 19 21 13 15 6

KATAN64/KTANTAN64 38 25 33 21 14 9

U svakoj rundi, KATAN koristi dvije nelinearne funkcije fa() i fb() za generiranje novih

bitova:

Tablica 2.5. Parametri inačica KATAN i KTANTAN algoritama

Page 13: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

10

gdje je IR varijabla koja označava da li se primjenjuje nepravilno osvježavanje, a ka i kb su

potključevi. Tablica 2.5. sadrži podatke o odabiru bitova xi i yi za svaku inačicu algoritma

(uzimajući u obzir da se kao bit 0 označava krajnje desni bit). Nakon izračuna ovih

funkcija, registri L1 i L2 se posmiču ulijevo, a na njihovu krajnje desnu poziciju se upisuju

dobivene vrijednosti (za L1 se koristi vrijednost fb a za L2 vrijednost fa). Tablica s

vrijednostima varijable nepravilnog osvježavanja IR se nalazi u dodatku A.

Raspored potključeva se generira tako da se u posmični registar s linearnim povratom

(engl. linear feedback shift register, LFSR) učita 80-bitni zadani ključ, tako da krajnje

desni bit ključa dođe na poziciju 0 LFSR-a. Svaku rundu, pozicije 0 i 1 LFSR-a se koriste

kao potključevi k2i i k2i+1, a LFSR se osvježi dvaput. Kao polinom povrata se koristi

primitivni polinom s minimalnom Hammingovom težinom 5:

Ove pozicije čine potpuni razlikovni skup (engl. difference set), što pruža ovim

algoritmima otpornost na napad pogodi i odredi (engl. guess and determine attack). Uz

ovaj polinom povrata, ako imamo ključ K, tada je potključ runde i

gdje je

Dekriptiranje

Postupak dekriptiranja je direktni inverz postupka kriptiranja. To znači da je razlika jedino

u nelinearnim funkcijama fa i fb te njihovim primjenama u osvježavanju registara L1 i L2.

Registri L1 i L2 se prilikom svake runde dekriptiranja posmiču za jedno mjesto u desno, a

na krajnje lijevo mjesto se upisuje bit generiran promijenjenom funkcijom fa odnosno fb:

Potključevi se primjenjuju obrnutim redoslijedom nego prilikom kriptiranja.

Sklopovska implementacija

Osim u duljini jasnog i kriptiranog teksta, duljinama L1 i L2 te pozicijama bitova koji se

koriste u nelinearnim funkcijama (xi i yi), inačice algoritma se razlikuju i u broju primjena

nelinearnih funkcija fa i fb u svakoj rundi. KATAN32 ih primjenjuje jednom, KATAN48

dvaput, a KATAN64 tri puta. Naravno, u svakoj rundi se koristi samo jedan set

Page 14: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

11

potključeva bez obzira na inačicu algoritma. Imajući to na umu, moguće je dodatno

smanjiti veličinu sklopovske implementacije inačica KATAN48 i KATAN64 tako da se

registar ključa i brojač rundi osvježe svake dvije (odnosno tri) runde, no to uzrokuje

smanjenje propusnosti algoritma pa je primjena takvog kompromisa ograničena. S druge

strane, bilo koja inačica algoritma se može vrlo jednostavno ubrzati dva (ili tri) puta ako

kompaktnost implementacije nije ključni faktor. Tada se jednostavno logički operatori

nelinearnih funkcija fa i fb kao i logika za izvršavanje koeficijenata povrata brojača i

registra ključa udvostruče (ili utrostruče). U dodatku A je prikaz rezultata takvih ubrzanja

dobivenih u [13].

2.2.2 KTANTAN

Razlika između KATAN i KTANTAN algoritama je jedino u njihovom rasporedu

potključeva. Dok se kod KATAN algoritama ključ upisuje u 80-bitni registar koji se zatim

svaku rundu osvježava, kod KTANTAN algoritama je ključ fiksno upisan u sklop. Problem

izrade rasporeda potključeva se zato svodi na problem nalaženja jednostavnog ali sigurnog

načina odabira bitova ključa koji će se koristiti u pojedinoj rundi.

Da bi se smanjila sklopovska implementacija algoritma zadržavajući propusnost, ključ se

dijeli na 5 16-bitnih riječi. Iz svih riječi se uzima po jedan bit s iste pozicije, koja se

odabire pomoću 4 krajnje lijevih bitova posebnog LFSR-a koji služi za brojanje rundi, čiji

je povratni polinom jednak . Svi bitovi brojača se na početku

izvođenja postave na jedinice, a nakon 254 runde algoritma su svi bitovi brojača ponovno

jednaki 1. Isti LFSR koriste i KATAN algoritmi, no u tim algoritmima on služi samo kao

brojač rundi, bez ikakve dodatne funkcionalnosti.

Nakon odabira 5 bitova ai iz zadanog ključa, potključeve generiramo na sljedeći način:

Uzimajući u obzir ovakav način biranja potključeva, od 80 bitova zadanog ključa samo se

jedan bit koristi dvaput, 15 se koristi tri puta a ostali četiri. Čak i ako napadač odabere dva

ključa koja generiraju jednake sljedove potključeva bilo za ka ili kb, najveća duljina takvog

slijeda je 35 rundi (nakon 35 rundi se sljedovi obavezno razlikuju).

Page 15: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

12

2.2.3 Analiza sigurnosti

Prema [13], KATAN (odnosno KTANTAN) algoritmi su dizajnirani s velikom marginom

sigurnosti. Točnije ciljana gornja granica diferencijalne vjerojatnosti bilo koje

diferencijalne karakteristike 128 rundi je 2-n

, za blok podataka od n bitova.

Diferencijalna i linearna kriptoanaliza

Ovisno o korištenim rundama, najbolja diferencijalna karakteristika neke 42 runde

KATAN32 ima vjerojatnost jednaku 2-11

. Zbog toga bilo koja diferencijalna karakteristika

126 rundi ne može imati vjerojatnost veću od . Slični rezultati su dobiveni

i za linearnu kriptoanalizu – najbolja linearna aproksimacija nekih 42 rundi ima pristranost

jednaku 2-6

, što dovodi do pristranosti od 2-16

za aproksimaciju 126 rundi. Za KATAN48,

najbolja diferencijalna karakteristika 43 runde ima vjerojatnost ne veću od 2-18

, pa tako

svaka karakteristika 129 rundi nema vjerojatnost veću od . Odgovarajuća

linearna pristranost 43 runde iznosi 2-10

, tj. 2-28

za 129 rundi. Konačno, najbolja

diferencijalna karakteristika 37 rundi algoritma KATAN64 ima vjerojatnost od 2-20

, pa bilo

koja karakteristika 111 rundi ima vjerojatnost od 2-60

. Također, pošto najbolja

diferencijalna karakteristika 18 rundi ima vjerojatnost od 2-5

, onda najbolja karakteristika

129 rundi ne može imati vjerojatnost veću od 2-65

. Granice linearne pristranosti su 2-11

za

37 rundi, te 2-31

za 111 rundi.

S obzirom na navedeno, te na činjenicu da se KATAN i KTANTAN ne razlikuju s obzirom

na svoje linearne i diferencijalne karakteristike, može se zaključiti da su ovi algoritmi

otporni na diferencijalne i linearne napade.

Algebarski napadi

S obzirom na stupanj funkcije kombiniranja, moglo bi se očekivati da su KATAN i

KTANTAN algoritmi podložni algebarskim napadima. No, kada se uzme u obzir stupanj

izraza koji uključuju izvorni tekst, može se uočiti da je nakon 32 runde (za KATAN32)

stupanj svakog bita internog stanja najmanje 2, što znači da nakon 160 rundi stupanj

svakog bita internog stanja jednak 32. Za KATAN48, stupanj 2 se dostiže nakon 24 runde,

a nakon 144 rundi stupanj je 48. Kod KATAN64 svi bitovi postižu stupanj 2 nakon 22

runde, dok nakon 132 runde postižu stupanj 64. S obzirom na to da stupanj bitova može

dostići svoju maksimalnu vrijednost, može se očekivati da KATAN i KTANTAN algoritmi

budu otporni na algebarske napade.

Page 16: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

13

Napad na raspored ključeva

Pošto koriste dva načina osvježavanja registara (koristeći regularno ili neregularno pravilo

osvježavanja), KATAN i KTANTAN algoritmi su otporni na napade koji se baziraju na

sličnostima u potključevima kao što su napadi posmicanjem i napadi povezanim

ključevima.

Napad posmicanjem se bazira na nalaženju dva teksta koji dijele proces kriptiranja, a koji

se razlikuju u broju provedenih rundi. Pošto se funkcije osvježavanja izmjenjuju ovisno o

broju runde, to je moguće ostvariti samo za vrlo mali broj rundi. Na primjer, za KATAN32

se to može ostvariti ako za runde 19 i 118 napadač dobije istu privremenu vrijednost

registara stanja. Tada može posmicati taj par vrijednosti koji do kraja procesa kriptiranja

zadržavaju jednakost s vjerojatnošću 2-31

. To nije dovoljno da bi algoritam bio podložan

napadu posmicanjem. Kod inačica KATAN48 i KATAN64 ta vjerojatnost je još manja (2-

62 odnosno 2

-93).

Kod napada povezanim ključevima, napadač traži dvije privremene vrijednosti registara

stanja kao i ključeve koji generiranju jednake potključeve kroz što više rundi algoritma. S

obzirom na već spomenuto alterniranje dviju funkcija osvježavanja registara, privremene

vrijednosti moraju biti nakon jednakog broja rundi algoritma da bi mogle poslužiti za

napad. No, promjenom makar i jednoga bita zadanog ključa, doći će do promjene u

generiranim potključevima nakon najviše 80 rundi. Tako da parovi jednakih jasnih

tekstova i različitih ključeva ne mogu postojati dulje od 80 rundi, što čini ove algoritme

otpornima na takve napade.

2.3 CLEFIA

CLEFIA [14] je algoritam za kriptiranje blokova podataka kojim se kriptiraju blokovi od

128 bita s ključem veličine 128, 192 ili 256 bitova (što je kompatibilno sa specifikacijama

AES-a). Algoritam se sastoji od dva koraka: generiranja rasporeda ključeva te

kriptiranja/dekriptiranja blokova podataka.

2.3.1 Građevni blokovi algoritma CLEFIA

GFN_{d, r}

CLEFIA koristi generaliziranu Feistelovu mrežu (engl. generalized Feistel network, GFN)

s 4 i 8 grana. Generalizirana Feistelova mreža s 4 grane se koristi u inačici sa 128-bitnim

Page 17: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

14

ključem (CLEFIA128), dok se mreža s 8 grana koristi u inačicama sa 192-bitnim i 256-

bitnim ključem (CLEFIA192, CLEFIA256). S GFN{d, r} predstavljamo generaliziranu

Feistel mrežu s d grana i r rundi.

Za d parova 32-bitnih ulaznih podataka Xi i izlaznih podataka Yi , te

32-

bitnih potključeva RKi

GFN{d, r} (d = 4, 8) se definira kao:

Inverzna funkcija GFNINV{4, r} se dobiva zamjenom redoslijeda potključeva RKi, te

suprotnim rotacijama riječi:

Page 18: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

15

F funkcije

Funkcije F0 i F1 koje se koriste u GFN{4, r} su definirane na sljedeći način:

S0 i S1 su 8-bitne kutije za zamjenu, a M0 i M1 su difuzijske matrice 4x4 (objašnjeno u

nastavku).

Page 19: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

16

Kutije za zamjenu

CLEFIA koristi dva tipa kutija za zamjenu: S0 se bazira na korištenju četiri 4-bitne kutije

za zamjenu, dok se S1 bazira na inverznoj funkciji nad GF(28). U dodatku B se mogu naći

tablice s izlaznim vrijednostima kutija za zamjenu S0 i S1. Sve vrijednosti su prikazane u

heksadecimalnom brojevnom sustavu.

Difuzijske matrice M

Umnošci difuzijskih matrica M0 i M1 te vektora T u funkcijama F0 i F1 se dobivaju na

sljedeći način:

U gornjim jednadžbama predstavlja množenje u Galoisovom polju (engl. Galois field)

koje je definirano ireducibilnim polinomom . Matematička

pozadina ovih difuzijskih matrica i njihovog izbora je objašnjena u [15].

2.3.2 Kriptiranje/Dekriptiranje

Kriptiranje i dekriptiranje se kod algoritma CLEFIA bazira na generaliziranoj Feistelovoj

mreži s 4 grane GFN{4, r} za inačicu s veličinom ključa 128 bita, odnosno mreži s 8 grana

GFN{8, r} za inačice s veličinom ključa 192 ili 256 bita.

Neka P i C označavaju 128-bitni jasni tekst, odnosno kriptirani tekst. Također neka s Pi i

Ci označavano 32-bitne dijelove jasnog odnosno kriptiranog teksta, gdje je

Page 20: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

17

i . WK0, WK1, WK2 i WK3 neka označavaju 32-bitne

ključeve za izbjeljivanje (engl. whitening key) a RKi 32-bitne potključeve,

koje dobivamo iz dijela za generiranje rasporeda ključeva. Tada se funkcija kriptiranja s r

rundi ENCr definira kao:

Pripadna funkcija dekriptiranja DECr se definira kao:

S obzirom na to da kriptiraju blok podataka jednake duljine, postupak kriptiranja i

dekriptiranja je jednak za sve inačice. Broj rundi r ovisi o inačici algoritma, te je jednak 18

za inačicu CLEFIA128, 22 za inačicu CLEFIA192, te 26 za inačicu CLEFIA256.

2.3.3 Generiranje rasporeda ključeva

Funkcija za generiranje rasporeda ključeva kao ulaz prima zadani ključ (duljine 128, 192

ili 256 bita) te kao izlaz daje ključeve za izbjeljivanje WKi i potključeve RKj

koji se koriste prilikom kriptiranja i dekriptiranja.

Funkcija dvostruke zamjene

Funkcija dvostruke zamjene (engl. DoubleSwap) , koja se koristi kod generiranja

rasporeda ključeva,definira se na sljedeći način:

gdje označava niz bitova iz X od pozicije a do pozicije b uključivo. Pozicija 0

označava krajnje lijevi bit X-a. Slika 2.3. grafički prikazuje funkciju dvostruke zamjene.

Page 21: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

18

Generiranje rasporeda ključeva za inačicu CLEFIA128

Privremeni 128-bitni ključ L se generira primjenom funkcije GFN{4, 12} koja kao

potključeve koristi 24 32-bitne konstante CON128[i] te kao ulazne podatke

koristi zadani ključ . Nakon toga se L i K koriste za generiranje ključeva

za izbjeljivanje WKi te potključeva RKj pomoću 36 32-bitnih

konstanti CON128[i] . Način na koji su generirane konstante je objašnjen u

[15]. Postupak izrade potključeva provodi se sljedećim koracima:

Slika 2.4. prikazuje povezanost između potključeva i podataka pomoću kojih se generiraju

za inačicu CLEFIA128.

Slika 2.3. Funkcija dvostruke zamjene

Page 22: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

19

Generiranje rasporeda ključeva za inačice CLEFIA192 i CLEFIA256

Razlika kod generiranja potključeva za inačice CLEFIA192 i CLEFIA256 je (osim očite

razlike u broju bitova ključa) u korištenju funkcije GFN{8, 10}, koja kao potključeve koristi

CONk[i] (gdje je k jednak 192 ili 256, ovisno o inačici za koju se generiraju

potključevi) a kao ulaz koristi 128-bitne međuvrijednosti KL i KR koje se generiraju iz

zadanog ključa. Izlaz funkcije GFN{8, 10} su 128-bitne međuvrijednosti LL i LR. Nakon

toga se pomoću LL, LR, KL i KR generiraju ključevi za izbjeljivanje WKi te

potključevi RKj ( za CLEFIA192, za CLEFIA256). Tijekom tog

postupka se koriste konstante CON192[i] tj. CON256[i] ,

ovisno o inačici algoritma. Postupak generiranja se provodi na sljedeći način:

Slika 2.4. Generiranje CLEFIA128 potključeva

Page 23: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

20

Slika 2.5. prikazuje povezanost između potključeva i podataka pomoću kojih se generiraju

za inačicu CLEFIA192, a slika 2.6. za inačicu CLEFIA256.

Slika 2.5. Generiranje CLEFIA192 potključeva

Page 24: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

21

2.3.4 Analiza sigurnosti

Diferencijalna kriptoanaliza

Procjena vjerojatnosti diferencijalnih karakteristika se može postići brojanjem aktivnih

kutija za zamjenu. Tablica 2.6. prikazuje broj aktivnih kutija za zamjenu u određenoj rundi

r izvođenja algoritma (stupac DSM(D)). Cijela tablica se može naći u [17].

r DSM(D) DSM(L) r DSM(D) DSM(L)

1 0 0 8 18 18

2 1 1 9 20 20

3 2 5 10 22 23

4 6 6 11 24 26

5 8 10 12 28 30

6 12 15 13 30 32

7 14 16 14 34 34

CLEFIA koristi dva tipa kutija za zamjenu, S0 i S1, a njihove najveće diferencijalne

vjerojatnosti su i

Za potrebe diferencijalne kriptoanalize,

Slika 2.6. Generiranje CLEFIA256 potključeva

Tablica 2.6. Broj aktivnih kutija za zamjenu po rundama

Page 25: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

22

može se pojednostaviti pa računati da su sve kutije za zamjenu tipa S0, jer je njena

diferencijalna vjerojatnost veća.

Kombinirajući 28 aktivnih kutija za zamjenu za 12 rundi algoritma sa , dobivamo

da najveća vjerojatnost diferencijalne karakteristike iznosi

. Time dobivamo da ne postoji diferencijalna karakteristika koja bi se mogla

iskoristiti za napad.

Linearna kriptoanaliza

Za linearnu kriptoanalizu se može primijeniti sličan postupak korištenja broja aktivnih

kutija za zamjenu i njihovih najvećih linearnih vjerojatnosti. U tablici 2.6 stupac DSM(L)

prikazuje broj linearno aktivnih kutija za zamjenu u ovisnosti o rundi r. S obzirom na to da

su najveće linearne vjerojatnosti kutija za zamjenu i

, opet

se može pojednostaviti pa računati da su sve kutije za zamjenu tipa S0. Kombinirajući 30

kutija za zamjenu koje su aktivne u 12 rundi algoritma s linearnom vjerojatnosti ,

dobivamo najveću vjerojatnost linearne karakteristike od

. Takva vjerojatnost linearne karakteristike pokazuje da je CLEFIA otporna na

napade linearnom aproksimacijom.

Napad na raspored ključeva

Napad posmicanjem je česta tehnika za analizu generiranja rasporeda ključeva. Poznato je

da je dobra mjera protiv takvih napada korištenje međusobno nezavisnih konstanti rundi. S

obzirom na to da CLEFIA koristi takve konstante [16], može se očekivati da je algoritam

imun na takve napade.

Napad povezanim ključevima iskorištava sličnosti u generiranju potključeva između istih

algoritama, s jednakom ili različitom duljinom ključa. S obzirom na sličnost u generiranju

potključeva kod CLEFIA192 i CLEFIA256 inačica, postoji rizik od takvih napada. Da bi

se to izbjeglo, konstante korištene prilikom generiranja potključeva različite su za sve

inačice algoritma. Tako čak i u slučaju da se dijelovi ključa poklapaju između inačica

algoritama, generirani potključevi za dane runde neće biti jednaki, pa se CLEFIA može

smatrati otpornom na napad povezanim ključevima.

Page 26: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

23

2.4 KLEIN

KLEIN [18] je kriptografski algoritam konstruiran za izvođenje u uređajima s ograničenim

resursima. Postoje tri inačice algoritma, a razlikuju se u duljini ključa te broju koraka

izvođenja (12/16/20 koraka za ključ duljine 64/80/96 bitova). Sve inačice kriptiraju blok

podataka veličine 64 bita. Slično kao AES i PRESENT, KLEIN se zasniva na strukturi

mreže zamjena i permutacija (engl. substitution-permutation network, SP-mreža).

2.4.1 Kriptiranje

Kriptiranje algoritmom KLEIN se provodi na sljedeći način:

Izlaz i ulaz algoritma se smatraju jednodimenzionalnim poljima bitova, pa se tijekom

transformacija sve operacije mogu optimirati s postupcima koji barataju bitovima.

Operacija zamijeniKvartete (engl. subNibbles)

Korak dodavanja potključa radi jednostavnu isključivo ili operaciju nad svakim bitom

stanja prije operacije zamijeniKvartete. U ovom koraku, stanje dobiveno tom operacijom

se dijeli na 16 4-bitnih kvarteta (engl. nibbles) koji se dovode na ulaz 16 istih kutija za

zamjenu. Nelinearna permutacija koju obavlja kutija za zamjenu je dana u tablici 2.7.

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S[x] 7 4 A 9 1 F B 0 C 3 2 6 8 E D 5

Tablica 2.7. KLEIN kutija za zamjenu bitova

Page 27: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

24

Operacija rotirajKvartete (engl. rotateNibbles)

Operacija rotirajKvartete radi ono što nalaže naziv – rotira 4-bitne kvartete trenutnog

stanja za dvije pozicije u lijevo. Da bi se uštedjelo na prostoru kod sklopovske

implementacije, moguće je iskombinirati funkcije rotirajKvartete i pomješajKvartete u

jednu operaciju. Slika 2.7. prikazuje operaciju rotirajKvartete.

Operacija pomiješajKvartete (engl. mixNibbles)

U svakoj se rundi 4-bitni kvarteti stanja grupiraju u dvije n-torke, nad kojima se onda

provodi operacija PomiješajStupce iz algoritma AES. Ti skupovi kvarteta se promatraju

kao četveročlani polinom koji se množi modulo s fiksnim polinomom

. Izlaz funkcije pomiješajKvartete je privremeno stanje .

2.4.2 Dekriptiranje

Dekriptiranje se kod algoritma KLEIN vrši inverzom postupka kriptiranja, uz razliku što se

svi ključevi moraju generirati prije početka izvođenja (da bi se mogli primjenjivati u

obrnutom redoslijedu):

Slika 2.7. Operacija rotirajKvartete

Page 28: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

25

Operacija inverznaZamjenaKvarteta (engl. inverseRotateNibbles)

Da bi se smanjila veličina sklopovske implementacije, odabrana je involutivna kutija za

zamjenu bitova. Zbog toga inverzna operacija zamjene kvarteta je identična zamjeni

kvarteta provedenoj kod kriptiranja.

Operacija inverznaRotacijaKvarteta (engl. inverseRotateNibbles)

Operacija inverzne rotacije kvarteta rotira kvartete za dva mjesta u desno. Kao i kod

kriptiranja, moguće je ovaj korak iskombinirati s inverznim miješanjem kvarteta u jednu

operaciju da bi se smanjila sklopovska implementacija.

Operacija inverznoPomješajKvartete (engl. inverseMixNibbles)

Kod inverznog miješanja kvarteta provodi se isti postupak kao i kod kriptiranja, uz razliku

što se kvarteti (koji se tretiraju kao stupci u AES-u) množe s polinomom

.

2.4.3 Raspored ključeva

Potključ runde i se generira pomoću potključa runde i-1. Postupak generiranja potključeva

je definiran na sljedeći način:

Zadani glavni ključ (engl. master key) mk se upisuje kao potključ prve runde:

gdje je za KLEIN-64/80/96. Potključ ski+1

dobivamo od potključa ski tako da:

Podijelimo potključ ski u dvije n-torke bajtova , tako da je

. Za KLEIN-64 to na primjer

znači da je

i

Rotiramo u lijevo za jednu poziciju n-torke, time dobivajući

i

.

Zamjenimo n-torke , tako da postane lijeva n-torka iz para, a

postaje desna n-torka

Izvršimo operaciju isključivo ili sa brojačem rundi nad trećim bajtom u n-torci ,

te drugi i treći bajt n-torke provedemo kroz kutiju za zamjenu

Page 29: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

26

Ukoliko se koriste inačice kod kojih je zadani ključ duljine 80 ili 96 bitova, krajnje lijevih

64 bita se uzimaju kao potključ ski.

2.4.4 Analiza sigurnosti

Linearna i diferencijalna kriptoanaliza

Linearna i diferencijalna kriptoanaliza KLEIN-a su sadržane u dva teorema čiji dokaz se

može naći u [18]:

Teorem 1. Svaka diferencijalna karakteristika 4 runde KLEIN-a ima najmanje 15 aktivnih

kutija za zamjenu.

Teorem 2. Svaka linearna aproksimacija 4 runde KLEIN-a ima najmanje 15 aktivnih

kutija za zamjenu.

Pošto diferencijalna karakteristika kutije za zamjenu korištene u KLEIN-64 ima

vjerojatnost najviše 2-2, dobivamo da vjerojatnost najbolje diferencijalne karakteristike 12

rundi KLEIN-a iznosi .

Također, uzevši da svaka linearna karakteristika korištenih kutija za zamjenu ima

korelaciju 2-2, dobivamo da najveća pristranost linearne aproksimacije 12 rundi KLEIN-64

iznosi .

Napad na raspored ključeva

Da bi se spriječili napadi na raspored ključeva, KLEIN koristi konstante rundi koje su

međusobno nezavisne, što bi trebalo spriječiti simetričnosti u skupovima potključeva.

Također, registar ključa ima sljedeće karakteristike:

u KLEIN-64/80/96 algoritmu svaki bit registra ključa ovisi o barem 4 bita početnog

(zadanog) ključa nakon 4/5/6 rundi

u KLEIN-64/80/96 algoritmu, svi bitovi registra ključa su nelinearna kombinacija

svih bitova početnog ključa nakon 8/10/12 rundi

Integralni napad

Integralna kriptoanaliza se primjenjuje da bi se iskoristile slabosti algoritama za kriptiranje

koji se baziraju na manipuliranju bajtovima, kao što je AES. Iako KLEIN dijeli dobar dio

svoje strukture s AES-om, većina njegovih operacija ne barata bajtovima nego 4-bitnim

kvartetima, pa napadi bajtovima nisu učinkoviti. Doduše, moguće je ostvariti napad 4-

Page 30: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

27

bitnim kvartetima, no s obzirom na to da korak miješanja kvarteta funkcionira na temelju

množenja u , ni takvi napadi ne ugrožavaju KLEIN.

Algebarski napad

Broj aktivnih kutija za zamjenu u KLEIN-64 algoritmu koje se koriste za kriptiranje i

raspored ključeva je jednak . Pošto je poznato da se bilo

koja 4-bitna kutija za zamjenu može predstaviti s najmanje 21 kvadratnom jednadžbom u

, dobivamo da je broj kvadratnih jednadžbi jednak a broj varijabli

. Promjenom broja rundi, na sličan način se dobivaju i rezultati za KLEIN-

80 i KLEIN-96. S obzirom na ovakve rezultate, može se očekivati da će KLEIN algoritmi

biti otporni na algebarske napade.

Page 31: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

28

3 Algoritmi za kriptiranje toka podataka

3.1 DECIMv2

DECIM [20] je algoritam za kriptiranje toka podataka dizajniran za sklopovsku

implementaciju, te dio ECRYPT projekta [21]. Bazira se na ABSG mehanizmu za

neregularno izuzimanje (engl. irregular decimation) pseudoslučajnih sljedova. Općenito se

rad algoritma DECIM (kao i DECIMv2

) sastoji od generiranja binarnog niza slijeda y

pomoću posmičnog registra s linearnim povratom (engl. linear feedback shift register,

LFSR) čiji se izlaz filtrira Booleovom funkcijom. Slijed y se zatim filtrira koristeći ABSG

mehanizam. Pošto su pronađene mane u algoritmu DECIM [20], dizajnirana je nova

inačica algoritma [19] koja rješava sigurnosne slabosti prve inačice.

3.1.1 Pregled algoritma

U skladu sa specifikacijama ECRYPT projekta, DECIMv2

[19] ima tajni ključ duljine 80

bitova te javni inicijalizacijski vektor IV duljine 64 bita. Registar stanja je ostao

nepromijenjen u odnosu na prvu inačicu, te je duljine 192 bita. Generiranje slijeda ključeva

je opisano slikom 3.1. Bitovi unutarnjeg stanja posmičnog registra s linearnim povratom su

na pozicijama od 0 do 191, te se označavaju sa . Slijed linearnih povrata u

LFSR se označava sa .

Slika 3.1. Struktura algoritma DECIMv2

Page 32: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

29

f je simetrična kvadratna Booleova funkcija nad 13 varijabli. ABSG kao ulaz uzima slijed

, a kao izlaz daje slijed . Međuspremnik osigurava neprekinuti

protok slijeda ključeva. Duljina međuspremnika je 32 bita, a na izlaz propušta 1 bit za

svaka 4 pomaka LFSR-a.

Početno postavljanje stanja algoritma se sastoji od zapisivanja ključa i inicijalizacijskog

vektora u registar stanja LFSR, te zatim osvježavanja registra puta

koristeći nelinearni povrat. Postupak je opisan slikom 3.2.

3.1.2 Specifikacija

LFSR koji se koristi kao registar stanja ima sljedeći primitivni povratni polinom:

Filtar koji se koristi je Booleova funkcija 14 varijabli koju definiramo kao:

gdje je f simetrična kvadratna Booleova funkcija definirana sa:

Pozicije LFSR-a koje se koriste kao ulaz u filtar su:

pa je ulaz u ABSG u trenutku t jednak

Slika 3.2. Postupak inicijalizacije algoritma DECIMv2

Page 33: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

30

Algoritam ABSG-a za filtriranje slijeda ključeva z iz slijeda y je definiran na sljedeći

način:

Inicijalizacija LFSR-a

Ako ključ označimo s a inicijalizacijski vektor s , onda se

inicijalizacija LFSR-a obavlja na sljedeći način:

Broj mogućih početnih stanja LFSR-a je .

Nakon što se LFSR postavi na početno stanje, potrebno ga je osvježiti

puta prije nego počnemo generirati slijed ključeva. Ako izlaz funkcije f u trenutku t

označimo sa yt (slika 3.2), a sa lvt označimo linearni povrat u trenutku t, tada se zadnji bit

LFSR osvježava sa

3.1.3 Analiza sigurnosti

Za algoritam DECIMv2

vrijede ista sigurnosna svojstva kao i za prvu inačicu algoritma, s

time da je DECIMv2

dizajniran za otpornost na napade korelacijom (engl. correlation

Page 34: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

31

attack), pa je najmanja duljina LFSR-a ekvivalentnog filtriranom LFSR-u kakav se koristi

u DECIMv2

jednaka 18528.

Napad pogodi i odredi (engl. guess and determine attack)

Najbolji poznati napadi na ABSG koji filtrira jedan potpuni LFSR (engl. maximum-length

LFSR) se zasnivaju na pogađanju najčešćeg slučaja. Takvo pogađanje zahtjeva l izlaznih

bitova da bi se pogodilo 2l ulaznih bitova. Vjerojatnost točnosti pogađanja je

. Da bi

provjerio točnost pogađanja, napadač bi trebao riješiti jednadžbe početnog stanja na

pozicijama koje slijede iz pogođenih bitova slijeda y. Takav napad se može iskoristiti za

rekonstrukciju 2L uzastopnih bitova slijeda y iz L uzastopnih bitova slijeda z. Složenost

takve rekonstrukcije je

i zahtjeva

bitova slijeda z.

Ako sa označimo linearnu složenost od y, tada je najmanja duljina LFSR-a koji

generira y jednaka . Ranije opisani napad se može iskoristiti za rekonstrukciju

inicijalnog stanja LFSR-a koji generira y, pa je složenost takvog napada jednaka

za pronalazak uzastopnih bitova slijeda y.

Za DECIM, linearna složenost slijeda y je jednaka .

Napadi koji iskorištavaju dodatna fizikalna svojstva uređaja (engl. Side channel attacks)

Ovakvi napadi na generatore slijeda ključeva se zasnivaju na iskorištavanju vremena ili

potrošnje snage u odnosu na vrijednost tajnog ključa i inicijalizacijskog vektora. Mjerenje

vremena na izlasku generatora slijeda ključa je beskorisno zbog međuspremnika koji se

brine da propusnost bude ujednačena. Međutim, ako bi napadač mogao dobiti mjerenja

vremena unutrašnjeg generatora bitova, ovakvi napadi bi bili uspješni.

3.2 Grain

Grain [22] je algoritam za kriptiranje toka podataka koji je dizajniran za minimalno

zauzimanje memorije, snage i prostora prilikom sklopovske implementacije. Osnovna

brzina obrade podataka je 1 bit po taktu (engl. clock cycle) što je vrlo pogodno za male

sklopovske implementacije, ali dosta usporava algoritam kod programskih implementacija.

Zbog toga je Grain dizajniran tako da je moguće vrlo lagano povećati protok algoritma i do

16 puta dodavanjem određenih funkcionalnosti.

Page 35: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

32

3.2.1 Specifikacija

Grain se sastoji od 3 glavna građevna dijela: 80-bitni posmični registar s linearnim

povratom (engl. linear feedback shift register, LFSR), 80-bitni posmični registar s

nelinearnim povratom (NFSR) te funkcija za filtriranje (slika 3.3.). Sadržaj LFSR-a se

označava sa a sadržaj NFSR-a s . Povratni polinom LFSR-a je

primitivni polinom stupnja 80 definiran sa:

Taj polinom prevodimo u sljedeće pravilo za osvježavanje LFSR-a:

Povratni polinom NFSR-a definiramo kao:

Ovaj polinom opet prevodimo u pravilo za osvježavanje:

Ova sva registra predstavljaju stanje algoritma. Iz tog stanja se uzima po 5 bitova kao ulaz

u funkciju za filtriranje . Ova funkcija je odabrana da bude balansirana, otporna na

napade korelacijom prvog reda te je algebarskog stupnja 3. Ulazi u funkciju su i iz LFSR i

iz NFSR. Funkcija se definira kao

gdje se kao ulazne varijable i dovode redom i

. Izlaz iz funkcije za filtriranje se maskira s bitom da bi se dobilo slijed ključeva.

Page 36: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

33

3.2.2 Inicijalizacija

Označimo bitove ključa sa te bitove inicijalizacijskog vektora sa

. Prvo se bitovi ključa učitaju u NFSR , a zatim se bitovi

inicijalizacijskog vektora učitaju u LFSR . Preostali bitovi LFSR se

popunjavaju s jedinicama da bi bilo sigurno da LFSR neće biti

postavljen na sve 0. Nakon učitavanja početnog stanja, algoritam se osvježi 160 puta bez

stvaranja ključa. Umjesto toga, izlaz funkcije za filtriranje se koristi za maskiranje

ulaza u oba registra (slika 3.4).

Slika 3.3. Struktura algoritma Grain

Slika 3.4. Inicijalizacija algoritma Grain

Page 37: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

34

3.2.3 Analiza sigurnosti

Napad korelacijom (engl. correlation attack)

Zbog statističkih svojstava sljedova bitova potpunog LFSR-a (engl. maximum-length

LFSR), bitovi u LFSR-u su skoro potpuno balansirani. To ne bi bio slučaj sa NFSR, no s

obzirom na to da se funkcija povrata maskira s izlaznim bitom LFSR-a, bitovi u

NFSR su također balansirani.

S obzirom na to da je funkcija za filtriranje imuna na napad korelacijom prvog reda,

te da se izlaz iz maskira s izlaznim bitom NFSR, korelacije izlaza generatora i

LFSR-a će biti premale da bi se mogle iskoristiti u napadima.

Algebarski napad

Funkcija za filtriranje sama po sebi bi bila vrlo ranjiva na algebarske napade jer je

stupnja samo 3. No algebarskim napadom se ne može riješiti inicijalno 160-bitno stanje

cijelog generatora jer je funkcija osvježavanja NFSR nelinearna, te će kasniji bitovi NFSR

kao funkcije inicijalnog stanja imati različite ali vrlo visoke algebarske stupnjeve. Također,

s obzirom na to da kao ulaz prima jedan bit NFSR-a, te se izlaz iz također

maskira s izlazom NFSR-a, algebarski stupanj izlaznih bitova izraženih kao funkcija bitova

LFSR-a je previsok da bi algebarski napadi bili uspješni.

3.3 MICKEY 2.0

MICKEY (Mutual Irregular Clocking KEY) [23] je algoritam za kriptiranje toka podataka

namijenjen za jednostavnu sklopovsku implementaciju zadržavajući visoku razinu

sigurnosti. Druga inačica algoritma je nastala da bi se ispravili pronađeni sigurnosni

propusti algoritma.

3.3.1 Specifikacija

MICKEY 2.0 dolazi u dvije inačice, jedna sa 128 bitnim ključem i jedna s 80 bitnim

ključem. Razlikuju se (osim u veličini ključa) u veličini inicijalizacijskog vektora kojeg

primaju kao ulaz, veličini registara stanja te pozicijama bitova koji se koriste prilikom

njihova osvježavanja. Da bi se izbjeglo ponavljanje, ovdje će biti opisana samo inačica s

ključem duljine 128 bitova [23], dok se specifikacija druge inačice može pronaći u [24].

Page 38: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

35

MICKEY-128 2.0 osim ključa na ulazu prima i inicijalizacijski vektor IV,

koji može biti dugačak od 0 do 128 bitova . Jednim parom ključa

i inicijalizacijskog vektora se može generirati bitova ključa bez ugrožavanja

sigurnosnih svojstava algoritma. Moguće je generirati takvih sljedova istim ključem,

ali korištenjem različitih inicijalizacijskih vektora.

Registri stanja

Generator bitova je izgrađen od dva registra, R i S, koji predstavljaju njegovo interno

stanje. Svaki registar je dugačak 160 bitova, a označavamo ih s odnosno

.

Ako pozicije bitova u R koje se koriste prilikom osvježavanja tog registra označimo sa

tada možemo definirati operaciju na sljedeći

način:

Page 39: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

36

Za potrebe osvježavanja registra S definiramo nizove ,

, i . Tablice s njihovim vrijednostima

se nalaze u dodatku C.

Pomoću tih nizova definiramo operaciju na

sljedeći način:

Generator ključa

Osvježavanje cijelog generatora slijeda ključeva

obavljamo na sljedeći način:

Page 40: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

37

3.3.2 Inicijalizacija algoritma

Prije početka generiranja slijeda bitova ključa, potrebno je inicijalizirati registre sa

zadanim ključem i inicijalizacijskim vektorom:

Nakon inicijalizacije registara, algoritam je spreman za generiranje bitova ključa

na sljedeći način:

Ovdje se pretpostavlja da je unaprijed poznata duljina L podataka koje treba kriptirati, no

jednako tako se algoritam može upotrebljavati tako da se bitovi ključa generiraju dok god

na ulazu ima podataka koje treba kriptirati.

Page 41: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

38

3.3.3 Analiza sigurnosti

Kriptoanaliza prostora stanja

Kriptoanaliza provedena u [25] pokazuje da se algoritmu MICKEY mogu odrediti pojedini

generirani bitovi ključa ako je poznato trenutno stanje registara S i R. Ipak, s obzirom na to

da znanje pojedinih bitova ključa ne pomaže napadaču otkriti prijašnje stanje, pronalazak

nekih bitova ključa ne smanjuje složenost pronalaska cijelog ključa. Također, mogućnost

pronalaska bitova ključa ovisi o početnom stanju, kao i inačici algoritma (npr. za

MICKEY-80 je nemoguće odrediti bit ključa s vjerojatnosti 1).

U istom radu je prikazan i napad susretom u sredini (engl. Meet-in-the-middle attack) na

MICKEY, koji bitno smanjuje složenost traženja ključa. Takav napad pretpostavlja da je

moguće odrediti sadržaj registara stanja prilikom inicijalizacije algoritma nakon k

osvježavanja bitovima ključa. Tada se prvo izračuna stanje algoritma nakon osvježavanja

bitovima inicijalizacijskog vektora (koji generalno nije tajan), a zatim se za izračunato

stanje pronalazi sva moguća stanja za

bitova ključa. U drugom koraku se od prvog,

snimljenog stanja registara gradi unazadno stablo stanja (engl. backwards state tree) razine

. Zadnji korak se sastoji od pretraživanja za podudaranjima u generiranim stanjima.

3.4 TRIVIUM

TRIVIUM [26] je algoritam za kriptiranje toka podataka namijenjen za sklopovsku

implementaciju. Dizajn TRIVIUM-a je rezultat istraživanja koliko se može pojednostaviti

algoritam za kriptiranje toka podataka, bez da se žrtvuju sigurnost, brzina ili fleksibilnost

[26]. Detaljnija teoretska podloga te objašnjenje dizajna algoritma se može naći u [27].

3.4.1 Specifikacija

TRIVIUM je sinkroni algoritam za kriptiranje toka podataka dizajniran za generiranje

bitova ključa iz jednog para 80-bitnog ključa i 80-bitnog inicijalizacijskog vektora. Kao i

kod većine algoritama iz ove grupe, proces kriptiranja se sastoji od dva dijela: prvo se

interno stanje algoritma inicijalizira pomoću ključa i inicijalizacijskog vektora, a zatim se

stanje opetovano osvježava te koristi za generiranje bitova ključa.

Page 42: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

39

Generiranje bitova ključa

Interno stanje algoritma je veličine 288 bita te se označava sa . Postupak

generiranja bitova ključa se sastoji od korištenja 15 bitova stanja za osvježavanja 3 bita

stanja kao i generiranje jednog bita ključa . Cijeli postupak se može opisati sljedećim

pseudokodom:

Grafička reprezentacija generiranja bitova ključa se nalazi na slici 3.5.

Slika 3.5. Struktura algoritma TRIVIUM

Page 43: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

40

Inicijalizacija algoritma

Algoritam za generiranje bitova ključa se inicijalizira upisivanjem zadanog ključa i

inicijalizacijskog vektora u interno stanje, te postavljajući sve preostale bitove osim

i na 0. Nakon toga se stanje osvježava 4 puna ciklusa, na način sličan već

opisanom, ali bez generiranja bitova ključa. Cijela inicijalizacija je prikazana u sljedećem

pseudokodu:

3.4.2 Analiza sigurnosti

Napad korelacijom

Prilikom analize sigurnosti algoritma, mogu se razmatrati dvije vrste korelacija: korelacije

između generiranih bitova ključa i internog stanja, te međusobne korelacije generiranih

bitova ključeva.

Korelacija prve vrste je očita, jer je generirani bit ključa definiran kao

. No za razliku od algoritama baziranih na posmičnim registrima

s linearnim povratom (LFSR), interno stanje TRIVIUM-a se nelinearno osvježava, pa nije

jasno kako napadač može iskoristiti ove jednadžbe da bi rekonstruirao interno stanje

algoritma.

Korelacije druge vrste se mogu lako naći slijedeći linearne putanje kroz algoritam te

aproksimirajući izlaze svih I vrata (engl. AND gate) s nulama. Da bi se spriječilo

pronalazak korelacija među bitovima generiranog ključa, pozicije bitova stanja koje se

Page 44: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

41

koriste za generiranje bitova ključa su odabrane tako da ovakav postupak prolazi

minimalno kroz 72 I vrata, tj. ima koeficijent korelacije . Otkrivanje takve korelacije

bi zahtijevalo najmanje bitova generiranog ključa, što nije moguće ostvariti.

Ostali načini za pronalazak korelacija su istraženi u [27].

Napad pogodi i odredi (engl. guess and determine attack)

U pojedinoj iteraciji TRIVIUM-a se za osvježavanje stanja i generiranje bita ključa koristi

samo mali broj bitova stanja. Rezultat toga je podložnost algoritma napadima pogodi i

odredi. Direktan napad bi pogađao , i , ukupno

195 bitova, nakon čega bi se ostale bitove moglo izravno odrediti iz generiranog slijeda

bitova ključa.

Algebarski napad

S obzirom na to da se cijeli algoritam može opisati s vrlo rijetko popunjenim jednadžbama

niskog stupnja, TRIVIUM se čini kao vrlo pogodna meta za algebarski napad. No s

obzirom na to da se stanje ne osvježava linearno, za rješavanje tog sustava jednadžbi će biti

vrlo teško iskoristiti metode linearizacije koje se inače upotrebljavaju. Za ostale metode

rješavanja takvih sustava tek treba provjeriti prikladnost.

Page 45: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

42

4 Algoritmi za izračunavanje sažetka poruke

4.1 QUARK

QUARK [28] je jednostavan algoritam za izračunavanje sažetka poruke namijenjen

sklopovskoj implementaciji baziran na principu rada spužve [31]. Postoje 3 inačice

algoritma: U-QUARK, D-QUARK i S-QUARK. Da bi se izbjeglo ponavljanje velikog

dijela specifikacije, u nastavku će samo biti opisana inačica U-QUARK, dok se

specifikacija ostalih inačica može naći u [28].

4.1.1 Spužvasta konstrukcija

QUARK se bazira na principu rada spužve (slika 4.1.) i permutacije b bitova. Slijedeći

sustav označavanja iz [29], inačica QUARK-a se određuje s brzinom (ili veličinom dijela

poruke) r, kapacitetom c te duljinom izlaza n. Širina spužvaste konstrukcije je

veličina internog stanja algoritma koje označavamo sa . Vrijednosti

parametara za pojedinu inačicu algoritma se nalaze u tablici 4.1.

inačica Brzina (r) Kapacitet (c) Širina (b) Br. rundi (4b) Sažetak (n)

U-QUARK 8 128 136 544 136

D-QUARK 16 160 176 704 176

S-QUARK 32 224 256 1024 56

Nakon što se početno stanje postavi na unaprijed zadani b-bitni inicijalizacijski vektor,

spužvasta konstrukcija obrađuje poruku m u tri koraka:

Inicijalizacija: poruka se nadopunjuje tako da se na kraj dodaje bit '1', koji slijedi

najmanji broj bitova '0' da bi se dobila duljina poruke djeljiva s r

Faza upijanja: nad zadnjih r bitova stanja se obavlja operacija isključivo ili (XOR)

s dijelovima poruke duljine r, naizmjenično s obavljanjem permutacije bitova

stanja. Faza upijanja počinje s operacijom isključivo ili s prvim dijelom poruke, a

završava s pozivom permutacije bitova stanja

Tablica 4.1. Parametri inačica algoritma QUARK

Page 46: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

43

Faza istiskivanja: zadnjih r bitova stanja se ispisuju kao izlaz, naizmjenično s

obavljanjem permutacije bitova stanja, sve dok se ne ispiše n bitova. Istiskivanje

počinje s ispisivanjem r bitova, a i završava s ispisivanjem r bitova.

4.1.2 Permutacija

Permutacija QUARK-a je inspirirana algoritmima Grain i KATAN, a grafički prikaz

permutacije se može vidjeti na slici 4.2.

Kao što se na slici može vidjeti, interno stanje algoritma se sastoji od 3 posmična registra:

dva s nelinearnim povratom (NFSR) duljine

bitova, te jedan s linearnim povratom

(LFSR) duljine bitova. Stoga se stanje algoritma u trenutku sastoji od:

NFSR X duljine

bitova, a označavamo ga sa

NFSR Y duljine

bitova, a označavamo ga sa

LFSR L duljine bitova, a označavamo ga sa

Dobivši ulaz duljine b bitova, permutacija se provodi u 3 faze objašnjene u nastavku.

Slika 4.1. Princip rada algoritma QUARK

Slika 4.2. Permutacija algoritma QUARK

Page 47: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

44

Inicijalizacija

Kad permutacija na ulaz dobije podatke duljine b bitova, interno stanje

se inicijalizira na sljedeći način:

X se inicijalizira s prvih

ulaznih bitova:

X se inicijalizira sa zadnjih

ulaznih bitova:

L se inicijalizira na sve jedinice:

Osvježavanje stanja

Iz trenutnog stanja algoritma se iduće stanje dobiva

sljedećim transformacijama:

Funkcija h se izračunava koristeći bitove iz i , te se rezultat sprema u :

X se osvježava koristeći , funkciju f te :

Y se osvježava koristeći funkciju g te :

L se osvježava koristeći funkciju p:

Izračunavanje izlaza

Nakon inicijalizacije, interno stanje algoritma se osvježava puta. Izlaz se definira kao

krajnja vrijednost registara X i Y, koristeći poredak jednak kao kod inicijalizacije

algoritma, tj.:

4.1.3 Specifikacija

Uz razlike u parametrima koje se mogu vidjeti u tablici 4.1., pojedine inačice algoritma se

razlikuju i u funkcijama osvježavanja registara stanja. Ovdje će biti specificirane samo

Page 48: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

45

funkcije osvježavanja za inačicu U-QUARK, dok se specifikacija ostalih inačica može naći

u [28].

Funkcija p

Registar L je kod svih inačica jednake duljine (jer je kod svi inačica ), pa je i

funkcija p jednaka za sve inačice:

Funkcija f

Za registar X duljine 68 bita, funkciju f definiramo kao:

Funkcija g

Za registar Y duljine 68 bita, funkciju g definiramo kao:

Funkcija h

Za registre X i Y duljine 68 bita, te registar L duljine 10 bitova, funkciju h definiramo kao:

4.1.4 Analiza sigurnosti

QUARK se zasniva na spužvastoj konstrukciji, za koje je dokazano svojstvo

neraspoznavanja (engl. indifferentiability) [29]. Dokaz osigurava očekivanu složenost

svakog napada raspoznavanja (engl. differentiating attack) najmanje

, neovisno o

Page 49: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

46

duljini sažetka. To pokriva na primjer napade višestruke kolizije (engl. multicollision

attack) ili napade uzgajanjem (engl. herding attack) [30].

Otpornost na kolizije (engl. collision resistance)

Kolizije se za spužvaste konstrukcije mogu pronaći tražeći kolizije ili na n-bitnom izlazu

ili na c-bitnom internom stanju (zahvaljujući mogućnosti odabira dva prikladna komada

podataka duljine r bitova za upotpunjavanje kolizije). Prema tome, otpornost na kolizije

spužvastih konstrukcija je

. Kod svih inačica algoritma QUARK je

pa je njegova otpornost na kolizije jednaka

.

Otpornost na izračunavanje poruke koja daje isti sažetak (engl. second preimage

resistance)

Generički napad pronalaska poruke koja daje isti sažetak kod algoritma QUARK je sličan

napadu susretom u sredini (engl. Meet-in-the-middle attack), koji traži koliziju internog

stanja, počevši od početnog stanja (unaprijed) i od kasnijeg stanja koje vodi do željenog

sažetka (unatrag). Za vjerojatnost uspjeha od potrebno je približno

pokušaja u svakom smjeru, pošto se r bitova stanja može kontrolirati birajući prikladan dio

poruke. To zahtjeva više od

evaluacija permutacije QUARK-a, što je jednako

osvježavanja stanja permutacije, tj. i osvježavanja za U-, D- i S-

QUARK.

Također treba primijetiti da se ovakav napad ne može iskoristiti za pronalazak poruke koja

daje isti sažetak kod QUARK-a jer se ne može odrediti dva konačna stanja koja rezultiraju

jednakim sažetkom zbog spužvaste konstrukcije (točnije faze istiskivanja).

Otpornost na izračunavanje originala (engl. preimage resistance)

Prvotni dokaz sigurnosti spužvastih konstrukcija je dao granicu od

za

otpornost na izračunavanje poruke koja daje isti sažetak. Unatoč tome, nije poznat nijedan

napad na spužvaste funkcije sa složenošću

. Očekivano opterećenje potrebno za

izračunavanje originala je prvo procijenjeno na

[31], a kasnije dokazano da je

[32]. Ta granica otpornosti na izračunavanje originala je daljnje poboljšana

na

[33]. S obzirom na to da kod QUARK-a

vrijedi , tada slijedi da je otpornost na izračunavanje originala jednaka

. Generički napad izračuna originala se sastoji od traženja c bitova

internog stanja koji se istisnu u ciljani sažetak, te zatim provođenja napada susretom

Page 50: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

47

u sredini za spajanje početnog i konačnog stanja, kao i kod napada pronalaska poruke koja

daje isti sažetak.

4.2 SPONGENT

SPONGENT [34] je algoritam za izračunavanje sažetka poruke baziran na principu rada

spužve, s permutacijama sličnima PRESENT-u. Ovisno o inačici, veličina sažetka koji se

algoritmom izračunava može biti 88, 128, 160, 224 i 256 bitova.

4.2.1 Struktura algoritma

Spužvasta konstrukcija

SPONGENT je baziran na spužvastoj konstrukciji – jednostavna iterativna struktura koja

uzima ulaze različitih duljina te izračunava izlaz unaprijed određene duljine pomoću

primjenjivanja permutacije koja se provodi nad internim stanjem veličine b bitova.

(slika 4.3.) Veličina unutarnjeg stanja se još naziva i širina algoritma, gdje

s r označavano brzinu, a s c kapacitet.

Algoritam se izvršava u 3 faze izvođenja

Inicijalizacija: poruka se nadopunjuje tako da se na kraj dodaje bit '1', koji slijedi

najmanji broj bitova '0' da bi se dobila duljina poruke djeljiva s r

Faza upijanja: nad zadnjih r bitova stanja se obavlja operacija isključivo ili (XOR)

s dijelovima poruke duljine r, naizmjenično s obavljanjem permutacije bitova

stanja. Faza upijanja počinje s operacijom isključivo ili s prvim dijelom poruke, a

završava s pozivom permutacije bitova stanja

Slika 4.3. Princip rada algoritma SPONGENT

Page 51: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

48

Faza istiskivanja: zadnjih r bitova stanja se ispisuju kao izlaz, naizmjenično s

obavljanjem permutacije bitova stanja, sve dok se ne ispiše n bitova. Istiskivanje

počinje s ispisivanjem r bitova, a i završava s ispisivanjem r bitova.

Prije početka izvođenja SPONGENT-a, internom stanju se svi bitovi postavljaju na 0.

Parametri

Algoritam SPONGENT postoji u 5 inačica, čiji parametri se nalaze u sljedećoj tablici:

n b c r R broj rundi

SPONGENT-88 88 88 80 8 45

SPONGENT-128 128 136 128 8 70

SPONGENT-160 160 176 160 16 90

SPONGENT-224 224 240 224 16 120

SPONGENT-256 256 272 256 16 140

Permutacija

SPONGENT koristi permutaciju koju definiramo sa

. Permutacija se

provodi R rundi nad ulaznim stanjem duljine b bitova, a može se opisati sljedećim

pseudokodom:

gdje i opisuju kako osvježavamo stanje.

je stanje posmičnog registra s linearnim povratom (LFSR) ovisnog o b u

trenutku i, a predstavlja konstantu runde i. Dodaje se krajnje desnim bitovima stanja.

predsljavlja s bitovima u obrnutom redoslijedu. Dodaje se

krajnje lijevim bitovima stanja.

Tablica 4.2. Parametri inačica algoritma SPONGENT

Page 52: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

49

predstavlja primjenjivanje kutije za zamjenu s 4-bitnim ulazom i 4-

bitnim izlazom puta paralelno svaku rundu. Korištena kutija za zamjenu zadovoljava

kriterije algoritma PRESENT:

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S[x] E D B 0 2 1 4 F 7 A 8 5 9 C 3 6

je proširenje permutacije bitova korištene u PRESENT-u. Bit j

stanja se pomiče na poziciju gdje je

je jedan od tri LFSR-a duljine bitova. LFSR se osvježava svaki put

kad se njegovo stanje upotrijebi, te je njegovo krajnje stanje sve jedinice. Kod

SPONGENT-88 inačice LFSR je dugačak 6 bita, početno stanje mu je ‘000101’ a polinom

povrata . 7-bitni LFSR koji se koristi kod inačica SPONGENT-128,

SPONGENT-160 i SPONGENT-224 ima polinom povrata jednak , a početna

stanja su redom ‘1111010’, ‘1000101’ i ‘0000001’. SPONGENT-256 koristi LFSR duljine

8 bitova, s početnim stanjem ‘10011110’ i polinomom .

4.2.2 Analiza sigurnosti

S obzirom na to da je SPONGENT baziran na spužvastoj konstrukciji, dijeli jednaku

otpornost na izračunavanje originala, izračunavanje poruke koja daje isti sažetak te

otpornost na kolizije s drugim algoritmima spužvaste konstrukcije [28], [29]. Analiza

otpornosti spužvastih konstrukcija je opisana u analizi sigurnosti algoritma QUARK.

Otpornost na diferencijalnu kriptoanalizu

S obzirom na sličnost SPONGENT-a s algoritmom za kriptiranje PRESENT, donju granicu

od 10 aktivnih kutija za zamjenu u SPONGENT-u dobivamo iz teorema čiji je dokaz

moguće naći u dokumentaciji PRESENT-a (poglavlje 2.1.4., [4]). Diferencijalne

karakteristike po pojedinim inačicama algoritma i broju aktivnih kutija za zamjenu (AKZ)

se mogu vidjeti u sljedećoj tablici:

Tablica 4.3. SPONGENT kutija za zamjenu bitova

Page 53: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

50

broj

rundi

SPONGENT-88 SPONGENT-128 SPONGENT-160 SPONGENT-224 SPONGENT-256

AKZ Vjer. AKZ Vjer. AKZ Vjer. AKZ Vjer. AKZ Vjer.

5 10 10 10 10 10

10 20 29 20 20 -- --

15 30 -- -- 30 30 -- --

4.3 PHOTON

PHOTON [33] je algoritam za izračun sažetka poruke čija se struktura temelji na

spužvastoj konstrukciji s permutacijama sličnima rundama algoritma AES. Namijenjen je

primjeni u ugrađenim sustavima.

4.3.1 Struktura algoritma

Spužvasta konstrukcija

S obzirom na to da je PHOTON baziran na spužvastoj konstrukciji, algoritam se provodi u

nekoliko koraka specifičnih za takve algoritme.

Prvi korak je inicijalizacija, u kojoj se na kraj podataka dodaje bit '1', te zatim onoliko

bitova '0' koliko je potrebno da bi duljina podataka postala višekratnik brzine upijanja r.

Time se ulazni podaci m formiraju u oblik . U istom koraku se interno stanje S

Tablica 4.4. Otpornost na diferencijalnu kriptoanalizu algoritma SPONGENT

Slika 4.4. Princip rada algoritma PHOTON

Page 54: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

51

veličine t postavlja koristeći inicijalizacijski vektor ,

gdje predstavlja ulančavanje, a sve vrijednosti su predstavljene s 8 bita.

U drugom koraku se vrši ''upijanje'' podataka u algoritam. To se obavlja naizmjeničnom

operacijom isključivo ili nad krajnje lijevim bitovima stanja i dijelom poruke , te

provođenjem permutacije P (slika 4.4.).

Zadnji korak obavlja generiranje izlaza ''istiskanjem'' podataka iz algoritma. Naizmjenično

ispisivanje r' krajnje lijevih bitova internog stanja i provođenje permutacije se obavlja dok

se ne ispiše potrebnih n bitova. Za razliku od drugih spužvastih konstrukcija, PHOTON

nema nužno jednaku brzinu upijanja i istiskivanja, nego se brzina istiskivanja može

mijenjati ovisno o tome da li je potrebna veća brzina izvođenja ili veća sigurnost.

Permutacija

Permutacija P koja se provodi u algoritmu PHOTON se sastoji od 4 koraka koji se

obavljaju u svakoj rundi algoritma AES [35], uz manje razlike u korištenim elementima

(slika 4.5.). Svaki od tih koraka se ponavljaju broj rundi nad podacima u obliku

matrice elemenata, od kojih je svaki duljine s bitova.

dodajKonstante – konstante koje se dodaju internom stanju su odabrane tako da izračuni

budu različiti u svakoj rundi, te da se razbije klasična simetrija između stupaca stanja koja

se pojavljuje kod algoritama baziranih na AES-u. Da bi se poboljšale performanse, samo se

prvom stupcu dodaju konstante.

zamijeniZnakove – izbor kutija za zamjenu je većinom motiviran njihovom prikladnošću

za sklopovsku implementaciju. Zbog toga PHOTON koristi istu 4-bitnu kutiju za zamjenu

kakva se koristi u algoritmu PRESENT, osim za inačicu s najvećom razinom sigurnosti

(PHOTON-256/32/32) koja koristi istu 8-bitnu kutiju za zamjenu kakva se koristi u

algoritmu AES.

Slika 4.5. Permutacija algoritma PHOTON

Page 55: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

52

posmakniRedove – red i stanja se posmiče za i pozicija u lijevo.

višestrukoPomiješajStupce – matrica koja se u AES-u koristi za obavljanje funkcije

PomiješajStupce je kružna matrica s koeficijentima malih Hammingovih težina, pa njena

sklopovska implementacija nije dovoljno kompaktna. Da bi se taj problem riješio,

konstruirana je nova matrica, koja osvježava zadnji element vektora stupaca s linearnom

kombinacijom svih elemenata vektora stupaca, a zatim rotira vektor za jedno mjesto prema

gore. Operacija višestrukoPomiješajStupce se sastoji od d primjena takve matrice na ulazni

vektor. Formalnije, ako ulazni vektor označimo sa a izlazni vektor sa

, tada je gdje je A matrica dimenzija oblika:

Takvu matricu kraće označavamo sa .

4.3.2 Specifikacija

Inačice algoritma PHOTON se definiraju s veličinom sažetka n, brzinom ''upijanja''

podataka r te brzinom ''istiskivanja'' podataka r'. Veličina internog stanja algoritma

ovisi o veličini sažetka, a može poprimiti jednu od samo 5 vrijednosti: 100,

144, 196, 256 i 288. Prema tome, potrebno je definirati 5 vrsta permutacija, po jednu za

svaku veličinu internog stanja.

Da bi se omogućilo što širi spektar primjene algoritma PHOTON, predloženo je 5 inačica,

po jedna za svaku veličinu internog stanja: PHOTON-80/20/16, PHOTON-128/16/16,

PHOTON-160/36/36, PHOTON-224/32/32 i PHOTON-256/32/32, a permutacije koje

koriste su redom i .

Permutacija

Interno stanje permutacije od rundi se predstavlja kao matrica s elementima

veličine s bitova. Parametri pojedine vrste permutacije se mogu vidjeti u tablici 4.5.

Page 56: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

53

t d s ired. polinom koeficijenti

100 5 4 12

144 6 4 12

196 7 4 12

256 8 4 12

288 6 8 12

dodajKonstante – na početku svake runde v, svakom elementu prvog stupca matrice

stanja sustava dodajemo konstantu runde a zatim internu konstantu .

Sveukupno, izvršavamo za sve .

Konstante runde definiramo kao . Interne

konstante ovise o dimenzijama matrice d i poziciji reda i, a mogu se naći u tablici 4.5.

zamjeniZnakove – ova operacija primjenjuje kutije za zamjenu elementima matrice

stanja. Inačica PHOTON-256/32/32 koristi 8-bitnu AES kutiju za zamjenu, dok ostale

inačice koriste 4-bitnu PRESENT kutiju za zamjenu. Tablice korištenih kutija za zamjenu

mogu se vidjeti u dodatku D.

višestrukoPomiješajStupce – ova operacija se primjenjuje na svaki stupac internog stanja

neovisno o ostalim stupcima. Na svaki stupac j primjenjujemo

matricu d puta, gdje je :

Koeficijenti se mogu vidjeti u tablici 4.5, kao i ireducibilni polinom korišten

prilikom množenja.

4.3.3 Analiza sigurnosti

S obzirom na spužvastu konstrukciju algoritma, PHOTON je jednako otporan na

standardne mjere sigurnosti algoritama za izračunavanje sažetka (otpornost na

izračunavanje originala, izračunavanje poruke koja daje isti sažetak te otpornost na

kolizije) kao i ostali algoritmi sa spužvastom konstrukcijom kao što su QUARK i

SPONGENT.

Tablica 4.5. Parametri inačica algoritma PHOTON

Page 57: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

54

Diferencijalna/linearna kriptoanaliza

PHOTON dijeli neke elemente svoje strukture s AES-om, pa se vrlo lako mogu iskoristiti

sva istraživanja AES-a da bi se izračunala granica vjerojatnosti najbolje moguće

diferencijalne putanje (u kojoj su određene sve razlike na ulazima i izlazima svih rundi) ili

čak i najbolja diferencijalna vjerojatnost (gdje su određene samo razlike ulaza i izlaza).

Koristeći metode opisane u [35] lako se može doći do granice od minimalno

aktivnih kutija za zamjenu za bilo koju diferencijalnu putanju (engl. differential path).

Pošto je najbolja diferencijalna vjerojatnost PRESENT-ove kutije za zamjenu jednaka ,

a za AES-ovu kutiju za zamjenu , možemo zaključiti da vjerojatnost najbolje

diferencijalne putanje četiri runde interne permutacije PHOTON-a nije veća od

kada je , odnosno kada je .

Dualnost između linearnih i diferencijalnih napada nam omogućuje da iste pristupe

primijenimo i za izračunavanje granice najbolje linearne aproksimacije. U tablici 4.6. su

prikazane gornje granice vjerojatnosti najbolje diferencijalne putanje, najbolje

diferencijalne vjerojatnosti, najbolje linearne aproksimacije i najbolje linearne omotnice

(engl. linear hull).

4

rnd full

4

rnd full

4

rnd full

4

rnd full

4

rnd full

diferencijalna putanja

diferencijalna

vjerojatnost

linearna aproksimacija

linearna omotnica

Dodatna sigurnost PHOTON-a dolazi i od činjenice da su interne permutacije fiksne i ne

omogućavaju unos ključa. To donekle smanjuje njihovu efikasnost, no zbog toga je

algoritam otporan na napade na raspored ključeva koji su osnova teoretskih napada na

AES-192 i AES-256 [36], [37].

Tablica 4.6. Gornje granice vjerojatnosti kriptoanalize algoritma PHOTON

Page 58: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

55

4.4 DM-PRESENT

DM-PRESENT [38] je algoritam za izračunavanje sažetka poruke koji se sastoji od

uzastopnog kriptiranja ulančane varijable (engl. chaining variable) algoritmom

PRESENT, gdje se kao ključevi pojedinog kriptiranja uzimaju dijelovi poruke od koje se

izračunava sažetak. Ovaj način rada se naziva Davies-Meyer način rada a formuliramo ga

na sljedeći način:

Grafički prikaz ovakvog načina izračunavanja sažetka je prikazan slikom 4.6.

Slika 4.6. Princip rada algoritma DM-PRESENT

Page 59: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

56

5 Usporedba algoritama

5.1 Pregled usporedbi sklopovskih implementacija

Algoritmi opisani u ovom radu su namijenjeni upotrebi u ugrađenim računalnim sustavima,

kod kojih su raspoloživi resursi (procesor, memorija) vrlo ograničeni. Samim time, ovi

algoritmi su osmišljeni za što jednostavniju sklopovsku implementaciju, te ih se najčešće

uspoređuje prema performansama njihovih sklopovskih implementacija. U okviru ovog

rada se nije provodila usporedba sklopovskih implementacija, ali su za referencu u

sljedećim tablicama skupljeni podaci iz drugih radova koji su vršili takvu usporedbu

[13][18][34][39][40].

Veličina ključa

(bitova)

Veličina bloka

(bitova)

Veličina

implementacije

(GE)

Propusnost (engl.

throughput) pri

100 KHz (kb/s)

PRESENT-80 64 80 1570 200

KATAN32 80 32 802 12.5

KATAN48 80 48 927 18.8

KATAN64 80 64 1054 25.1

KTANTAN32 80 32 462 12.5

KTANTAN48 80 48 588 18.8

KTANTAN64 80 64 688 25.1

CLEFIA 128 128 4993 355.56

KLEIN-64 64 64 2475 ---

KLEIN-80 80 64 2629 ---

KLEIN-96 96 64 2769 ---

Veličina ključa

(bitova)

Veličina

implementacije (GE)

Najveća brzina

rada (engl. clock

frequency) (MHz)

Grain 80 1294 724.6

MICKEY128 2.0 128 5039 413.2

TRIVIUM 80 2599 358.4

Tablica 5.1. Usporedba sklopovskih implementacija algoritama za kriptiranje blokova podataka

Tablica 5.2. Usporedba sklopovskih implementacija algoritama za kriptiranje toka podataka

Page 60: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

57

Veličina sažetka

(bitova)

Veličina implementacije

(GE)

Propusnost (engl.

throughput) (kb/s)

U-QUARK 136 2392 11.76

D-QUARK 176 2819 18.18

S-QUARK 256 4640 50

SPONGENT-88 88 1127 17.78

SPONGENT-128 128 1687 11.43

SPONGENT-160 160 2190 17.78

SPONGENT-224 224 2903 13.33

SPONGENT-256 256 3281 11.43

PHOTON-80 80 1168 12.15

DM-PRESENT-80 64 2213 242.42

DM-PRESENT-128 64 2530 387.88

5.2 Usporedba programskih implementacija

Algoritmi opisani u ovom radu su implementirani u programskom jeziku C. Algoritmima

je zatim testirana brzina rada, pomoću koje je izračunata propusnost. Programi su pokretani

na računalu s procesorom Intel Pentium 4 1.8 GHz. Potrošnja memorije je dobivena

računajući ukupno zauzeće memorije korištenih varijabli, jer su se sve druge metode

pokazale nepreciznima.

Memorija na disku (kb) Zauzeta memorija (b) Propusnost (kb/s)

PRESENT-80 14 337 48.43

PRESENT-128 13 355 48.21

KATAN32 14 150 73.97

KATAN48 14 156 35.06

KATAN64 14 162 25.84

KTANTAN32 14 87 40.45

KTANTAN48 14 94 27.69

KTANTAN64 14 100 23.53

CLEFIA-128 13 289 225

CLEFIA-192 13 393 180

CLEFIA-256 17 433 152.11

KLEIN-64 14 85 200

KLEIN-80 13 91 147.95

KLEIN-96 13 98 116.13

Tablica 5.3. Usporedba sklopovskih implementacija algoritama za izračun sažetka poruke

Tablica 5.4. Usporedba programskih implementacija algoritama za kriptiranje blokova podataka

Page 61: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

58

Memorija na disku (kb) Zauzeta memorija (b) Propusnost (kb/s)

DECIMv2

13 57 18.78

Grain 13 51 127.06

MICKEY128 2.0 14 272 18

TRIVIUM 13 68 76.6

Memorija na disku (kb) Zauzeta memorija (b) Propusnost (kb/s)

U-QUARK 13 50 1.96

D-QUARK 13 64 2.49

S-QUARK 13 86 2.54

SPONGENT-88 13 54 3.28

SPONGENT-128 13 66 1.42

SPONGENT-160 13 79 1.66

SPONGENT-224 13 95 0.92

SPONGENT-256 13 103 0.7

PHOTON-80 14 138 12.27

DM-PRESENT-80 14 341 42.35

DM-PRESENT128 14 365 65.85

U vrijeme izvođenja svakog algoritma je uračunato i vrijeme učitavanja te ispisivanja

podataka. Mjereno je potrebno vrijeme da se obradi određena količina podataka,

uključujući i potrebna generiranja potključeva kod algoritama koji ih koriste.

Najveće razlike koje se mogu vidjeti generalno između algoritama za kriptiranje toka

podataka i algoritama za kriptiranje blokova podataka, nastaju zbog razlike u količini

podataka koje odjednom obrađuju. Dok algoritmi za kriptiranje blokova podataka barataju

s bajtovima ili riječima, algoritmi za kriptiranje toka podataka obrađuju bit po bit. Takva

konstrukcija im omogućuje jednostavniju i manju sklopovsku implementaciju, kod koje je

razlika u brzini manja jer su algoritmi koji barataju riječima ili bajtovima dosta usporeni.

Ista razlika se može primijetiti i kod algoritama za izračun sažetka poruke, gdje je

algoritam DM-PRESENT, koji koristi kriptiranje algoritma PRESENT (koji barata s

bajtovima podataka), puno brži u odnosu na ostale algoritme za izračun sažetka, koji

barataju malim blokovima bitova.

Zanimljivo je primijetiti i da kod KATAN/KTANTAN algoritama brzina opada s

povećanjem bloka podatka koji se obrađuje. To je uzrokovano činjenicom da inačice koje

Tablica 5.5. Usporedba programskih implementacija algoritama za kriptiranje toka podataka

Tablica 5.6. Usporedba programskih implementacija algoritama za izračun sažetka poruke

Page 62: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

59

obrađuju veće blokove podatka također provode i više iteracija, koje opet traju dulje zbog

većih registara stanja koje osvježavaju. Slična situacija je i kod algoritama KLEIN i

CLEFIA, no kod njih je razlika samo u većem broju iteracija.

Generalno se može primijetiti da povećanje sigurnosti (veći ključ, veći broj iteracija i sl.)

povlači i sporije izvođenje. Iznimka ovog ''pravila'' je PRESENT, kod kojeg inačica s

većim ključem ima jednak broj iteracija kao i inačica s manjim, dok je generiranje

potključeva neznatno produljeno, pa nema veće razlike u vremenu izvođenja.

Uspoređujući zauzeće memorije prilikom izvođenja, jasno se može vidjeti pravilo da

inačice algoritama s povećanom razinom sigurnosti ili većim blokovima podataka koje

obrađuju odjednom zauzimaju više memorije nego slabije inačice, zbog potrebe spremanja

većeg ključa ili bloka podataka za obradu. U pravilu najmanje memorije zauzimaju

algoritmi za kriptiranje toka podataka, koji i kod sklopovske implementacije zauzimaju

manje resursa i prostora. Algoritmi za izračun sažetka poruke imaju nešto veće zauzeće

memorije, no ipak puno manje nego algoritmi za kriptiranje blokova podataka. Tu su

izuzetak inačice algoritma DM-PRESENT u sebi sadrže algoritam PRESENT. Od

algoritama za kriptiranje blokova podataka, PRESENT zauzima najviše memorije (osim

CLEFIA-256 inačice koja koristi dvostruko veći ključ). Uzrok toga je generiranje

potključeva, koje se obavlja jednom na početku izvođenja, te je potrebno sve potključeve

spremiti u memoriju. Uz modifikaciju algoritma koja bi omogućavala generiranje

potključeva svaku rundu, možda bi se moglo smanjiti zauzeće memorije prilikom

kriptiranja.

Page 63: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

60

6 Zaključak

Ugradbeni računalni sustavi su specifični po ograničenjima resursa raspoloživih za izvedbu

programa na njima. To uključuje memorijska, procesorska pa i ograničenja prostora za

sklopovsku implementaciju. No, s obzirom na povećano korištenje takvih sustava, javila se

potreba za kriptografskim algoritmima koji bi mogli funkcionirati u takvom okruženju.

Kriptografske algoritme prilagođene ograničenjima u ugrađenim sustavima dijelimo na 3

grupe: algoritme za kriptiranje blokova podataka, algoritme za kriptiranje toka podataka i

algoritme za izračun sažetka poruke. U ovom radu je opisan rad nekoliko algoritama iz

svake grupe, točnije: PRESENT, CLEFIA, KATAN/KTANTAN i KLEIN iz grupe

algoritama za kriptiranje blokova podataka, Grain, TRIVIUN, MICKEY 2.0 i DECIMv2

iz

grupe algoritama za kriptiranje toka podataka te PHOTON, SPONGENT, QUARK i DM-

PRESENT iz grupe algoritama za izračun sažetka poruke.

Svaki od ovih algoritama je u okviru rada programski implementiran u barem jednoj

inačici, te je provedeno mjerenje izvođenja algoritama i usporedba dobivenih rezultata. Uz

rezultate usporedbe programske implementacije ponuđen je pregled usporedbi sklopovskih

implementacija ostvarenih u okviru drugih radova.

Page 64: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

61

Literatura

[1] A. Poschmann, G. Leander, K. Schramm i C. Paar, A Family of Light-

WeightBlock Ciphers Based on DES Suited for RFID Applications, Proceedings

of FSE 2007, LNCS, Springer-Verlag

[2] I. Verbauwhede, F. Hoornaert, J. Vandewalle i H. De Man, Security and

Performance Optimization of a New DES Data Encryption Chip, IEEE Journal

of Solid-State Circuits, Svezak 23, Broj 3, stranice 647–656, godina 1988.

[3] M. Feldhofer, S. Dominikus i J.Wolkerstorfer, Strong Authentication for RFID

Systems Using the AES algorithm, Proceedings of CHES 2004, LNCS, svezak

3156, stranice 357–370, Springer Verlag, godina 2004.

[4] A. Bogdanov, G. Leander, L.R. Knudsen, C. Paar, A. Poschmann, M.J.B.

Robshaw, Y. Seurin i C. Vikkelsoe, PRESENT - An Ultra-Lightweight Block

Cipher, Cryptographic Hardware and Embedded Systems — CHES 2007,

LNCS, svezak 4727, stranice 450–466. Springer-Verlag, godina 2007.

[5] N. Courtois, A. Klimov, J. Patarin i A. Shamir, Efficient Algorithms for Solving

Overdefined Systems of Multivariate Polynomial Equations, Proceedings of

Eurocrypt 2000, LNCS, svezak 1807, stranice 392–407, Springer-Verlag, godina

2000.

[6] N. Courtois i J. Pieprzyk, Cryptanalysis of Block Ciphers with Overdefined

Systems of Equations, Proceedings of Asiacrypt 2002, LNCS, svezak 2501,

stranice 267–287, Springer-Verlag, godina 2002.

[7] C. Cid i G. Leurent, An Analysis of the XSL Algorithm, Proceedings of Asiacrypt

2005, LNCS, svezak 3788, stranice 333–352, Springer-Verlag, godina 2005.

[8] C. Diem, The XL-Algorithm and a Conjecture from Commutative Algebra,

Proceedings of Asiacrypt 2004, LNCS, svezak 3329, stranice 323–337,

Springer-Verlag, godina 2004.

[9] MAGMA v2.12. Computational Algebra Group, School of Mathematics and

Statistics, University of Sydney, 2005, http://magma.maths.usyd.edu.au

Page 65: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

62

[10] C. Cid, S. Murphy i M.J.B. Robshaw, Small Scale Variants of the AES,

Proceedings of FSE 2005, LNCS, svezak 3557, stranice 145–162, Springer-

Verlag, godina 2005.

[11] E. Biham, New Types of Cryptanalytic Attacks Using Related Keys, Proceedings

of Eurocrypt ’93, LNCS, svezak 765, stranice 398–409, Springer-Verlag, godina

1994.

[12] A. Biryukov i D. Wagner, Advanced slide attacks, Proceedings of Eurocrypt

2000, LNCS, svezak 1807, stranice 589–606, Springer-Verlag, godina 2000.

[13] C. De Cannière, O. Dunkelman i M. Kneževic. Katan and ktantan - a family of

small and efficient hardware-oriented block ciphers. Cryptographic Hardware

and Embedded Systems — CHES 2009, LNCS, svezak 5747, stranice 272-288.

Springer-Verlag, godina 2009.

[14] T. Shirai, K. Shibutani, T. Akishita, S. Moriai i T. Iwata, The 128-bit

blockcipher CLEFIA, Proceedings of Fast Software Encryption - FSE'07,

LNCS, svezak 4593, stranice 181-195, Springer-Verlag, godina 2007.

[15] The 128-bit blockcipher CLEFIA: Design rationale, Sony Corporation,

http://www.sony.net/Products/cryptography/clefia/download/data/clefia-design-

1.0.pdf, godina 2007.

[16] The 128-bit blockcipher CLEFIA: Algorithm speciffication, Sony Corporation,

http://www.sony.net/Products/cryptography/clefia/download/data/clefia-spec-

1.0.pdf, godina 2007.

[17] The 128-bit blockcipher CLEFIA: Security and performance evaluations,

http://www.sony.net/Products/cryptography/clefia/download/data/clefia-eval-

1.0.pdf, Sony Corporation, godina 2007.

[18] Z. Gong, S. Nikova i Y. W. Law, KLEIN: A New Family of Lightweight Block

Ciphers, RFIDSec 2011, LNCS, svezak 7055, stranice 1-18, Springer-Verlag,

godina 2012.

[19] C. Berbain, O. Billet, A. Canteaut, N. Courtois, B. Debraize, H. Gilbert, L.

Goubin, A. Gouget, L. Granboulan, C. Lauradoux, M. Minier, T. Pornin i H.

Sibert, DECIMv2

, ECRYPT stream cipher project,

http://www.ecrypt.eu.org/stream/p3ciphers/decim/decimp3_UpdatedDoc.pdf

Page 66: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

63

[20] C. Berbain, O. Billet, A. Canteaut, N. Courtois, B. Debraize, H. Gilbert, L.

Goubin, A. Gouget, L. Granboulan, C. Lauradoux, M. Minier, T. Pornin i H.

Sibert, Decim: A new Stream Cipher for Hardware applications, ECRYPT

Stream Cipher Project, http://www.ecrypt.eu.org/stream/decim.html

[21] eStream, Stream cipher project of the European Network of Excellence in

Cryptology ECRYPT, http://www.ecrypt.eu.org/stream/

[22] M. Hell, T. Johansson i W. Meier, Grain – a stream cipher for constrained

environments, ECRYPT stream cipher project,

http://www.ecrypt.eu.org/stream/grain.html

[23] S. Babbage i M Dodd, The stream cipher MICKEY-128 2.0,

http://www.ecrypt.eu.org/stream/p3ciphers/mickey/mickey128_p3.pdf, ECRYPT

stream cipher project

[24] S. Babbage i M Dodd, The stream cipher MICKEY 2.0, ECRYPT stream cipher

project, http://www.ecrypt.eu.org/stream/p3ciphers/mickey/mickey_p3.pdf

[25] T. Helleseth, C. J.A. Jansen, O. Kazymyrov i A. Kholosha, State Space

Cryptanalysis of The MICKEY Cipher, Information Theory and Applications

Workshop 2013., stranice 1-10, godina 2013.

[26] C. De Cannière i B. Preneel, Trivium: Specifications, ECRYPT stream cipher

project, http://www.ecrypt.eu.org/stream/p3ciphers/trivium/trivium_p3.pdf

[27] C. De Cannière and B. Preneel, Trivium - A Stream Cipher Construction

Inspired by Block Cipher Design Principles, Information Security – 9th

International Conference ISC 2006, stranice 171-186, Springer-Verlag, godina

2006.

[28] J.P. Aumasson, L. Henzen, W. Meier i M. Naya-Plasencia, Quark: A

Lightweight Hash, Cryptographic Hardware and Embedded Systems — CHES

2010, LNCS, svezak 6225, stranice 1-15, Springer-Verlag, godina 2010.

[29] G. Bertoni, J. Daemen, M. Peeters i G. Van Assche, On the indifferentiability of

the sponge construction, EUROCRYPT, LNCS, svezak 4965, stranice 181-197,

Springer-Verlag, godina 2008.

Page 67: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

64

[30] J. Kelsey i T. Kohno, Herding hash functions and the Nostradamus attack,

EUROCRYPT, LNCS, svezak 4004, stranice 183-200, Springer-Verlag, godina

2006.

[31] G. Bertoni, J. Daemen, M. Peeters i G. Van Assche, Sponge functions,

http://sponge.noekeon.org/SpongeFunctions.pdf

[32] G. Bertoni, J. Daemen, M. Peeters i G. Van Assche, Sponge-based pseudo-

random number generators, Cryptographic Hardware and Embedded Systems

— CHES 2010, LNCS, svezak 6225, stranice 33-47, Springer-Verlag, godina

2010.

[33] J. Guo, T. Peyrin i A. Poschmann, The PHOTON family of lightweight hash

functions, https://sites.google.com/site/photonhashfunction/, godina 2011.

[34] A. Bogdanov, M. Knežević, G. Leander, D. Toz, K. Varici i I. Verbauwhede,

SPONGENT: The Design Space of Lightweight Cryptographic Hashing, IEEE

Transactions on Computers, godina 2012.

[35] J. Daemen i V. Rijmen, The Design of Rijndael: AES - The Advanced Encryption

Standard, Springer-Verlag, godina 2002.

[36] A. Biryukov, D. Khovratovich i I. Nikolic, Distinguisher and Related-Key

Attack on the Full AES-256, CRYPTO, LNCS, svezak 5677, stranice 231-249.

Springer-Verlag, godina 2009.

[37] A. Biryukov i D. Khovratovich, Related-Key Cryptanalysis of the Full AES-192

and AES-256, Advances in Cryptology - ASIACRYPT 2009, LNCS, svezak 5912,

stranice 1-18, Springer-Verlag, godina 2009.

[38] A. Y. Poschmann, Lightweight Cryptography: Cryptographic Engineering for a

Pervasive World, doktorska disertacija, Faculty of Electrical Engineering and

Information Technology, Sveučilište Ruhr, Bochum, Njemačka, godina 2009.

[39] T. Good i M. Benaissa, Hardware results for selected stream cipher candidates,

ECRYPT stream cipher project, godina 2007.,

http://www.ecrypt.eu.org/stream/papersdir/2007/023.pdf

[40] T. Eisenbarth, C Paar, A. Poschmann, S. Kumar i L. Uhsadel, A survey of

Lightweight-Cryptography implementations, Design & Test of Computers, IEEE,

svezak 24, broj 6, stranice 522-533, godina 2007.

Page 68: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

65

Dodatak A

Raspored nepravilnog osvježavanja se primjenjuje prema sljedećem rasporedu

Runde

IR

0 – 9

1111111000

10 – 19

1101010101

20 – 29

1110110011

30 – 39

0010100100

40 – 49

0100011000

50 – 59

1111000010

Runde

IR

60 – 69

0001010000

70 – 79

0111110011

80 – 89

1111010100

90 – 99

0101010011

100 – 109

0000110011

110 – 119

1011111011

Runde

IR

120 – 129

1010010101

130 – 139

1010011100

140 – 149

1101100010

150 – 159

1110110111

160 – 169

1001011011

170 – 179

0101110010

Runde

IR

180 – 189

0100110100

190 – 199

0111000100

200 – 209

1111010000

210 – 219

1110101100

220 – 229

0001011001

230 – 239

0000001101

Runde

IR

240 – 249

1100000001

250 – 253

0010

Usporedba kompaktnosti sklopovskih implementacija i propusnosti inačica algoritama

KATAN i KTANTAN iz [13].

Algoritam Veličina

(GE)

Propusnost

(Kb/s) Algoritam

Veličina

(GE)

Propusnost

(Kb/s)

KATAN-32 802 12,5 KTANTAN-32 462 12,5

KATAN-32 846 25 KTANTAN-32 673 25

KATAN-32 898 37,5 KTANTAN-32 890 37,5

KATAN-48 916 9,4 KTANTAN-48 571 9,4

KATAN-48 927 18,8 KTANTAN-48 588 18,8

KATAN-48 1002 37,6 KTANTAN-48 827 37,6

KATAN-48 1080 56,4 KTANTAN-48 1070 56,4

KATAN-64 1027 8,4 KTANTAN-64 684 8,4

KATAN-64 1054 25,1 KTANTAN-64 688 25,1

KATAN-64 1189 50,2 KTANTAN-64 927 50,2

KATAN-64 1269 75,3 KTANTAN-64 1168 75,3

Page 69: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

66

Dodatak B

Kutije za zamjenu bitova i koje se koriste u algoritmu CLEFIA [16].

:

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 57 49 d1 c6 2f 33 74 fb 95 6d 82 ea 0e b0 a8 1c 1 28 d0 4b 92 5c ee 85 b1 c4 0a 76 3d 63 f9 17 af

2 bf a1 19 65 f7 7a 32 20 6 ce e4 83 9d 5b 4c d8

3 42 5d 2e e8 d4 9b 0f 13 3c 89 67 c0 71 aa b6 f5

4 a4 be fd 8c 12 0 97 da 78 e1 cf 6b 39 43 55 26

5 30 98 cc dd eb 54 b3 8f 4e 16 fa 22 a5 77 9 61

6 d6 2a 53 37 45 c1 6c ae ef 70 8 99 8b 1d f2 b4

7 e9 c7 9f 4a 31 25 fe 7c d3 a2 bd 56 14 88 60 0b

8 cd e2 34 50 9e dc 11 5 2b b7 a9 48 ff 66 8a 73

9 3 75 86 f1 6a a7 40 c2 b9 2c db 1f 58 94 3e ed

A fc 1b a0 4 b8 8d e6 59 62 93 35 7e ca 21 df 47

B 15 f3 ba 7f a6 69 c8 4d 87 3b 9c 1 e0 de 24 52

C 7b 0c 68 1e 80 b2 5a e7 ad d5 23 f4 46 3f 91 c9

D 6e 84 72 bb 0d 18 d9 96 f0 5f 41 ac 27 c5 e3 3a

E 81 6f 7 a3 79 f6 2d 38 1a 44 5e b5 d2 ec cb 90

F 9a 36 e5 29 c3 4f ab 64 51 f8 10 d7 bc 2 7d 8e

:

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 6c da c3 e9 4e 9d 0a 3d b8 36 b4 38 13 34 0c d9 1 bf 74 94 8f b7 9c e5 dc 9e 7 49 4f 98 2c b0 93

2 12 eb cd b3 92 e7 41 60 e3 21 27 3b e6 19 d2 0e

3 91 11 c7 3f 2a 8e a1 bc 2b c8 c5 0f 5b f3 87 8b

4 fb f5 de 20 c6 a7 84 ce d8 65 51 c9 a4 ef 43 53

5 25 5d 9b 31 e8 3e 0d d7 80 ff 69 8a ba 0b 73 5c

6 6e 54 15 62 f6 35 30 52 a3 16 d3 28 32 fa aa 5e

7 cf ea ed 78 33 58 9 7b 63 c0 c1 46 1e df a9 99

8 55 4 c4 86 39 77 82 ec 40 18 90 97 59 dd 83 1f

9 9a 37 6 24 64 7c a5 56 48 8 85 d0 61 26 ca 6f

A 7e 6a b6 71 a0 70 5 d1 45 8c 23 1c f0 ee 89 ad

B 7a 4b c2 2f db 5a 4d 76 67 17 2d f4 cb b1 4a a8

C b5 22 47 3a d5 10 4c 72 cc 0 f9 e0 fd e2 fe ae

D f8 5f ab f1 1b 42 81 d6 be 44 29 a6 57 b9 af f2

E d4 75 66 bb 68 9f 50 2 1 3c 7f 8d 1a 88 bd ac

F f7 e4 79 96 a2 fc 6d b2 6b 3 e1 2e 7d 14 95 1d

Page 70: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

67

Dodatak C

Nizovi , , i

koji se koriste u 128-bitnoj inačici algoritma MICKEY 2.0 [23].

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

comp0i 1 1 1 1 0 1 0 0 1 0 0 1 1 1

comp1i 0 0 0 1 1 0 0 1 1 1 1 1 0 0

fb0i 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0

fb1i 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1

i 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

comp0i 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0

comp1i 0 1 0 0 1 1 0 0 0 1 0 1 1 1 1

fb0i 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0

fb1i 0 0 0 1 0 1 1 1 1 1 1 0 1 1 0

i 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

comp0i 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0

comp1i 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1

fb0i 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0

fb1i 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0

i 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

comp0i 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1

comp1i 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1

fb0i 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1

fb1i 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0

i 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

comp0i 1 1 1 0 0 1 0 0 0 1 1 0 0 0 0

comp1i 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0

fb0i 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1

fb1i 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0

i 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

comp0i 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0

comp1i 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0

fb0i 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1

fb1i 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1

i 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

comp0i 0 1 1 1 1 0 1 0 0 0 1 1 0 0 1

comp1i 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1

fb0i 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1

fb1i 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0

Page 71: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

68

i 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

comp0i 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1

comp1i 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0

fb0i 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0

fb1i 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0

i 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134

comp0i 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0

comp1i 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0

fb0i 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1

fb1i 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1

i 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149

comp0i 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1

comp1i 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1

fb0i 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1

fb1i 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1

i 150 151 152 153 154 155 156 157 158 159

comp0i 0 1 1 1 1 1 0 0 0

comp1i 1 1 1 1 1 1 1 1 1

fb0i 1 0 1 1 0 0 0 0 0 1

fb1i 0 1 1 0 0 0 1 0 0 0

Page 72: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

69

Dodatak D

AES kutija za zamjenu bitova koja se koristi u algoritmu PHOTON-256/32/32

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 63 7C 77 7B F2 6B 6F C5 30 1 67 2B FE D7 A

B

76 1 C

A

82 C9 7D F

A

59 47 F0 A

D

D4 A2 AF 9C A4 72 C0

2 B7 F

D

93 26 36 3F F7 C

C

34 A5 E5 F1 71 D8 31 15

3 4 C7 23 C3 18 96 5 9A 7 12 80 E2 EB 27 B2 75

4 9 83 2C 1A 1B 6E 5

A

A0 52 3B D6 B3 29 E3 2F 84

5 53 D1 0 ED 20 F

C

B1 5B 6A CB BE 39 4A 4C 58 CF

6 D0 EF A

A

FB 43 4

D

33 85 45 F9 2 7F 50 3C 9F A8

7 51 A3 40 8F 92 9

D

38 F5 BC B6 D

A

21 10 FF F3 D2

8 C

D

0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73

9 60 81 4F D

C

22 2

A

90 88 46 EE B8 14 D

E

5E 0B D

B A E0 32 3A 0A 49 6 24 5C C2 D3 AC 62 91 95 E4 79

B E7 C8 37 6D 8D D

5

4E A9 6C 56 F4 E

A

65 7A AE 8

C B

A

78 25 2E 1C A

6

B4 C6 E8 D

D

74 1F 4B B

D

8B 8A

D 70 3E B5 66 48 3 F6 0E 61 35 57 B9 86 C1 1D 9E

E E1 F8 98 11 69 D

9

8E 94 9B 1E 87 E9 CE 55 28 DF

F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16

PRESENT kutija za zamjenu bitova koja se koristi u algoritmima PHOTON-80/20/16,

PHOTON-128/16/16, PHOTON-160/36/36, PHOTON-224/32/32.

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S[x] C 5 6 B 9 0 A D 3 E F 8 4 7 1 2

Page 73: DIPLOMSKI RAD br. 607 Kriptografski algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/2013_modric/diplomski_rad_0036432403.pdf · kriptiranje toka podataka, a u poglavlju

70

Kriptografski algoritmi prilagođeni ugrađenim sustavima

Ubrzani razvoj ugradbenih računalnih sustava povećava potrebu za novim kriptografskim

algoritmima koji će biti prilagođeni radu u takvim ograničenjima. U radu je predstavljeno

po nekoliko takvih algoritama za kriptiranje blokova podataka, kriptiranje toka podataka te

izračunavanje sažetka poruke. Svaki od tih algoritama je detaljno opisan, sa svim

specifikacijama potrebnima za njihovu implementaciju te pregledom analiza sigurnosti

provedenih u drugim radovima. Svi algoritmi su programski implementirani te je

provedeno mjerenje izvođenja. Predstavljena su i mjerenja sklopovskih implementacija

algoritama iz drugih radova.

Ključne riječi: ugrađena računala, kriptografija

Lightweight cryptographic algorithms

Rapid advances in embedded systems increases demand for cryptographic algorithms

adapted to such constrained environments. In this paper, we describe several od

lightweight block ciphers, stream ciphers and hash functions. Each of those algorithms is

described in detail, with all specifications necessary for their implementation, along with

overview of cryptanalysis made in other papers. For all described algorithms software

implementations were developed tested. Overview of hardware implementation tests form

other paper is also presented.

Keywords: embedded systems, cryptography