48
Sveuˇ ciliˇ ste J. J. Strossmayera u Osijeku Odjel za matematiku Marija Brnatovi´ c Blok ˇ sifre i DES-kriptosustav Diplomski rad Osijek, 2012.

Sveu cili ste J. J. Strossmayera u Osijeku Odjel za …mdjumic/uploads/diplomski/BRN01.pdfalgoritma DES-a koji je i slikovito prikazan. ... i International Data Encryption Algorithm

Embed Size (px)

Citation preview

Sveuciliste J. J. Strossmayera u Osijeku

Odjel za matematiku

Marija Brnatovic

Blok sifre i DES-kriptosustav

Diplomski rad

Osijek, 2012.

Sveuciliste J. J. Strossmayera u Osijeku

Odjel za matematiku

Marija Brnatovic

Blok sifre i DES-kriptosustav

Diplomski rad

Mentor: Doc. dr. sc. Ivan Matic

Osijek, 2012.

1

Sadrzaj

1. Uvod 2

2. Blok sifre 32.1. Definicija blok sifre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2. Sigurnost i kriptoanaliticki napadi . . . . . . . . . . . . . . . . . . . . . . . . 52.3. Kriteriji za vrednovanje blok sifri . . . . . . . . . . . . . . . . . . . . . . . . 62.4. Nacini djelovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4.1. ECB nacin djelovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.2. CBC nacin djelovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4.3. CFB nacin djelovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4.4. OFB nacin djelovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5. Kaskadne sifre i visestruko sifriranje . . . . . . . . . . . . . . . . . . . . . . . 13

3. DES kriptosustav 143.1. Povijest DES-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2. Opis algoritma DES-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3. Svojstva DES-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4. Nacini djelovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.5. Kriptoanaliza DES-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4. Drugi blokovni kriptosustavi 364.1. FEAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2. IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5. Sazetak 44

6. Summary 45

7. Zivotopis 46

2

1. Uvod

U ovom radu su opisane blok sifre koje su vazan element u mnogim kriptografskim susta-vima. U radu je obraden i nacin sifriranja podataka Data encryption standard (DES) kojise kao standard odrzao 30-ak godina. Uz DES je opisana i kriptoanaliza DES-a (diferenci-jalna kriptoanaliza, linearna kriptoanaliza i napad grubom silom). Utvrdeno je da je napadgrubom silom jedini u praksi izvediv napad na DES.

U drugom poglavlju su opisane blok sifre, sigurnost blok sifri, te kriptoanaliticki napadi.Spomenuti su i kriteriji za vrednovanje blok sifri, te su detaljno opisani nacini djelovanjanad porukama vecim od n-bitova. Na koncu drugog poglavlja su spomenute kaskadne sifrei visestruko sifriranje koje je i slikovito prikazano.

U trecem poglavlju se opisuje kratka povijest DES-a. Nakon toga slijedi detaljan opisalgoritma DES-a koji je i slikovito prikazan. U tom poglavlju su postavljene tablice kojese koriste u algoritmu DES-a, detaljno je opisana Feistelova funkcija f , te je postavljen iprimjer sifriranja DES-om. Zatim su opisana svojstva DES-a, te nacini djelovanja koji suvec spomenuti u prethodnom poglavlju. Kraj treceg poglavlja sadrzi kriptoanalize DES-a,a to su diferencijalna kriptoanaliza, linearna kriptoanaliza i EFF-ov DES Cracker. Koddiferencijalne kriptoanalize se promatraju parovi sifrata ciji otvoreni tekstovi imaju fiksnerazlike. Za DES fiksna razlika je definirana koristeci “iskljucivo ili” (XOR) operaciju. Nakontoga koristeci razlike u sifratima dodjeljujemo razlicite vjerojatnosti razlicitim kljucevima.Sto vise parova sifrata analiziramo, jedan kljuc se pojavljuje kao najvjerojatniji. Taj kljuc jeobicno pravi. Ideja linearne kriptoanalize se sastoji u tome da iako bitovi kljuca nisu linearnefunkcije otvorenog teksta i sifrata, neki od njih se mogu dobro aproksimirati linearnomfunkcijom.

U cetvrtom poglavlju su opisana dva blokovna kriptosustava Fast Data EnciphermentAlgorithm (FEAL) i International Data Encryption Algorithm (IDEA), postavljeni su njihovialgoritmi i poveznice s DES-om.

3

2. Blok sifre

2.1. Definicija blok sifre

Kriptografija je znanstvena disciplina koja se bavi proucavanjem metoda za slanje porukau takvom obliku da ih samo onaj kome su namijenjene moze procitati.

Osnovni zadatak kriptografije je omoguciti dvjema osobama (posiljalac i primalac) ko-municiranje preko nesigurnog komunikacijskog kanala na nacin da treca osoba (protivnik),koja moze nadzirati komunikacijski kanal, ne moze razumjeti njihove poruke.

Poruku koju posiljalac zeli poslati primaocu nazivamo otvoreni tekst (engl. plaintext).Posiljalac transformira otvoreni tekst koristeci unaprijed dogovoreni kljuc. Taj postupak senaziva sifriranje, a dobiveni rezultat sifrat (engl. ciphertext). Nakon toga posiljalac posaljesifrat preko nekog komunikacijskog kanala. Protivnik prisluskujuci moze doznati sadrzajsifrata, ali ne moze odrediti otvoreni tekst. Primalac koji zna kljuc kojim je sifrirana porukamoze desifrirati sifrat i odrediti otvoreni tekst.

Kriptografski algoritam ili sifra je matematicka funkcija koja se koristi za sifriranje idesifriranje. Opcenito, radi se o dvije funkcije, jednoj za sifriranje, a drugoj za desifriranje.Funkcije se biraju iz odredene familije funkcija u ovisnosti o kljucu. Skup svih mogucihvrijednosti kljuceva nazivamo prostor kljuceva.

Definicija 2.1. Kriptosustav je uredena petorka (P , C,K, E ,D) za koju vrijedi:

1. P je konacan skup svih mogucih osnovnih elemenata otvorenog teksta;

2. C je konacan skup svih mogucih osnovnih elemenata sifrata;

3. K je prostor kljuceva, tj. konacan skup svih mogucih kljuceva;

4. Za svaki K ∈ K postoji funkcija sifriranja EK ∈ E i odgovarajuca funkcija desifriranjaDK ∈ D. Pritom su EK : P → C i DK : C → P funkcije sa svojstvom da jeDK(EK(x)) = x za svaki otvoreni tekst x ∈ P.

Za kriptosustav kazemo da je simetrican ako su postupci sifriranja i desfriranja esencijalnojednaki.

Blok sifra je funkcija koja preslikava n-bitni blokovni otvoreni tekst u n-bitni blokovnisifrat (n je duljina bloka). Blokovi otvorenog teksta i sifrata su jednake velicine kako bi seizbjeglo prosirivanje podataka. Ta funkcija je parametrizirana s k-bitnim kljucem K cijese vrijednosti uzimaju iz podskupa od K (prostor kljuceva) skupa svih k-bitnih vektora Vk.Opcenito se pretpostavlja da je kljuc odabran nasumce.

Da bi desifriranje bilo jednoznacno odredeno, funkcija sifriranja mora biti bijekcija. Zan-bitne blokove otvorenog teksta i sifrata, te fiksan kljuc, funkcija sifriranja je bijekcija kojadefinira permutaciju n-bitnih vektora. Svaki kljuc moze definirati drugaciju bijekciju. Brojkljuceva je |K|, a “efektivna velicina kljuca” je log|K| sto je jednako duljini kljuca ako su svik-bitni vektori valjani kljucevi, tj. ako je K = Vk.

4

Definicija 2.2. n-bitna blok sifra je funkcija E : Vn × K → Vn takva da je za svaki kljucK ∈ K, E(P,K) invertibilno preslikavanje (funkcija sifriranja od K) sa Vn u Vn, u oznaciEK(P ). Inverzno preslikavanje je funkcija desifriranja, u oznaci DK(C). Sifrat C je rezultatsifriranja otvorenog teksta P sa K, u oznaci C = EK(P ).

Blok sifre obraduju otvoreni tekst koji je u relativno velikim blokovima (npr. n ≥ 64).Ukoliko poruka otvorenog teksta prelazi duljinu jednog bloka, koriste se razliciti nacini dje-lovanja za blok sifre.

Najopcenitije blok sifre provode sve moguce supstitucije. Za predstavljanje kljuca takven-bitne (true) random blok sifre je potrebno log(2n!) ≈ (n−1.44)2n bitova, ili (gruba ocjena)2n puta broj bitova u blok poruci.

Definicija 2.3. (true) random sifriranje je n-bitno blok sifriranje koje provodi sve 2n! bijek-cije nad 2n elemenata. Svaki od 2n! kljuceva odreduje jednu takvu permutaciju.

Treba napomenuti da velicina bloka n ne smije biti ni premala ni prevelika jer bi usuprotnom blok sifra bila ranjiva na napade zasnovane na statistickoj analizi, odnosno, doslobi do poteskoca u sifriranju. U praksi se za veliki n koriste funkcije koje je lako provesti ikoje su naizgled randomizirane (bez poznavanja kljuca).

Definicija 2.4. Nasumicno sifriranje je funkcija E koja preslikava elemente otvorenog tekstaVn u prostor sifrata Vm, gdje je m > n, koristeci elemente iz skupa slucajnih brojeva R = Vt.Prema tome, E definiramo kao preslikavanje E : Vn×K×R → Vm, tako da za svaki K ∈ Ki R ∈ R, E(P,K,R) preslikava P iz Vn u Vm, te postoji i odgovarajuca inverzna funkcijadesifriranja s Vm ×K u Vn.

5

2.2. Sigurnost i kriptoanaliticki napadi

Cilj blok sifre je osigurati povjerenje. Odgovarajuci cilj kriptoanaliticara je da iz sifratadode do otvorenog teksta. Za blok sifru kazemo da je u potpunosti probijena ako se kljucmoze naci, i djelomicno probijena ukoliko kriptoanaliticar moze otkriti dio otvorenog tekstaiz sifrata (ali ne i kljuc). Uobicajene su sljedece pretpostavke za procjenu sigurnosti bloksifre :

1. Kriptoanaliticar ima pristup svim podacima koji se prenose kroz komunikacijski kanal.

2. Kerckhoffova pretpostavka - kriptoanaliticar zna koji se kriptosustav koristi (ali ne znakljuc o kojem potpuno ovisi sigurnost postupka sifriranja).

Napadi su klasificirani na temelju informacija do kojih kriptoanaliticar moze doci. Za fiksankljuc, najistaknutiji tipovi napada na simetricne sifre s kljucem su:

1. Samo sifratKriptoanaliticar posjeduje samo sifrat od nekoliko poruka sifriranih pomocu istog kljuca(nema pristup dodatnim informacijama). Njegov je zadatak otkriti otvoreni tekst odsto vise poruka ili otkriti kljuc kojim su poruke sifrirane.

2. Poznat otvoreni tekstKriptoanaliticar posjeduje sifrat neke poruke i njemu odgovarajuci otvoreni tekst. Nje-gov je zadatak otkriti kljuc ili koristeni algoritam za desifriranje poruka sifriranih timkljucem.

3. Odabrani otvoreni tekstKriptoanaliticar ima mogucnost odabira teksta koji ce biti sifriran, te ima pristup injegovom sifratu. Varijacija ovog napada je napad prilagodljiv odabrani otvoreni tekstgdje izbor otvorenog teksta ovisi o prethodnom paru otvoreni tekst-sifrat.

4. Odabrani sifratKriptoanaliticar je dobio pristup alatu za desifriranje i ima pristup parovima otvo-reni tekst-sifrat, za nekoliko sifrata koje on bira. Njegov je zadatak otkriti kljuc zadesifriranje (tajni kljuc), ili otvoreni tekst koji odgovara nekom novom sifratu. Ovajnapad je tipican kod kriptosustava s javnim kljucem.

Napadi su poredani uzlazno - po tezini pribavljanja potrebnih materijala i silazno - potezini izvodenja. Najlakse je izvesti napad s odabranim otvorenim tekstom, no u praksi je go-tovo nemoguc odabir parova otvoreni tekst - sifrat. U praksi su sifrati najdostupniji, no zatoje napad s poznatim sifratom najteze izvesti. Tri glavne metode kriptoanalize simetricnihkriptosustava su: napad grubom silom, diferencijalna kriptoanaliza i linearna kriptoanaliza.Najbolja moguca mjera sigurnosti je slozenost trenutno najboljih napada. Razliciti aspektitakve slozenosti se razlikuju na sljedeci nacin:

1. Slozenost podataka - potreban je ocekivani broj ulaznih jedinica podataka(npr. sifrata)

2. Slozenost skladistenja - potreban je ocekivani broj jedinica za pohranu

3. Slozenost obrade - potreban je ocekivani broj operacija za obradu ulaznih podatakai/ili za punjenje skladista podacima (barem jedna jedinica vremena po jediniciskladista)

6

2.3. Kriteriji za vrednovanje blok sifri

Neki od kriterija koji se mogu koristiti za vrednovanje blok sifri u praksi su:

1. Procjena razine sigurnostiPovjerenje u sigurnost blok sifre raste ako je ona bila podvrgnuta i izdrzala strucnekriptoanalize tijekom znatnog vremenskog razdoblja (npr. nekoliko godina ili vise).

2. Velicina kljucaUcinkovita bitna duljina kljuca definira gornju granicu sigurnosti sifre. Dulji kljuceviobicno namecu dodatne troskove (npr. prijenos, skladistenje, poteskoce u pamcenjulozinke).

3. PropusnostPropusnost se odnosi na slozenost kriptografskog preslikavanja i na stupanj do kojegje preslikavanje prilagodeno za provedbu na odredenom mediju ili platformi.

4. Velicina blokaVelicina bloka utjece i na sigurnost (vece je pozeljnije) i na slozenost (vece jeskuplje u provedbi), a moze utjecati i na izvedbe (npr. ukoliko je potrebnopopunjavanje).

5. Slozenost kriptografskog preslikavanjaAlgoritamska slozenost utjece na troskove provedbe. Neke sifre posebno favorizirajuhardversku ili softversku implementaciju.

6. Sirenje podatakaSifriranje ne bi trebalo povecavati velicinu podataka otvorenog teksta.

7. Prijenos greskeDesifriranje sifrata koji sadrzi greske u bitovima moze razlicito utjecati na dobiveniotvoreni tekst, ukljucujuci prijenos greske na sljedeci blok otvorenog teksta. Velicinabloka obicno utjece na prijenos greske.

7

2.4. Nacini djelovanja

Blok sifra sifrira otvoreni tekst u n-bitne blokove fiksne velicine (cesto je n = 64). Zaporuke vece od n-bitova, najjednostavniji pristup je podjela poruke na n-bitne blokove isifriranje svakog bloka zasebno. Cetiri najpoznatija nacina djelovanja su Electronic CodeBook(ECB), Cipher-Block Chaining (CBC), Cipher FeedBack (CFB) i Output FeedBack (OFB).

U daljnjem tekstu EK oznacava funkciju sifriranja parametriziranu kljucem K, dok E−1K

oznacava funkciju desifriranja. Za poruku otvorenog teksta x = x1, . . . , xt se pretpostavljada se sastoji od n-bitnih blokova za ECB i CBC nacine, i r-bitnih blokova za CFB i OFBnacine za prikladan fiksan r ≤ n.

2.4.1. ECB nacin djelovanja

Algoritam 1 Electronic codebook

Ulazni podaci: k-bitni kljuc K; n-bitni blokovi otvorenog teksta x1, . . . , xtPostupak: konstruirati blokove sifrata c1, . . . , ct;

desifrirati kako bi dobili natrag otvoreni tekst

1. Sifriranje: za 1 ≤ j ≤ t, cj ← EK(xj)

2. Desifriranje: za 1 ≤ j ≤ t, xj ← E−1K (cj)

Slika 1. Electronic codebook (ECB)

Svojstva:

1. Identicni blokovi otvorenog teksta (pod istim kljucem) rezultiraju identicnim sifratom.

2. Lancana ovisnost: Blokovi su sifrirani neovisno jedan o drugome. Mijenjanjerasporeda blokova sifrata rezultira odgovarajucom promjenom rasporeda blokovaotvorenog teksta.

3. Sirenje greske: Jedna ili vise gresaka u pojedinom bloku sifrata utjece na desifriranjesamo tog bloka. Za tipicne sifre E, desifriranje takvog bloka je onda slucajno (oko 50%bitova otvorenog teksta kojeg smo dobili natrag je pogresno).

8

Posto su sifrirani blokovi neovisni, zlonamjerna zamjena ECB blokova (npr. umetanjebloka koji se cesto pojavljuje) ne utjece na desifriranje susjednih blokova. Nadalje, blok sifrene skrivaju uzorak podataka - identicni sifrirani blokovi znace identicne blokove otvorenogteksta. Iz tog razloga, ECB nacin djelovanja nije preporucljiv za poruke dulje od jednogbloka, ili ako se kljucevi ponavljaju za vise od jedne poruke od jednog bloka. Sigurnost bibila veca ukoliko identicnim blokovima u otvorenom tekstu odgovaraju razliciti sifrati.

2.4.2. CBC nacin djelovanja

Algoritam 2 Cipher-block chaining

Ulazni podaci: k-bitni kljuc K; n-bitni inicijalni vektor IV ;n-bitni blokovi otvorenog teksta x1, . . . , xt

Postupak: konstruirati blokove sifrata c1, . . . , ct;desifrirati kako bi dobili natrag otvoreni tekst

1. Sifriranje: c0 ← IV . Za 1 ≤ j ≤ t, cj ← EK(cj−1 ⊕ xj),gdje ⊕ oznacava operaciju XOR (zbrajanje po bitovima modulo 2)o kojoj cu kasnije vise govoriti.

2. Desifriranje: c0 ← IV . Za 1 ≤ j ≤ t, xj ← cj−1 ⊕ E−1K (cj)

Slika 2. Cipher-block chaining (CBC)

Svojstva:

1. Identican otvoreni tekst: Identicni sifrat je rezultat sifriranja istog otvorenog tekstaistim kljucem i istim inicijalnim vektorom IV . Promjena kljuca, inicijalnog vektora ilipocetnog bloka otvorenog teksta rezultira razlicitim sifratom.

2. Lancana ovisnost: Lancani mehanizam uzrokuje ovisnost sifrata cj o xj i o svimprethodnim blokovima otvorenog teksta (koji pak ovise o prethodnom bloku sifrata).Prema tome, mijenjanje rasporeda blokova sifrata utjece na desifriranje. Pravilnodesifriranje ispravnog bloka sifrata zahtjeva ispravan prethodni blok sifrat.

9

3. Sirenje greske: Jedan pogresan bit u bloku sifrata cj utjece na desifriranje blokovacj i cj+1 (jer xj ovisi o cj i cj−1). Blok x′j dobiven iz cj je obicno potpuno slucajan(50% pogreske), dok dobiveni x′j+1 ima pogresne bitove tocno tamo gdje ih je cj imao.Zbog toga protivnik moze uzrokovati predvidljive promjene u bitovima bloka xj+1

mijenjanjem odgovarajucih bitova u cj.

4. Oporavak od greske: Ukoliko se greska (ukljucujuci gubitak jednog ili vise blokova)dogodi u bloku cj, ali ne i u blokovima cj+1 i cj+2, ispravno je desifriranje do xj+2.

Inicijalni vektor IV mora biti poznat i primaocu i posiljatelju poruke sto znaci da on nijetajan. No, njegov integritet mora ostati ocuvan (vidljivo iz 3. svojstva). To se moze posticitako da se posalje ECB nacinom djelovanja.

Prethodne dvije metode obraduju otvoreni tekst n-bitova odjednom (koriste n-bitnu bloksifru). Za razliku od blok sifre, protocne sifre (engl. stream cipher) elemente otvorenog tekstaobraduju jednog po jednog koristeci pritom niz kljuceva (engl. keystream) koji se paralelnogenerira. Kod protocnih sifri nema potrebe za prosirivanjem poruke kako bi se dobio cijelibroj blokova. To znaci da ce sifrat biti iste duljine kao otvoreni tekst. Obraduje se odjednomr bitova (1 ≤ r ≤ 64), gdje je najcesce r = 1 ili r = 8. Ako je r = 8, to znaci da se sifriraslovo po slovo (po ASCII standardu jednom slovu odgovara 8 bitova).

2.4.3. CFB nacin djelovanja

Neke aplikacije zahtijevaju da r-bitne jedinice otvorenog teksta budu sifrirane i odmahposlane, za neki r < n, (r = 1 ili r = 8). U tom slucaju koristimo CFB nacin djelovanja.

Algoritam 3 Cipher feedback

Ulazni podaci: k-bitni kljuc K; n-bitni inicijalni vektor IV ;r-bitni blokovi otvorenog teksta x1, . . . , xu (1 ≤ r ≤ n)

Postupak: konstruirati r-bitne blokove sifrata c1, . . . , cu;desifrirati kako bi dobili natrag otvoreni tekst

1. Sifriranje: I1 ← IV . (Ij je ulazna vrijednost u registru pomaka.) Za 1 ≤ j ≤ u:

(a) Oj ← EK(Ij) (Izracunaj izlazne podatke blok sifre.)

(b) tj ← r prvi bit s lijeva izlaznog podatka Oj (uz pretpostavku da je prvi bit s lijevaidentificiran kao bit 1.)

(c) cj ← xj ⊕ tj (Prenesi r-bitni blok sifrata cj.)

(d) Ij+1 ← 2r · Ij + cj mod 2n (Pomakni cj na desni kraj registra pomaka.)

2. Desifriranje: I1 ← IV . Za 1 ≤ j ≤ u, po primitku cj:xj ← cj ⊕ tj, gdje se tj, Oj i Ij racunaju kako je gore navedeno.

10

Slika 3. Cipher feedback (CFB)

Svojstva:

1. Isti otvoreni tekst: Kao kod CBC nacina djelovanja, mijenjanje inicijalnog vektorarezultira u unosu istog otvorenog teksta razlicitim sifratom. Inicijalni vektor nije tajan(u nekim aplikacijama je nepredvidivi inicijalni vektor pozeljan).

2. Lancana ovisnost: Slicno kao kod CBC sifriranja, mehanizam ulancavanja uzrokujeovisnost bloka sifrata cj o xj i o prethodnim blokovima otvorenog teksta. Poslje-dica toga je: mijenjanje rasporeda blokova sifrata utjece na desifriranje. Pravilnodesifriranje ispravnih blokova sifrata zahtijeva ispravne prethodne dn

re blokove sifrata

(kako bi registar pomaka sadrzavao ispravne vrijednosti).

3. Sirenje greske: Jedna ili vise gresaka u bitu u bilo kojem pojedinom r-bitnom blokusifrata cj utjece na desifriranje tog i sljedecih dn

re blokova sifrata (tj. dok je n bitova

sifrata obradeno, nakon cega je blok s greskom cj u potpunosti pomaknut iz registra).Dobiveni otvoreni tekst x′j ce se razlikovati od xj za upravo mjesto bita cj koji jebio greska. Ostali nepravilno dobiveni blokovi otvorenog teksta ce biti slucajni vek-tori (50% pogresnih bitova). Kriptoanaliticar moze uzrokovati promjene bita koje jepredvidio u xj mijenjajuci odgovarajuce bitove u cj.

4. Oporavak od greske: Slicno kao kod CBC, no zahtijeva se oporavak dnre blokova sifrata.

5. Propusnost: Za r < n, propusnost se smanjuje za nr

u cemu svako izvodenje postupkasifriranja E daje samo r bitova u izlaznom sifratu.

Posto je funkcija sifriranja E koristena i u sifriranju i desifriranju, CFB nacin djelovanjase ne smije koristiti ukoliko je blok sifra E algoritam s javnim kljucem. Umjesto ovoga, tadase koristi CBC nacin djelovanja.

11

2.4.4. OFB nacin djelovanja

Ovaj nacin djelovanja se koristi u aplikacijama u kojima se svako sirenje greske trebaizbjeci. OFB nacin djelovanja je vrlo slican CFB nacinu sifriranja i dopusta sifriranje blokarazlicitih velicina. Jedina je razlika u tome sto se izlazni podatak blok sifre funkcije E koristikao povratna informacija.

Algoritam 4 OFB nacin djelovanja s potpunom povratnom informacijom

Ulazni podaci: k-bitni kljuc K; n-bitni inicijalni vektor IV ;r-bitni blokovi otvorenog teksta x1, . . . , xu (1 ≤ r ≤ n)

Postupak: konstruirati r-bitne blokove sifrata c1, . . . , cu;desifrirati kako bi dobili natrag otvoreni tekst

1. Sifriranje: I1 ← IV . Za 1 ≤ j ≤ u, dan blok otvorenog teksta xj:

(a) Oj ← EK(Ij) (Izracunaj izlazni podatak blok sifre.)

(b) tj ← r prvi bit s lijeva izlaznog podatka Oj (uz pretpostavku da je prvi bit s lijevaidentificiran kao bit 1.)

(c) cj ← xj ⊕ tj (Prenesi r-bitni blok sifrata cj.)

(d) Ij+1 ← Oj (Azuriraj ulazni podatak blok sifre za novi blok.)

2. Desifriranje: I1 ← IV . Za 1 ≤ j ≤ u, po primitku cj:xj ← cj ⊕ tj, gdje se tj, Oj i Ij racunaju kako je gore navedeno.

Slika 4. Output feedback (OFB)

12

Algoritam 5 OFB nacin djelovanja s r-bitnom povratnom informacijom

Ulazni podaci: k-bitni kljuc K; n-bitni inicijalni vektor IV ;r-bitni blokovi otvorenog teksta x1, . . . , xu (1 ≤ r ≤ n)

Postupak: konstruirati r-bitne blokove sifrata c1, . . . , cu;desifrirati kako bi dobili natrag otvoreni tekst.

Postupak je gotovo identican postupku opisanom u prethodnom algoritmu, jedino umjesto“Ij+1 ← Oj” koristi: Ij+1 ← 2r · Ij + tj mod 2n (prebaci izlazni podatak tj na lijevi krajregistra)

Svojstva:

1. Isti otvoreni tekst: Kao kod CBC i CFB nacina djelovanja, mijenjanje inicijalnogvektora rezultira u unosu istog otvorenog teksta razlicitim sifratom. Inicijalni vektorne smije biti tajan, no mora biti promijenjen ukoliko je OFB kljuc opet koristen.

2. Lancana ovisnost: Niz kljuceva nije ovisan o otvorenom tekstu.

3. Sirenje greske: Greske u prijenosu ne utjecu na daljnje sifriranje. Jedna ili vise gresakau bitu u bilo kojem znaku sifrata cj utjece na desifriranje samo tog znaka, na istommjestu pogresnog bita (bitova) u cj utjecuci na bit (bitove) dobivenog otvorenog teksta.

4. Oporavak od greske: OFB nacin djelovanja se oporavlja od gresaka u bitovima sifrata,ali se ne moze samostalno sinkronizirati nakon gubitka bitova sifrata sto unistavauskladenost niza kljuceva sifriranja (potrebna re-sinkronizacija).

5. Propusnost: Za r < n, propusnost je smanjena kao u CFB nacinu djelovanja. Medutim,u svim slucajevima, buduci da niz kljuceva ne ovisi o otvorenom tekstu i sifratu, mozese prethodno izracunati (za dani kljuc i inicijalni vektor).

Primjedba 2.1. (mijenjanje inicijalnog vektora u OFB nacinu djelovanja)Inicijalni vektor, koji ne mora biti tajan, se mora promijeniti ako je u OFB-u kljuc Kponovno koristen.

U OFB-u sa potpunom n-bitnom povratnom informacijom, niz kljuceva je generiraniteracijom Oj = EK(Oj−1). Kako je EK permutacija, i pod pretpostavkom da je za slucajniK, EK efektivno slucajan izbor medu svih (2n)! permutacija n elemenata, moze biti pokazanoda je za fiksan slucajan kljuc i pocetnu vrijednost, ocekivana duljina ciklusa prije ponavljanjabilo koje vrijednosti Oj otprilike 2n−1. S druge strane, ako je broj povratnih bitova r < nkako je dopusteno u Algoritmu 5, niz kljuceva je generiran iteracijom Oj = f(Oj−1) za nekune-permutaciju f , koja ce imati ocekivanu duljinu ciklusa oko 2n/2 ukoliko pretpostavimo dase ponasa kao slucajna funkcija. Kao posljedica toga, preporucljivo je koristiti OFB nacindjelovanja sa punim n-bitnim povratnim informacijama.

Pojednostavljivanje OFB-a ukljucuje nadogradnju ulaznog bloka kao brojaca, Ij+1 =Ij + 1, umjesto koristenja povratne informacije. Ovo zaobilazi i problem kratkog ciklusa(gornji odlomak) i dopusta oporavak od pogreski pri sifriranju. Nadalje, pruza i dodatnosvojstvo nasumicnog pristupa: blok sifrata i ne mora biti desifriran da bi se desifrirao bloksifrata i+ 1.

13

2.5. Kaskadne sifre i visestruko sifriranje

Ukoliko je duljina kljuca neadekvatna, visestruko sifriranje istog bloka poruke mozepovecati sigurnost. Razlicite tehnike visestrukog sifriranja n-bitne poruke su navedene uovom potpoglavlju. Jednom definirane, mogu se prosiriti na poruke koje prelaze jedan blokkoristenjem standardnih nacina djelovanja (funkcija visestrukog sifriranja ce biti oznacena sE).

Definicija 2.5. Kaskadna sifra je dobivena ulancavanjem L blok sifri, za L ≥ 2 (takozvanih“faza”), svake s nezavisnim kljucem. Otvoreni tekst je ulazni podatak u prvoj fazi, izlaznipodatak faze i je ulazni podatak u i+1 fazi; dok je izlazni podatak zadnje faze ujedno i izlaznipodatak kaskadne sifre.

U najjednostavnijem slucaju sve te faze imaju k-bitne kljuceve i svi ulazni i izlazni podacifaze su n-bitne velicine. Faze sifre se mogu razlikovati ili pak sve mogu biti jednake.

Definicija 2.6. Visestruko sifriranje je slicno kaskadnom sa L identicnih sifri, ali kljucevifaze ne moraju biti nezavisni, te svaka od faznih sifri moze biti ili blok sifra ili funkcijadesifriranja.

Dva vazna slucaja visestrukog sifriranja su dvostruko i trostruko sifriranje koji su opisanina slici 5. te zatim definirani.

Slika 5. Visestruko sifriranje

Definicija 2.7. Dvostruko sifriranje je definirano sa E(x) = EK2(EK1(x)), gdje je EK

oznaka za blok sifru E s kljucem K.

Definicija 2.8. Trostruko sifriranje je definirano sa E(x) = E(3)K3

(E(2)K2

(E(1)K1

(x))), gdje je E(j)K

oznacava ili blok sifru EK ili funkciju desifriranja D = E−1K .Slucaj E(x) = EK3(DK2(EK1(x))) se zove E-D-E trostruko sifriranje; podslucaj K1 = K3 secesto naziva trostruko sifriranje s dva kljuca.

Nezavisni kljucevi K1 i K2 se obicno koriste u dvostrukom sifriranju. U trostrukomsifriranju se cesto koriste zavisni kljucevi. E-D-E trostruko sifriranje s K1 = K2 = K3 jeekvivalent jednostrukom sifriranju.

14

3. DES-kriptosustav

3.1. Povijest DES-a

Krajem 60-tih i pocetkom 70-tih godina 20. stoljeca, razvojem financijskih transakcija,kriptografija postaje zanimljiva sve vecem broju potencijalnih korisnika. Dotad je glavnaprimjena kriptografije bila u vojne i diplomatske svrhe, pa je bilo normalno da svaka drzava(ili cak svaka zainteresirana drzavna organizacija) koristi svoju sifru za koju je vjerovala daje najbolja. No, tada se pojavila potreba za sifrom koju ce moci koristiti korisnici siromsvijeta, i u koju ce svi oni moci imati povjerenje. Pojavila se potreba uvodenja standarda ukriptografiji.

Godine 1972. americki National Bureau of Standards (NBS) inicirao je program za zastituracunalnih i komunikacijskih podataka. Jedan od ciljeva je bio razvijanje jednog standardnogkriptosustava. Godine 1973. NBS je raspisao javni natjecaj za takav kriptosustav. Tajkriptosustav je trebao zadovoljiti sljedece uvjete:

• visoki stupanj sigurnosti

• potpuna specifikacija i lako razumijevanje algoritma

• sigurnost lezi u kljucu, a ne u tajnosti algoritma

• dostupnost svim korisnicima

• prilagodljivost uporabi u razlicitim primjenama

• ekonomicnost implementacije u elektronickim uredajima

• efikasnost

• mogucnost provjere

• mogucnost izvoza (zbog americkih zakona)

Na tom natjecaju niti jedan prijedlog nije zadovoljavao sve ove zahtjeve. Medutim, naponovljeni natjecaj iduce godine pristigao je prijedlog algoritma koji je razvio IBM-ov timkriptografa. Algoritam je zasnovan na tzv. Feistelovoj sifri. Gotovo svi simetricni blokovnialgoritmi koji su danas u uporabi koriste ideju koju je uveo Horst Feistel 1973. godine.Jedna od glavnih ideja je alternirana uporaba supstitucija i transpozicija kroz vise iteracija(tzv. rundi).

Predlozeni algoritam je nakon nekih preinaka, u kojima je sudjelovala i National SecurityAgency (NSA), prihvacen kao standard 1976. godine i dobio je ime Data Encryption Standard(DES).

15

3.2. Opis algoritma DES-a

DES sifrira otvoreni tekst duljine 64 bita, koristeci kljuc K duljine 56 bitova. Tako sedobiva sifrat koji ponovo ima 64 bita. Algoritam se sastoji od 3 etape:

1. Za dani otvoreni tekst x, permutiranjem pomocu fiksne inicijalne permutacije IP dobijese x0. Zapisemo x0 = IP (x) u obliku x0 = L0R0, gdje L0 sadrzi prva (lijeva) 32 bita,a R0 zadnja (desna) 32 bita od x0.

2. Odredena funkcija se 16 puta iterira. Racunamo LiRi, 1 ≤ i ≤ 16, po sljedecempravilu:

Li = Ri−1

Ri = Li−1 ⊕ f(Ri−1, Ki)

gdje ⊕ oznacava operaciju “ekskluzivno ili” (XOR). Funkciju f cemo opisati kasnije.K1, K2, . . . , K16 su nizovi bitova duljine 48, koji se dobivaju kao permutacije nekihbitova iz K.

3. Primijenimo inverznu permutaciju IP−1 na R16L16 i tako dobivamo sifrat y.Dakle, y = IP−1(R16L16). Uocimo inverzni poredak od L16 i R16.

Inicijalna permutacijaIP

58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

Inicijalna permutacijaIP−1

40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25

Slika 6. Algoritam DES-a

16

Funkcija f za prvi argument ima niz bitova A duljine 32, a za drugi argument ima nizbitova J duljine 48. Kao rezultat se dobiva niz bitova duljine 32.Funkcija se racuna u sljedeca 4 koraka:

1. Prvi argument A se prosiri do niza duljine 48 u skladu s fiksnom funkcijom prosirenjaE. Niz E(A) se sastoji od 32 bita iz A, permutiranih na odredeni nacin, s time da se16 bitova pojavi dva puta.

2. Izracunamo E(A)⊕ J i rezultat zapisemo kao spoj od osam 6-bitnih nizovaB = B1B2B3B4B5B6B7B8.

3. Sljedeci korak koristi 8 tzv. S-kutija (supstitucijskih kutija) S1, . . . , S8. Svaki Si jefiksna 4 × 16 matrica ciji su elementi cijeli brojevi izmedu 0 i 15. Za dani niz bitovaduljine 6, recimo Bj = b1b2b3b4b5b6, racunamo Sj(Bj) na sljedeci nacin. Dva bita b1b6odreduju binarni zapis retka r od Sj (r = 0, 1, 2, 3), a cetiri bita b2b3b4b5 odredujubinarni zapis stupca c od Sj (c = 0, 1, 2, . . . , 15). Sada je Sj(Bj) po definiciji jednakoSj(r, c), zapisano kao binarni broj duljine 4.Na ovaj nacin izracunamo Cj = Sj(Bj), j = 1, 2, . . . , 8.

4. Niz bitova C1C2C3C4C5C6C7C8 duljine 32 se permutira pomocu fiksne zavrsne permu-tacije P. Tako se dobije P(C ), sto je po definiciji upravo f(A,J).

Slika 7. Algoritam f(A, J)

17

Funkcijaprosirenja E

32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

Zavrsnapermutacija P

16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25

Supstitucijske kutije:

S1

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

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

S2

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

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

S3

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

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

S4

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

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

S5

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

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

18

S6

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

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

S7

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

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

S8

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

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

Konacno, trebamo opisati racunanje tablice kljuceva K1, K2, . . . , K16 iz kljuca K. Kljuc Kse sastoji od 64 bita, od kojih 56 predstavlja kljuc, a preostalih 8 bitova sluze za ispitivanjepariteta. Bitovi na pozicijama 8, 16, . . . , 64 su definirani tako da svaki bajt (8 bitova) sadrzineparan broj jedinica. Ovi bitovi se ignoriraju kod racunanja tablice kljuceva.

1. Za dani 64-bitni kljuc K, ignoriramo paritetne bitove, te permutiramo preostale bitovepomocu fiksne permutacije PC1. Zapisemo PC1(K) = C0D0, gdje C0 sadrzi prvih 28,a D0 zadnjih 28 bitova od PC1(K ).

2. Za i = 1, 2, . . . , 16 racunamo:Ci = LSi(Ci−1),

Di = LSi(Di−1),

Ki = PC2(CiDi).

LSi predstavlja ciklicki pomak ulijevo za 1 ili 2 pozicije, ovisno o i. Ako je i = 1, 2, 9ili 16, onda je pomak za jednu poziciju, a inace je pomak za dvije pozicije. PC2 je josjedna fiksna permutacija.

Fiksna permutacija PC1

57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4

Fiksna permutacija PC2

14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

19

Ovim je u potpunosti opisan postupak sifriranja.Desifriranje koristi isti algoritam kao sifriranje. Krenemo od sifrata y, ali koristimo tablicukljuceva u obrnutom redoslijedu: K16, K15, . . . , K1. Kao rezultat dobivamo otvoreni tekst x.

Uvjerimo se da ovako definirana funkcija desifriranja DK zaista ima trazeno svojstvo daje DK(y) = x. Podsjetimo se da smo y dobili kao y = IP−1(R16L16).Stoga se primjenom inicijalne permutacije na y dobiva y0 = R16L16. Nakon prve rundedesifriranja, lijeva polovica postaje L16 = R15, a desna R16 ⊕ f(L16, K16). No, iz zadnjerunde sifriranja znamo da vrijedi

R16 = L15 ⊕ f(R15, K16) = L15 ⊕ f(L16, K16).

Zato je R16 ⊕ f(L16, K16) = L15. Znaci, nakon jedne runde desifriranja dobivamo R15L15.Nastavljajuci taj postupak, nakon svake sljedece rudne desifriranja dobivat cemo redom:R14L14, R13L13, . . . , R1L1 i nakon zadnje runde R0L0. Preostaje zamijeniti poredak lijeve idesne polovice i primijeniti IP−1.Dakle, na kraju postupka desifriranja dobivamo IP−1(L0R0), a to je upravo otvoreni tekst x,sto je i trebalo dokazati. Vidimo da razlog za zamjenu lijeve i desne polovice prije primjenepermutacije IP−1 lezi upravo u zelji da se za desifriranje moze koristiti isti algoritam kao zasifriranje.

Ilustrirat cemo primjer sifriranja DES-om:

• otvoreni tekst x: 12081986ABBAC608 (zapisan heksadecimalno)

• kljuc K: 0123456789ABCDEF (zapisan heksadecimalno)

20

DES Brojznamenaka

K (hex): 0123456789ABCDEF 16K (bin): 00000001001000110100010101100111

10001001101010111100110111101111 64PC1 (K): 1111000011001100101010100000

1010101011001100111100000000 56

C(1) = 1110000110011001010101000001 28D(1) = 0101010110011001111000000001 28C(2) = 1100001100110010101010000011 28D(2) = 1010101100110011110000000010 28C(3) = 0000110011001010101000001111 28D(3) = 1010110011001111000000001010 28C(4) = 0011001100101010100000111100 28D(4) = 1011001100111100000000101010 28C(5) = 1100110010101010000011110000 28D(5) = 1100110011110000000010101010 28C(6) = 0011001010101000001111000011 28D(6) = 0011001111000000001010101011 28C(7) = 1100101010100000111100001100 28D(7) = 1100111100000000101010101100 28C(8) = 0010101010000011110000110011 28D(8) = 0011110000000010101010110011 28C(9) = 0101010100000111100001100110 28D(9) = 0111100000000101010101100110 28C(10) = 0101010000011110000110011001 28D(10) = 1110000000010101010110011001 28C(11) = 0101000001111000011001100101 28D(11) = 1000000001010101011001100111 28C(12) = 0100000111100001100110010101 28D(12) = 0000000101010101100110011110 28C(13) = 0000011110000110011001010101 28D(13) = 0000010101010110011001111000 28C(14) = 0001111000011001100101010100 28D(14) = 0001010101011001100111100000 28C(15) = 0111100001100110010101010000 28D(15) = 0101010101100110011110000000 28C(16) = 1111000011001100101010100000 28D(16) = 1010101011001100111100000000 28

21

PC2 (Ci Di):

K(0) = 110010100011110100000011101110000111000000110010 48K(1) = 000010110000001001100111100110110100100110100101 48K(2) = 011010011010011001011001001001010110101000100110 48K(3) = 010001011101010010001010101101000010100011010010 48K(4) = 011100101000100111010010101001011000001001010111 48K(5) = 001111001110100000000011000101111010011011000010 48K(6) = 001000110010010100011110001111001000010101000101 48K(7) = 011011000000010010010101000010101110010011000110 48K(8) = 010101111000100000111000011011001110010110000001 48K(9) = 110000001100100111101001001001101011100000111001 48K(10) = 100100011110001100000111011000110001110101110010 48K(11) = 001000010001111110000011000011011000100100111010 48K(12) = 011100010011000011100101010001010101110001010100 48K(13) = 100100011100010011010000010010011000000011111100 48K(14) = 010101000100001110110110100000011101110010001101 48K(15) = 101101101001000100000101000010100001011010110101 48K(16) = 110010100011110100000011101110000111000000110010 48

22

Sifriranje

x (hex) : 12081986ABBAC608 16x (bin) : 00010010000010000001100110000110

10101011101110101100011000001000 64IP (x) : 01000000001001010100100000010100

01111000001100001011011001111001 64L(0) = 01000000001001010100100000010100 32R(0) = 01111000001100001011011001111001 32L(1) = 01111000001100001011011001111001 32R(1) = 10111011010010110000000110001010 32L(2) = 10111011010010110000000110001010 32R(2) = 11000100111110000101001101000111 32L(3) = 11000100111110000101001101000111 32R(3) = 11000001001011101010100100000111 32L(4) = 11000001001011101010100100000111 32R(4) = 01000110000110001101100101110111 32L(5) = 01000110000110001101100101110111 32R(5) = 01111000001011001100101000100011 32L(6) = 01111000001011001100101000100011 32R(6) = 11101111000011101010011111011010 32L(7) = 11101111000011101010011111011010 32R(7) = 00010101001100011100101110001100 32L(8) = 00010101001100011100101110001100 32R(8) = 10101111110011111110010000001101 32L(9) = 10101111110011111110010000001101 32R(9) = 00011101010000110111010011001110 32L(10) = 00011101010000110111010011001110 32R(10) = 01011101111110001011001001010101 32L(11) = 01011101111110001011001001010101 32R(11) = 10100000111101001101000101011111 32L(12) = 10100000111101001101000101011111 32R(12) = 10110001010111110101011110001010 32L(13) = 10110001010111110101011110001010 32R(13) = 01100110010010010010010110100110 32L(14) = 01100110010010010010010110100110 32R(14) = 01110101110010110101101011010001 32L(15) = 01110101110010110101101011010001 32R(15) = 11001110101110111101111110100000 32L(16) = 11001110101110111101111110100000 32R(16) = 10011100000101110011111101100111 32

Sifrat (bin): 0011110110111101110111011110110001111100001001111000100111101010 64

Sifrat (hex): 3DBDDDEC7C2789EA 16

23

3.3. Svojstva DES-a

Uocimo da su sve operacije u DES-u linearne (sjetimo se da je ⊕ zapravo zbrajanje uZ2), s izuzetkom S-kutija. Od objave algoritma, pa sve do danas, S-kutije su obavijenetajnovitoscu.Kod DES-a znamo tek neke kriterije koji su koristeni u dizajniranju S-kutija:

1. Svaki redak u svakoj S-kutiji je permutacija brojeva od 0 do 15.

2. Niti jedna S-kutija nije linearna ili afina funkcija ulaznih podataka.

3. Promjena jednog bita u ulaznom podatku kod primjene S-kutije ima za posljedicupromjenu barem 2 bita u izlaznom podatku.

4. Za svaku S-kutiju i svaki ulazni podatak x (niz bitova duljine 6), S(x) iS(x⊕ 001100) razlikuju se za barem 2 bita.

5. Za svaku S-kutiju, svaki ulazni podatak x i sve e, f ∈ {0, 1} vrijediS(x) 6= S(x⊕ 11ef00).

Kriteriji za permutaciju P su sljedeci:

1. Cetiri izlazna bita iz svake S-kutije utjecu (cine ulazne podatke) na sest razlicitihS-kutija u iducoj rundi, a nikoja dva ne utjecu na istu S-kutiju.

2. Cetiri izlazna bita iz svake S-kutije u i-toj rundi su distribuirani tako da dva od njihutjecu na sredisnje bitove u (i + 1)-oj rundi, a dva na krajnje bitove (prva dva bita slijeva i prva dva bita s desna od 6 bitova u ulaznom podatku).

3. Za dvije S-kutije Sj i Sk vrijedi da ako neki izlazni bit od Sj utjece na neki sredisnjibit od Sk u iducoj rundi, onda niti jedan izlazni bit od Sk ne utjece na sredisnje bitoveod Sj. Za j = k ovo povlaci da izlazni bitovi od Sj ne utjecu na sredisnje bitove od Sj.

Ovi kriteriji imaju za zadatak povecati tzv. difuziju kriptosustava, tj. postici da na svakibit sifrata utjece sto vise bitova otvorenog teksta. Oni takoder otezavaju i diferencijalnukriptoanalizu o kojoj ce biti vise rijeci nesto kasnije.

Pozeljno svojstvo svakog kriptosustava jest da mala promjena bilo otvorenog teksta bilokljuca dovodi do znacajne promjene u sifratu. Posebno, promjena jednog bita otvorenogteksta ili jednog bita kljuca trebala bi utjecati na mnogo bitova sifrata. Ako je promjenamala, to moze znacajno smanjiti broj otvorenih tekstova ili kljuceva koje treba ispitati.

Kriptosustav DES ima gore opisano svojstvo koje se ponekad naziva i “efekt lavine”.Ilustrirat cemo to s dva primjera (preuzetim iz [7]).

24

Primjer 3.1. Otvoreni tekstovi (zapisani heksadecimalno)

0000000000000000 i 1000000000000000

sifrirani su pomocu kljuca (zapisanog heksadecimalno s ukljucenim paritetnim bitovima)

029749C438313864.

Broj bitova u kojima se razlikuju odgovarajuci sifrati nakon svake pojedine od 16 rundi DES-aprikazan je u sljedecoj tablici:

runda 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16broj bitova

koji se 1 6 21 35 39 34 32 31 29 42 44 32 30 30 26 29 34razlikuju

Primjer 3.2. Otvoreni tekst

68852E7A1376EBA4

sifriran je pomocu kljuceva

E5F7DF313B0862DC i 64F7DF313B0862DC

koji se razlikuju samo u jednom bitu (i jednom paritetnom bitu: prvih 7 bitova su im 1110010i 0110010). Broj bitova razlike u sifratima, po rundama, prikazan je u sljedecoj tablici:

runda 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16broj bitova

koji se 0 2 14 28 32 30 32 35 34 40 38 31 33 28 26 34 35razlikuju

Postavlja se pitanje zasto u DES-u imamo upravo 16 rundi. Primjeri 3.1. i 3.2. sugerirajuda vec kod 3. runde efekt lavine dolazi do izrazaja. Moze se pokazati da nakon 5. rundesvaki bit sifrata ovisi o svakom bitu otvorenog teksta i svakom bitu kljuca, a nakon 8. rundesifrat je prakticki slucajna funkcija bitova otvorenog teksta i kljuca. Razlog da ipak imamo16 rundi je u zahtjevu da poznati kriptoanaliticki napadi (kao sto je npr. diferencijalnakriptoanaliza) ne budu ucinkovitiji od napada “grubom silom”.

Izvorna IBM-ova ponuda NBS-u je imala 112-bitni kljuc. Prva IBM-ova realizacija Fe-istelove sifre - kriptosustav LUCIFER je imao 128-bitni kljuc. Medutim, u verziji DES-akoja je prihvacena kao standard duljina kljuca je smanjena na 56 bitova (da bi kljuc staona tadasnje cipove, ali vjerojatno i pod utjecajem NSA). Mnogi kriptografi su bili protivtako kratkog kljuca jer su smatrali da ne pruza dovoljnu sigurnost protiv napada “grubomsilom”. Uz 56-bitni kljuc imamo 256 ≈ 7.2·1016 mogucih kljuceva, pa se na prvi pogled napad“grubom silom” cini sasvim neprakticnim. Medutim, vec 1977. godine Diffie i Hellman suustvrdili da tadasnja tehnologija omogucava konstrukciju racunala koje bi otkrivalo kljuc zajedan dan, a troskove su procijenili na 20 milijuna dolara. Na osnovu toga su zakljucili daje takvo sto dostupno samo organizacijama kao sto je NSA, ali da ce oko 1990. godine DESpostati sasvim nesiguran. Godine 1993. Weiner je procijenio da se za 100000 dolara mozekonstruirati racunalo koje bi otkrilo kljuc za 35 sati, a za 10 milijuna dolara ono koje bi ot-krilo kljuc za 20 minuta. Ipak sve su to bili hipotetski dizajni i konacno probijanje DES-a se

25

dogodilo tek 1998. godine. Tada je Electronic Frontier Foundation (EFF) za 250000 dolarazaista napravila “DES Cracker”, koji je probijao poruke sifrirane DES-om za 56 sati.

Za fiksni kljuc K pomocu DES-a definirana je permutacija skupa {0, 1}64. Dakle, skup od256 permutacija dobivenih pomocu DES-a je podskup grupe svih permutacija skupa {0, 1}64,ciji je red 264!. Postavlja se pitanje je li DES (tj. skup svih njegovih permutacija) podgrupaove grupe. Odgovor na to pitanje je negativan. Naime, skup svih DES-permutacija nijezatvoren. Preciznije, poznato je da je red podgrupe generirane svim DES-permutacijamaveci o 22499. Ova je cinjenica jako vazna jer pokazuje da se visestrukom upotrebom DES-amoze postici veca sigurnost. Posebno je popularan tzv. Triple-DES koji koristi tri korakaobicnog DES-a s razlicitim kljucevima. Kad bi DES cinio grupu, Triple-DES ne bi bio nistasigurniji od obicnog DES-a.

Neki DES-kljucevi su znatno nesigurniji od ostalih, te ih svakako treba izbjegavati. Prvimedu njima su tzv. DES slabi kljucevi. Kod njih su svi podkljucevi K1, . . . , K16 jednaki.To znaci da su postupak sifriranja i desifriranja doslovno jednaki. Dakle, vrijedi E−1K (x) =EK(x). Drugim rijecima, DES sa slabim kljucem je involucija. Poznato je da sifriranje saslabim kljucem ostavlja 232 otvorenih tekstova fiksnim. Postoje tocno 4 DES slaba kljuca.To su oni kod kojih se u rastavu PC1(K) = C0D0 lijeve i desne polovice C0 i D0 sastoje iliod samih nula ili od samih jedinica.

Slabi kljucevi (heksadecimalno) C0 D0

0101 0101 0101 0101 {0}28 {0}28FEFE FEFE FEFE FEFE {1}28 {1}281F1F 1F1F 0E0E 0E0E {0}28 {1}28E0E0 E0E0 F1F1 F1F1 {1}28 {0}28

Par kljuceva (K,K ′) se naziva par DES polu-slabih kljuceva ako je kompozicija DES-ova skljucevima K i K ′ identiteta. Drugim rijecima, sifriranje s jednim je isto kao desifriranje sdrugim. Kod DES-a s polu-slabim kljucem, medu 16 podkljuceva K1, . . . , K16 postoje samodva razlicita; svaki od njih se koristi u po 8 rundi. Postoji tocno 6 parova DES polu-slabihkljuceva.

C0 D0 parovi poluslabih kljuceva (heksadecimalno) C0 D0

{01}14 {01}14 01FE 01FE 01FE 01FE, FE01 FE01 FE01 FE01 {10}14 {10}14{01}14 {10}14 1FE0 1FE0 0EF1 0EF1, E01F E01F F10E F10E {10}14 {01}14{01}14 {0}28 01E0 01E0 01F1 01F1, E001 E001 F101 F101 {10}14 {0}28{01}14 {1}28 1FFE 1FFE 0EFE 0EFE, FE1F FE1F FE0E FE0E {10}14 {1}28{0}28 {01}14 011F 011F 010E 010E, 1F01 1F01 0E01 0E01 {0}28 {10}14{1}28 {01}14 E0FE E0FE F1FE F1FE, FEE0 FEE0 FEF1 FEF1 {1}28 {10}14

Konacno, neki kljucevi generiraju samo 4 razlicita podkljuca. Takvi se kljucevi zovu DESpotencijalno slabi kljucevi i ima ih tocno 48. Sve u svemu, izmedu 256 mogucih kljucevaimamo samo 64 kljuca koja treba izbjegavati, pa je to lako i uciniti.

26

3.4. Nacini djelovanja

Iako je sam opis DES-a dosta dug, on se moze vrlo ucinkovito implementirati, i hardverskii softverski. Spomenimo da je do 1991. godine u NBS-u registrirano 45 hardverskih imple-mentacija DES-a. Godine 1992. proizveden je cip s 50000 tranzistora koji moze sifrirati 109

bita (tj. 16 milijuna blokova) po sekundi (cip je kostao 300 dolara).

Jedna vazna primjena DES-a je u bankarskim transakcijama. Tako se, izmedu ostalog,DES koristio za sifriranje PIN-ova (personal identification numbers), te transakcija prekobankomata. DES je takoder do nedavno bio u sirokoj uporabi u civilnim satelitskim komu-nikacijama.

Mi smo do sada opisali kako radi DES na jednom bloku od 64 bita. U stvarnim situaci-jama, u kojima su poruke znatno duze, poznata su 4 nacina djelovanja DES-a. Ti nacinidjelovanja pokrivaju sve moguce primjene DES-a, a takoder su primjenjivi na bilo koju sime-tricnu blok sifru (opceniti nacini djelovanja u blok sustavima su opisani ranije u potpoglavlju2.4.).

Najjednostavniji nacin djelovanja je ECB (Electronic Codebook) u kojem se svaki blokotvorenog teksta sifrira s istim kljucem. Dakle, poruka se podijeli na blokove od po 64 bita(zadnji blok se nadopuni ako je nuzno), te se sifrira jedan po jedan blok koristeci uvijekjedan te isti kljuc. ECB nacin djelovanja je idealan za kratke poruke, pa se cesto koristi zarazmjenu kljuceva za sifriranje.

Kako bismo povecali sigurnost, zelimo postici da identicnim blokovima u otvorenomtekstu odgovaraju razliciti sifrati. Relativno jednostavan nacin da se to postigne je koristenjeCBC (Cipher Block Chaining) nacina djelovanja. Na trenutni blok otvorenog teksta seprimjeni operacija XOR sa sifratom prethodnog bloka, a tek potom se sifrira pomocu kljucaK. Dakle, ci = EK(ci−1 ⊕ xi) za i ≥ 1. Na pocetku uzimamo da je c0 = IV , gdje jeIV inicijalni vektor, koji mora biti poznat i primaocu i posiljatelju. To se moze posticinpr. tako da ga se posalje ECB nacinom djelovanja. Za desifriranje koristimo relaciju xi =ci−1 ⊕ E−1K (ci).

U prethodne dvije metode DES funkcionira kao blok sifra. No, od DES-a se moze na-praviti i protocna (stream) sifra. Prvi nacin je pomocu CFB (Cipher Feedback) nacinadjelovanja. Kod protocnih sifri nema potrebe za prosirivanjem poruke da bi se dobio cijelibroj blokova. To znaci da ce sifrat biti iste duljine kao otvoreni tekst. Obraduje se odjednomr bitova (1 ≤ r ≤ 64).

U sifriranje krecemo sifriranjem 64 bitnog inicijalnog vektora IV. Na j prvih bitova s li-jeva izlaznog podatka primijenimo XOR sa x1 i tako dobijemo c1. Ulazni podatak za sljedecikorak sifriranja se dobije tako da se prethodni ulazni podatak pomakne za j mjesta ulijevo,a na desni kraj se stavi c1. Postupak se nastavlja sve dok se sve jedinice otvorenog tekstane sifriraju.

Kod desifriranja se koristi ista shema, osim sto se na odgovarajuci sifrat primjeni XOR sizlaznim podatkom funkcije sifriranja EK da bi se dobio otvoreni tekst. Uocimo da se ponovokoristi funkcija EK , a ne DK .

OFB (Output Feedback) nacin djelovanja je vrlo slican CFB nacinu djelovanja. Jedina

27

razlika je da se ulazni podatak za funkciju EK u iducem koraku salje odmah nakon primjeneEK u prethodnom koraku (prije primjene XOR-a). Jedna od prednosti OFB nacina djelova-nja je da greske u prijenosu ne utjecu na daljnje sifriranje. Npr. greska u c1 utjece samo nax1. Ovaj nacin djelovanja se cesto koristi u sifriranju poruka sa satelita. No, ovo svojstvomoze biti i nedostatak. Stoga se CBC i CFB nacini djelovanja koriste za ustanovljavanjevjerodostojnosti poruke.

Pored ova cetiri (klasicna) nacina djelovanja, u posljednje je vrijeme sve popularniji CTR(Counter) nacin djelovanja. U njemu se koristi niz brojaca (countera) k1, k2, . . . Niz blokovasifrata dobiva se po sljedecem pravilu:

ci = xi ⊕ EK(ki).

Brojaci moraju biti u parovima razliciti. Obicno se to postize tako da se brojacu k1 pridruzineka inicijalna vrijednost, a potom se ostali brojaci povecavaju za 1: ki = k1 + (i − 1)(zbrajanje je modulo 2b, gdje je b duljina bloka; kod DES-a je b = 64).

U CTR nacinu djelovanja se sifriranje (i desifriranje) moze lako paralelizirati. Kodulancanih nacina djelovanja je to bio problem, jer je algoritam morao zavrsiti obradu jednogbloka, da bi presao na naredni. To pokazuje jos jednu prednost CTR nacina djelovanja, ato je mogucnost desifriranja samo jednog odredenog bloka, sto moze biti zanimljivo za nekeaplikacije. Slicno kao kod CFB i OFB nacina djelovanja, i ovdje se u desifiranju ponovokoristi funkcija EK (a ne DK). Ovo nije neka posebna prednost kod DES-a, ali moze bitirelevantno kod blokovnih kriptosustava kod kojih algoritam desifriranja nije doslovno istikao algoritam sifriranja.

28

3.5. Kriptoanaliza DES-a

U ovom poglavlju opisat cemo tri napada na DES: diferencijalnu kriptoanalizu, linearnukriptoanalizu i EFF-ov DES Cracker. Iako prva dva napada nisu dovela do probijanja DES-a, njihova je vaznost u tome sto su primjenjivi na bilo koji simetricni blokovni kriptosustav.Tako su kod vecine mogucih nasljednika DES-a operacije i broj rundi odabrani upravo takoda bi dobiveni kriptosustav bio sto otporniji na diferencijalnu i linearnu kriptoanalizu.

Metodu diferencijalne kriptoanalize prvi su javno opisali izraelski kriptolozi Eli Biham iAdi Shamir 1990. godine. No, po svemu sudeci, ta je metoda bila poznata konstruktorimaDES-a vec 1974. godine, te su je imali u vidu kod dizajna S-kutija i permutacije P. Metodaspada u napade “odabrani otvoreni tekst”.

Prikazat cemo kako ova metoda moze biti primijenjena na DES s n rundi (n ≤ 16).Slijedeci [7], metodu cemo potom ilustrirati prikazom napada na DES s 3 runde. U tusvrhu mozemo ignorirati inicijanu permutaciju IP i njezin inverz (oni nemaju nikakav efektna kriptoanalizu). Stoga cemo L0R0 uzeti za otvoreni tekst, a LnRn za sifrat u DES-u sn rundi. Osnovna ideja diferencijane kriptoanalize jest usporedba XOR-a od dva otvorenateksta sa XOR-om od odgovarajuca dva sifrata. Opcenito, promatrat cemo dva otvorenateksta L0R0 i L∗0R

∗0 sa zadanom XOR vrijednoscu L′0R

′0 = L0R0 ⊕ L∗0R∗0.

Definicija 3.1. Neka je Sj neka S-kutija (1 ≤ j ≤ 8), te neka je (Bj, B∗j ) uredeni par 6-

bitnih nizova. Tada Bj ⊕B∗j zovemo input XOR, a Sj(Bj)⊕ Sj(B∗j ) zovemo output XOR.

Za svaki B′j ∈ (Z2)6, sa 4(B′j) oznacavamo skup svih uredenih parova (Bj, B

∗j ) ciji je input

XOR jednak B′j.

Jasno je da vrijedi4(B′j) = {(Bj, Bj ⊕B′j) : Bj ∈ (Z2)

6},pa skup 4(B′j) sadrzi 26 = 64 para. Za svaki par iz 4(B′j) mozemo izracunati output XOR.Dobivamo 64 output XOR-a koji su distribuirani izmedu 24 = 16 mogucih vrijednosti zaoutput XOR. Cinjenica da ovih 64 output XOR-ova nije uniformno distribuirano predstavljaosnovu za kriptoanaliticki napad.

Primjer 3.3. Promotrimo prvu S-kutiju S1 i input XOR 110100. Imamo

4(110100) = (000000, 110100), (000001, 110101), . . . , (111111, 001011).

Za svaki uredeni par iz 4(110100) izracunamo output XOR.Npr. S1(000000) = 14(10) = 1110, S1(110100) = 9(10) = 1001, pa je output XOR para(000000,110100) jednak 0111. Nakon sto izracunamo output XOR-ove za sva 64 para, dobi-vamo sljedecu distribuciju:

0000 0001 0010 0011 0100 0101 0110 01110 8 16 6 2 0 0 12

1000 1001 1010 1011 1100 1101 1110 11116 0 0 0 0 8 0 6

U Primjeru 3.3. pojavilo se samo 8 od mogucih 16 output XOR-ova i to s vrlo razlicitimfrekvencijama. Opcenito, u prosjeku se pojavljuje 75− 80% mogucih XOR-ova.

29

Definicija 3.2. Za j ∈ {1, 2, ..., 8}, 6-bitni niz B′j i 4-bitni niz C ′j definiramo

INj(B′j, C

′j) = {Bj ∈ (Z2)

6 : Sj(Bj)⊕ Sj(Bj ⊕B′j) = C ′j},

Nj(B′j, C

′j) = |INj(B

′j, C

′j)|.

Dakle, Nj(B′j, C

′j) je broj parova ciji je input XOR jednak B′j, a output XOR jednak C ′j.

Distribucije iz Primjera 3.3. su upravo vrijednostiN1(110100, C ′1), C′1 ∈ (Z2)

4, dok su skupoviIN1(110100, C ′1) prikazani u sljedecoj tablici.

output XOR moguci inputi00000001 000011, 001111, 011110, 011111, 101010, 101011,

110111, 1110110010 000100, 000101, 001110, 010001, 010010, 010100,

011010, 011011, 100000, 100101, 010110, 101110,101111, 110000, 110001, 111010

0011 000001, 000010, 010101, 100001, 110101, 1101100100 010011, 100111010101100111 000000, 001000, 001101, 010111, 011000, 011101,

100011, 101001, 101100, 110100, 111001, 1111001000 001001, 001100, 011001, 101101, 111000, 11110110011010101111001101 000110, 010000, 010110, 011100, 100010, 100100,

101000, 11001011101111 000111, 001010, 001011, 110011, 111110, 111111

Tablica 3.1. Skupovi IN1(110100, C ′1)

Podsjetimo se da ulazni podatak za S-kutije u i -toj rundi ima oblik B = E ⊕ J , gdje jeE = E(Ri−1) prosirenje od Ri−1, a J = Ki je i -ti podkljuc. Sada je

B ⊕B∗ = (E ⊕ J)⊕ (E∗ ⊕ J) = E ⊕ E∗,

pa input XOR ne ovisi o podkljucu J. Zapisimo B, E, J, B∗ i E∗ kao spoj od osam 6-bitnihnizova:

B = B1B2B3B4B5B6B7B8

E = E1E2E3E4E5E6E7E8

J = J1J2J3J4J5J6J7J8

B∗ = B∗1B∗2B∗3B∗4B∗5B∗6B∗7B∗8

E∗ = E∗1E∗2E∗3E∗4E∗5E∗6E∗7E∗8

30

Definicija 3.3. Neka su Ej i E∗j 6-bitni nizovi, a C ′j 4-bitni niz. Definiramotestj(Ej, E

∗j , C

′j) = {Bj ⊕ Ej : Bj ∈ INj(E

′j, C

′j)}, gdje je E ′j = Ej ⊕ E∗j .

Primjer 3.4. Neka je E1 = 000001, E∗1 = 110101, C ′1 = 1101.Buduci da je N1(110100, 1101) = 8, skup test1(000001, 110101, 1101) ce imati 8 elemenata.Iz tablice vidimo da je

IN1(110100, 1101) = {000110, 010000, 010110, 011100, 100010, 100100, 101000, 110010},

pa jetest1(000001, 110101, 1101) = {000111, 010001, 010111, 011101,

100011, 100101, 101001, 110011}.

Tvrdnja 3.1. Neka je C ′j = Sj(Bj)⊕ Sj(B∗j ). Tada je Jj ∈ testj(Ej, E

∗j , C

′j).

Dokaz: Po definiciji treba provjeriti da je Jj ⊕ Ej ∈ INj(E′j, C

′j).

No, Jj⊕Ej = Bj i Sj(Bj)⊕Sj(Bj⊕B′j) = Sj(Bj)⊕Sj(B∗j ) = C ′j, pa je Jj ∈ testj(Ej, E

∗j , C

′j).

Tvrdnja 3.1. nam daje nekoliko mogucnosti za Jj. Primjenom Tvrdnje 3.1. na neko-liko razlicitih trojki Ej, E

∗j , C

′j, mozemo odrediti Jj. Jasno, ovdje je pretpostavka da mi te

vrijednosti Ej, E∗j , C

′j znamo. Pokazimo sada kako se ove ideje mogu primijeniti u napadu

“odabrani otvoreni tekst” na DES s 3 runde.Krecemo od parova otvorenih tekstova L0R0 i L∗0R

∗0 koje smo odabrali tako da je R0 = R∗0,

tj. R′0 = 00 . . . 0, te odgovarajucih sifrata L3R3, L∗3R∗3. Vrijedi:

R3 = L2 ⊕ f(R2, K3) = R1 ⊕ f(R2, K3) = L0 ⊕ f(R0, K1)⊕ f(R2, K3),

R∗3 = L∗0 ⊕ f(R∗0, K1)⊕ f(R∗2, K3),

R′3 = L′0 ⊕ f(R2, K3)⊕ f(R∗2, K3).

Sada je f(R2, K3) = P (C) i f(R∗2, K3) = P (C∗), gdje su C i C∗ outputi S-kutija. Stoga je

P (C)⊕ P (C∗) = R′3 ⊕ L′0,

pa jeC ′ = C ⊕ C∗ = P−1(R′3 ⊕ L′0).

Konacno, E = E(R2) = E(L3) i E∗ = E(R∗2) = E(L∗3). Dakle, E,E∗ i C ′ su nam poznati.

31

Algoritam 6 testjUlazni podaci: L0R0, L

∗0R∗0, L3R3 i L∗3R

∗3, gdje je R0 = R∗0

1. Izracunamo: C ′ = P−1(R′3 ⊕ L′0)

2. Izracunamo: E = E(L3) i E∗ = E(L∗3)

3. Za j = 1, 2, . . . , 8 racunamo testj(Ej, E∗j , C

′j).

Primjenom ovog algoritma na nekoliko razlicitih inputa mozemo odrediti podkljuc K3,sto nam daje 48 bitova kljuca K. Preostalih 8 bitova mozemo pronaci tako da testiramosvih 28 = 256 mogucnosti.

Primjer 3.5. Pretpostavimo da imamo sljedeca tri para otvorenih tekstova i sifrata (zapi-sanih heksadecimalno) sifriranih istim kljucem (otvoreni tekstovi su odabrani tako da zado-voljavaju uvjet R0 = R∗0):

otvoreni tekst sifrat

748502CD38451097 03C70306D8A09F10

3874756438451097 78560A0960E6D4CB

486911026ACDFF31 45FA285BE5ADC730

375BD31F6ACDFF31 134F7915AC253457

357418DA013FEC86 D8A31B2F28BBC5CF

12549847013FEC86 0F317AC2B23CB944

Primjenom algoritma na prvi par, dobivamo:E = 000000000111111000001110100000000110100000001100E∗ = 101111110000001010101100000001010100000001010010C ′ = 10010110010111010101101101100111

Za drugi par dobivamo:E = 101000001011111111110100000101010000001011110110E∗ = 100010100110101001011110101111110010100010101010C ′ = 10011100100111000001111101010110

a za treci:E = 111011110001010100000110100011110110100101011111E∗ = 000001011110100110100010101111110101011000000100C ′ = 11010101011101011101101100101011

Sada za svaki Jj, j = 1, 2, . . . , 8, konstruiramo brojac koji broji za koliko parova Jj za-dovoljava uvjet iz Tvrdnje 3.1. Na primjer, u slucaju prvog para i brojaca za J1 imamo

32

E ′1 = 101111, C ′1 = 1001. Nadalje je

IN1(101111, 1001) = {000000, 000111, 101000, 101111}.

Buduci da je E1 = 000000, konacno dobivamo

J1 ∈ test1(000000, 101111, 1001) = {000000, 000111, 101000, 101111}.

To znaci da brojac povecamo za 1 na pozicijama 0, 7, 40 i 47. Konacne vrijednosti svih 8brojaca, nakon sto su obradena sva tri para, prikazane su u Tablici 3.2.

J11 0 0 0 0 1 0 1 0 0 0 0 0 0 0 00 0 0 0 0 1 1 0 0 0 0 1 1 0 0 00 1 0 0 0 1 0 0 1 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

J20 0 0 1 0 3 0 0 1 0 0 1 0 0 0 00 1 0 0 0 2 0 0 0 0 0 0 1 0 0 00 0 0 0 0 1 0 0 1 0 1 0 0 0 1 00 0 1 1 0 0 0 0 1 0 1 0 2 0 0 0

J30 0 0 0 1 1 0 0 0 0 0 0 0 0 1 00 0 0 3 0 0 0 0 0 0 0 0 0 0 1 10 2 0 0 0 0 0 0 0 0 0 0 1 1 0 00 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0

J43 1 0 0 0 0 0 0 0 0 2 2 0 0 0 00 0 0 0 1 1 0 0 0 0 0 0 1 0 1 11 1 1 0 1 0 0 0 0 1 1 1 0 0 1 00 0 0 0 1 1 0 0 0 0 0 0 0 0 2 1

J50 0 0 0 0 0 1 0 0 0 1 0 0 0 0 00 0 0 0 2 0 0 0 3 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 2 0 0 0 0 0 0 1 0 0 0 0 2 0

J61 0 0 1 1 0 0 3 0 0 0 0 1 0 0 10 0 0 0 1 1 0 0 0 0 0 0 0 0 0 00 0 0 0 1 1 0 1 0 0 0 0 0 0 0 01 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0

J70 0 2 1 0 1 0 3 0 0 0 1 1 0 0 00 1 0 0 0 0 0 0 0 0 0 1 0 0 0 10 0 2 0 0 0 2 0 0 0 0 1 2 1 1 00 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1

33

J80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 1 0 1 0 0 1 0 10 3 0 0 0 0 1 0 0 0 0 0 0 0 0 0

Tablica 3.2. J-brojaci

Vidimo da u svakom brojacu imamo jedinstvenu poziciju s brojem 3. Te pozicije odredujubitove od J1, J2, . . . , J8. Te pozicije su redom; 47, 5, 19, 0, 24, 7, 7, 49, odnosno binarno

J1 = 101111

J2 = 000101

J3 = 010011

J4 = 000000

J5 = 011000

J6 = 000111

J7 = 000111

J8 = 110001

Sada pogledamo kako izgleda raspored bitova kljuca u podkljucu K3, te na osnovu toga re-konstruiramo 48 bitova kljuca K:

0001101 0110001 01?01?0 1?00100

0101001 0000??0 111?11? ?100011

Upitnike imamo na onim mjestima koja ne sudjeluju u podkljucu K3. Sada testiranjem pre-ostalih 256 mogucnosti dobivamo da je kljuc (zapisan heksadecimalno, s paritetnim bitovima)jednak

1A624C89520DEC46.

U nasem napadu na DES s 3 runde posli smo od zahtjeva da je R′0 = 00 . . . 0. Ova idejase moze poopciti.

Definicija 3.4. Neka je n prirodan broj. n-rundna karakteristika je niz oblika

L′0, R′0, L

′1, R

′1, p1, . . . , L

′n, R

′n, pn

sa svojstvima:

1. L′i = R′i−1 za 1 ≤ i ≤ n,

2. Neka je 1 ≤ i ≤ n, te neka su Li−1, Ri−1, L∗i−1, R

∗i−1 izabrani tako da je

Li−1 ⊕ L∗i−1 = L′i−1 i Ri−1 ⊕ R∗i−1 = R′i−1. Pretpostavimo da su Li, Ri, L∗i , R

∗i dobiveni

primjenom jedne rudne DES-a. Tada je vjerojatnost da je Li ⊕ L∗i = L′i iRi ⊕R∗i = R′i jednaka pi.

U nasem primjeru mi smo koristili 1-rundnu karakteristiku

34

L′0 = proizvoljno, R′0 = 00000000(16), L′1 = R′0, R

′1 = L′0, p1 = 1.

Druga moguca 1-rundna karakteristika je

L′0 = 00000000(16), R′0 = 60000000(16), L

′1 = R′0, R

′1 = 00808200(16), p1 = 0.21875.

Biham i Shamir su pronasli 13-rundnu karakteristiku pomocu koje se moze probitiDES (pronaci 48 bitova kljuca) uz poznavanje sifrata za 247 odabranih otvorenih tekstova.Ukoliko nemamo mogucnost koristiti napad “odabrani otvoreni tekst” vec samo “poznatiotvoreni tekst”, onda iz veceg broja parova otvoreni tekst-sifrat moramo odabrati one korisne.Zanimljivo je napomenuti da je procijenjeno da time broj potrebnih DES operacija u napadudiferencijalnom kriptoanalizom postaje priblizno 255, sto je sasvim usporedivo s brojem DESoperacija u napadu “grubom silom” uz jedan poznati par otvoreni tekst-sifrat. Broj kljucevakoje treba testirati je 256. Primijetimo da se taj broj moze prepoloviti koristeci svojstvoeK(x) = eK(x), gdje − oznacava komplement, pa se K i K mogu testirati istovremeno.

Spomenimo da je za DES sa 8, 10, 12 i 14 rundi potrebno poznavanje sifrata za 214, 224,231, odnosno 239 odabranih tekstova. Dakle, ovo nam daje pravo objasnjenje zasto DES imaupravo 16 rundi.

Linearnu kriptoanalizu je uveo japanski kriptolog Mitsuru Matsui 1993. godine i cini seda ova metoda nije bila poznata tvorcima DES-a. Ideja se sastoji u tome da iako bitovi kljucanisu linearne funkcije otvorenog teksta i sifrata, neki od njih se mogu dobro aproksimiratilinearnom funkcijom.

Oznacimo bitove otvorenog teksta s P [1], P [2], . . . , sifrata s C[1], C[2], . . . , te kljuca sK[1], K[2], . . . Takoder uvedimo oznaku

A[i1, i2, . . . , ik] = A[i1]⊕ A[i2]⊕ . . .⊕ A[ik].

Zelimo naci linearne jednadzbe oblika

P [i1, i2, . . . , ia]⊕ C[j1, j2, . . . , jb] = K[k1, k2, . . . , kc]

koje za slucajni otvoreni tekst i sifrat vrijede s vjerojatnoscu p 6= 0.5. Sto je p dalje od0.5, to bolje. Tada racunamo lijevu stranu za mnogo parova otvoreni tekst-sifrat i takodobivamo ocekivanu vrijednost desne strane. Pretpostavimo da je u vise pola slucajeva nalijevoj strani dobivena 0. Ako je p > 0.5, onda za vjerojatnu vrijednost uzimamo 0, a akoje p < 0.5, onda uzimamo 1. Tako dobivamo jednu linearnu jednadzbu u bitovima kljuca.Ako nademo dovoljno takvih jednadzbi, moci cemo odrediti kljuc. Postavlja se pitanje kolikoparova otvoreni tekst-sifrat treba uzeti. Odgovor je otprilike |p− 0.5|−2 parova. Preciznije,Matsui je pokazao da ako uzmemo |p− 0.5|−2 parova, vjerojatnost uspjeha je 97.7%, dok jeza 2|p− 0.5|−2 parova vjerojatnost uspjeha 99.8%.

Kao primjer navedimo jednadzbu

L0[3, 8, 14, 25]⊕R0[17]⊕R3[3, 8, 14, 25]⊕ L3[17] = K1[26]⊕K3[26],

35

za koju je Matsui pokazao da vrijedi s vjerojatnoscu 0.695.

Opisimo Matsuijevu konstrukciju.Za S-kutiju Sj, j = 1, 2, . . . , 8, te cijele brojeve 0 ≤ α ≤ 63 i 0 ≤ β ≤ 15, definiramo

NSj(α, β) = |{0 ≤ x ≤ 63 :⊕i

(x[i] · α[i]) =⊕i

(Sj(x)[i] · β[i])}|.

Ukoliko je NSj(α, β) 6= 32, onda mozemo reci da postoji neka korelacija izmedu ulaznih iizlaznih podataka od kutije Sj. Mozda bismo ocekivali da ce NSj(α, β) uvijek biti blizu 32.No, to nije tocno te postoje i drasticni primjeri odstupanja poput

NS5(16, 15) = |{2, 7, 10, 14, 16, 24, 28, 29, 37, 40, 59, 62}| = 12.

Tu je vjerojatnost podudaranja ulaznih i izlaznih podataka samo 12/64 = 0.1875, stoje dosta daleko od 0.5. Ovdje se radi o vezi izmedu 2. bita ulaznog podatka u S5-kutiju,te sva cetiri izlazna bita iz te kutije (jer je α = 16 = 010000(2), β = 15 = 1111(2)). Akouzmemo u obzir kako funkcija prosirenja E prosiruje ulazne podatke, te kako permutacija Prasporeduje izlazne podatke, dobivamo sljedece jednadzbe:

R0[17]⊕K1[26] = f(R0, K1)[3, 8, 14, 25] = L0[3, 8, 14, 25]⊕R1[3, 8, 14, 25],

R2[17]⊕K3[26] = f(R2, K3)[3, 8, 14, 25] = L2[3, 8, 14, 25]⊕R3[3, 8, 14, 25].

Uzmemo li u obzir da je L2 = R1 i L3 = R2, iz ovih jednadzbi dobivamo upravo gorenavedenu Matsuievu jednadzbu. Vjerojatnost da vrijedi Matsuieva jednadzba jednaka jezbroju vjerojatnosti da obje ove jednadzbe vrijede i vjerojatnosti da obje jednadzbe nevrijede, a to je

0.18752 + (1− 0.1875)2 ≈ 0.6953.

Pomocu linearne kriptoanalize Matsui je opisao napad “poznati otvoreni tekst” koji zaprobijanje DES-a treba u prosjeku 243 otvorenih tekstova. Ovaj napad je implementiranpomocu 12 radnih stanica i za otkrivanje kljuca je trebalo 50 dana.

No, ni diferencijalna ni linearna kriptoanaliza nisu probile DES, vec su tu ucinili brzi ijeftini cipovi. Naime, pokazalo se da je u praksi lakse izvesti napad “grubom silom” s 255

DES operacija, nego primijeniti napad linearnom kriptoanalizom koji zahtijeva 243 poznatihparova otvoreni tekst-sifrat.

U srpnju 1998., koristeci cipove i osobno racunalo, Electronic Frontier Foundation jenapravio “DES Cracker”. Kostao je $250000, a za njegovu izradu je utroseno godinu dana.DES Cracker je probio poruku sifriranu DES-om za 56 sati. Sagraden je od 1536 cipova kojimogu testirati 88 milijardi kljuceva po sekundi. Inace, u samoj konstrukciji ovog stroja nemanista osobito novo. Slicnih prijedloga bilo je i ranije, no EFF je prvi to sproveo u djelo i teknakon izrade DES Crackera moglo se definitivno ustvrditi da DES nije siguran kriptosustav.

metoda slozenost podataka slozenost slozenostnapada poznato odabrano skladistenja obrade

”gruba sila” 1 — neznatno 255

linearna kriptoanaliza 243 — za tekstove 243

diferencijalna kriptoanaliza — 247 za tekstove 247

255 — za tekstove 255

Tablica 3.3. Snaga DES-a s obzirom na razlicite napade

36

4. Drugi blokovni kriptosustavi

4.1. FEAL

Fast Data Encipherment Algorithm (FEAL) predstavlja familiju algoritama koja je imalakriticnu ulogu u razvoju i usavrsavanju razlicitih naprednih tehnika kriptoanalize, ukljucujucilinearnu i diferencijanu kriptoanalizu. Feal-N preslikava 64-bitni otvoreni text u 64-bitneblokove sifrata sa 64-bitnim tajnim kljucem. To je N-rundna Feistelova sifra slicna DES-u, ali sa jednostavnijom f funkcijom uvecanom za XOR polovina podataka u pocetnoj izavrsnoj fazi, te za XOR podkljuceva izravno na polovicama podataka.

FEAL je dizajniran radi brzine i jednostavnosti, posebice za softvere na 8-bitnim mikro-procesorima. Koristi bajtno orijentirane operacije (8-bitno zbrajanje modulo 256, 2-bitnurotaciju lijevo, i XOR), izbjegava permutaciju bitova i potragu po tablicama, te je krat-kog koda. Pocetna ponudena komercijalna verzija sa 4 runde (FEAL-4), ponuden kao brzazamjena za DES, se pokazala kao znatno nesigurnijom od ocekivanog. FEAL-8 se takoderpokazao manje sigurnim od ocekivanog. FEAL-16 i FEAL-32 mogu jos ponuditi sigurnostusporedivu s onom DES-a, ali propusnost opada s povecanjem broja rundi. Nadalje, krozvelike potrage po tablicama brzina DES implementacija moze biti ubrzana, ali kod FEAL-ato nije slucaj.

Sljedeci algoritam specificira FEAL-8. Funkcija f(A, Y ) preslikava par ulaznih podatakaod 32× 16 bita u 32-bitni izlazni podatak. U funkciji su obje S-kutije koristene po 2 puta;svaka preslikava par 8-bitnih ulaznih podataka u 8-bitni izlazni podatak (vidjeti Tablicu4.1.). S0 i S1 dodaju 1 bit d ∈ {0, 1} 8-bitnim argumentima x i y, zanemaruju izvodenjezadnjeg bita i rotiraju rezultat 2 bita lijevo (ROT2):

Sd(x, y) = ROT2(x+ y + d mod 256)

Raspored kljuceva koristi slicnu funkciju fK(A,B) (vidjeti donju tablicu; Ai, Bi, Yi, ti i Ui su8-bitne varijable), preslikavajuci 32-bitna ulazna podatka u 32-bitni izlazni podatak.

U ← f(A, Y ) U ← fK(A,B)

t1 = (A0 ⊕ A1)⊕ Y0 A0 ⊕ A1

t2 = (A2 ⊕ A3)⊕ Y1 A2 ⊕ A3

U1 = S1(t1, t2) S1(t1, t2 ⊕B0)U2 = S0(t2, U1) S0(t2, U1 ⊕B1)U0 = S0(A0, U1) S0(A0, U1 ⊕B2)U3 = S1(A3, U2) S1(A3, U2 ⊕B3)

Tablica 4.1. Izlaz: U = (U0, U1, U2, U3) za FEAL funkciju f

Operacije 2-bitne rotacije i XOR su obje linearne, a jedina nelinearna elementarna operacijau FEAL-u je zbrajanje modulo 256.

37

Algoritam 7 FEAL-8

Ulaz: 64-bitni otvoreni tekst M = m1 . . .m64; 64-bitni kljuc K = k1 . . . k64.Izlaz: 64-bitni blok sifrata C = c1 . . . c64.

1. (raspored kljuceva) Izracunaj 16 16-bitnih podkljuceva Ki iz K koristeci se algoritmomFEAL-8 raspored kljuceva

2. Definiraj ML = m1 . . .m32, MR = m33 . . .m64

3. (L0, R0)← (ML,MR)⊕ ((K8, K9), (K10, K11)) (XOR inicijalnih podkljuceva.)

4. R0 ← R0 ⊕ L0

5. Za i, 1 ≤ i ≤ 8, cini: Li ← Ri−1, Ri ← Li−1 ⊕ f(Ri−1, Ki−1) (Koristi gore navedenutablicu za f(A, Y ), gdje je A = Ri−1 = (A0, A1, A2, A3) i Y = Ki−1 = (Y0, Y1).)

6. L8 ← L8 ⊕R8

7. (R8, L8)← (R8, L8)⊕ ((K12, K13), (K14, K15)) (XOR zavrsnih podkljuceva.)

8. C ← (R8, L8) (Uocite zamjenu u rasporedu zavrsnih blokova.)

Algoritam 8 FEAL-8 raspored kljuceva

Ulaz: 64-bitni kljuc K = k1 . . . k64.Izlaz: 256-bitni produzeni kljuc (16-bitni podkljucevi Ki, 0 ≤ i ≤ 15).

1. (Zapocni) U (−2) ← 0, U (−1) ← k1 . . . k32, U(0) ← k33 . . . k64.

2. Udef= (U0, U1, U2, U3) za 8-bitni Ui.

Izracunaj K0, . . . , K15 za i, 1 ≤ i ≤ 8:

(a) U ← fK(U (i−2), U (i−1) ⊕ U (i−3)). (fK je definiran u gornjoj tablici, gdje A i Boznacavaju 4-bajtne vektore (A0, A1, A2, A3), (B0, B1, B2, B3).)

(b) K2i−2 = (U0, U1), K2i−1 = (U2, U3), U(i) ← U .

FEAL je moguce desifrirati koristenjem Algoritma 7 s jednakim kljucem K i sifratomC = (R8, L8) kao u otvorenom tekstu, ali s obrnutim rasporedom kljuceva. Nadalje, pod-kljucevi ((K12, K13), (K14, K15)) se koriste za inicijalni XOR (korak 3), ((K8, K9), (K10, K11))za zavrsni XOR (korak 7), dok se rundni kljucevi koriste od K7 do K0 (korak 5.). Ovo jepotpuno analogno desifriranju za DES.

FEAL-N: FEAL sa 64-bitnim kljucem moze biti generaliziran do N -rundi. N = 2x je pre-porucljivo; x = 3 daje FEAL-8 (Algoritam 7). FEAL-N koristi N + 8 16-bitnih podkljuceva:kljucevi koristeni u i-toj rundi su K0, . . . , KN−1; KN , . . . , KN+3 se koriste za inicijalni XOR;dok se preostali kljucevi koriste za zavrsni XOR. Raspored kljuceva za Algoritam 8 je gene-raliziran da izracunava kljuceve od K0 do KN+7 kako i ide od 1 do (N

2) + 4.

FEAL-NX: Prosirivanjem FEAL-N-a sa 128-bitnim kljucem rezultira FEAL-NX-om, sasljedecim promijenjenim rasporedom kljuceva. Kljuc se dijeli na 64-bitne polovine (KL, KR).

38

KR je podijeljen u 32-bitne polovine (KR1, KR2). Za 1 ≤ i ≤ (N2

) + 4, definiramo Qi =KR1 ⊕ KR2 za i ≡ 1 mod 3; Qi = KR1 za i ≡ 2 mod 3; i Qi = KR2 za i ≡ 0 mod3. Drugi argument (U (i−1) ⊕ U (i−3)) za fK u koraku 2.(a) Algoritma 8 je zamijenjen sU (i−1)⊕U (i−3)⊕Qi. Za KR = 0, FEAL-NX odgovara FEAL-N-u gdje je KL 64-bitni FEAL-N kljuc K.

Primjer 4.6. (FEAL test vektori):Za heksadecimalni otvoreni tekst M = 00000000 00000000 i heksadecimalni kljucK = 01234567 89ABCDEF , Algoritam 8 generira podkljuceve(K0, . . . , K7) = DF3BCA36 F17C1AEC 45A5B9C7 26EBAD25.Algoritam 7 generira FEAL-8 sifrat C = CEEF2C86 F2490752.Za FEAL-16, odgovarajuci sifrat je C ′ = 3ADE0D2A D84D0B6F ;za FEAL-32, C ′′ = 69B0FAE6 DDED6B0B.Za 128-bitni kljuc (KL, KR) sa KL = KR = K (kako je gore navedeno),M ima odgovarajuci FEAL-8X sifrat C ′′′ = 92BEB65D 0E9382FB.

Tablica 4.2. prikazuje razne objavljene napade na FEAL; LC i DC oznacavaju linearnui diferencijalnu kripotoanalizu, vremena izvodenja su dobivena na standardnim osobnimracunalima.

metoda slozenost podataka slozenost slozenostnapada poznato odabrano skladistenja obrade

FEAL-4 – LC 5 — 30K bajtova 6 minuta

FEAL-6 – LC 100 — 100K bajtova 40 minuta

FEAL-8 – LC 224 10 minutaFEAL-8 – DC — 27 parova 280K bajtova 2 minute

FEAL-16 – DC — 229 parova 230 operacija

FEAL-24 – DC — 245 parova 246 operacija

FEAL-32 – DC — 266 parova 267 operacija

Tablica 4.2. Snaga FEAL-a s obzirom na razlicite napade

39

4.2. IDEA

International Data Encryption Algorithm (IDEA) je kriptosustav koji su razvili svicarskikriptografi Xuejia Lai i James Massey s ETH Zurich. Prvu verziju zvanu PES (Pro-posed Encryption Standard) su objavili 1990. Medutim, taj kriptosustav nije bio otporanna diferencijalnu kriptoanalizu (za 128-bitni kljuc je trebalo 264 operacija), pa su nakonBiham-Shamirovog otkrica, autori 1992. godine prepravili algoritam i nazvali ga IDEA.

IDEA sifrira 64-bitni otvoreni tekst u blokove 64-bitnog sifrata koristeci 128-bitni kljucK. Djelomicno je utemeljen na novitetnoj generalizaciji Feistel strukture, sastoji se od 8racunski jednakih rundi koje su popracene izlaznom transformacijom. Runda r koristi sest16-bitnih podkljucevaKr

i , 1 ≤ i ≤ 6, kako bi transformirala 64-bitni unosX u izlazni podatakod cetiri 16-bitna bloka, koji su ubaceni kao ulazni podatak u sljedecu rundu. Izlaz osmerunde ulazi u izlaznu transformaciju uposljavajuci cetiri dodatna podkljuca K

(9)i , 1 ≤ i ≤ 4

kako bi proizveo konacni sifrat Y = (Y1, Y2, Y3, Y4). Svi podkljucevi su izvuceni iz K.

Glavni koncept IDEA sifriranja je mijesanje operacija iz tri razlicite algebarske skupineod 2n elemenata. Odgovarajuce grupne operacije na podblokovima a i b duljine bita n = 16su XOR s obzirom na bitove:

• XOR, (oznaka a⊕ b)

• zbrajanje modulo 2n : (a+ b) AND 0xFFFF , (oznaka a� b ),

• mnozenje modulo 2n+1, pri cemu je 0 ∈ Z2n asociran s 2n ∈ Z2n+1, tj. ukoliko je a = 0ili b = 0 zamijenimo ga s 2n, a ako je rezultat jednak 2n zamijenimo ga s 0, (oznakaa� b).

40

Slika 8. Racunanje u IDEA

41

Algoritam 9 IDEA sifriranje

Ulaz: 64-bitni otvoreni tekst M = m1 . . .m64; 128-bitni kljuc K = k1 . . . k128.Izlaz: 64-bitni blok sifrata Y = (Y1, Y2, Y3, Y4).

1. (raspored kljuceva) Izracunaj 16-bitne podkljuceve K(r)1 , . . . , K

(r)6 za runde 1 ≤ r ≤ 8,

i K(9)1 , . . . , K

(9)4 za izlaznu transformaciju, koristeci Algoritam 10.

2. (X1, X2, X3, X4)← (m1, . . . ,m16,m17, . . . ,m32,m33, . . . ,m48,m49, . . . ,m64), gdje je Xi

16-bitni skup podataka.

3. Za rundu r, 1 ≤ r ≤ 8 izvrsi:

(a) X1 ← X1 �K(r)1 , X4 ← X4 �K(r)

4 , X2 ← X2 �K(r)2 , X3 ← X3 �K

(r)3 .

(b) t0 ← K(r)5 � (X1 ⊕X3), t1 ← K

(r)6 � (t0 � (X2 ⊕X4)), t2 ← t0 � t1.

(c) X1 ← X1 ⊕ t1, X4 ← X4 ⊕ t2, a← X2 ⊕ t2, X2 ← X3 ⊕ t1, X3 ← a.

4. (izlazna transformacija) Y1 ← X1 �K(9)1 , Y4 ← X4 �K(9)

4 , Y2 ← X3 �K(9)2 ,

Y3 ← X2 �K(9)3 .

Algoritam 10 raspored kljuceva

Ulaz: 128-bitni kljuc K = k1 . . . k128.

Izlaz: 52 16-bitni podblokovi kljuca K(r)i za 8 rundi r i izlaznu transformaciju.

1. Poredaj podkljuceve K(1)1 . . . K

(1)6 , K

(2)1 . . . K

(2)6 , . . . , K

(8)1 . . . K

(8)6 , K

(9)1 . . . K

(9)4

2. Podijeli K u osam 16-bitnih blokova; tako dobivene blokove direktno dodijeli na prvihosam podkljuceva.

3. Ucini sljedece dok sva 52 podkljuca ne budu dodijeljena: ciklicki prebacuj K lijevo 25bita; raspodijeli rezultat u 8 blokova; dodijeli te blokove na sljedecih osam podkljuceva.

Ovaj postupak se moze provesti direktno koristeci tablicni zapis svih mogucih blokovakljuceva. Mnozenje se ovdje moze smatrati analogonom S-kutija u DES-u. Modul 216 + 1 jeodabran zbog efikasnije implementacije modularnog mnozenja. Ove tri operacije su inkom-patibilne, u smislu da nikoje dvije ne zadovoljavaju zakone asocijativnosti i distributivnosti.IDEA ima 8 rundi i zavrsnu transformaciju. U njima se koriste 52 16-bitna podkljuca gene-rirana pomocu polaznog 128-bitnog kljuca.

Primjer 4.7. (IDEA test vektori):U Tablici 4.3. su dani uzorci podataka za IDEA sifriranje 64-bitnog otvorenog teksta Mpomocu 128-bitnog kljuca K. Svi ulazi su 16-bitne heksadecimalne vrijednosti.Tablicom 4.4. je dan detaljniji opis odgovarajuceg desifriranja rezultirajuceg 64-bitnog sifrataC s istim kljucem K.

42

128-bitni kljucK = (1, 2, 3, 4, 5, 6, 7, 8)

r K(r)1 K

(r)2 K

(r)3 K

(r)4 K

(r)5 K

(r)6

1 0001 0002 0003 0004 0005 00062 0007 0008 0400 0600 0800 0a003 0c00 0e00 1000 0200 0010 00144 0018 001c 0020 0004 0008 000c5 2800 3000 3800 4000 0800 10006 1800 2000 0070 0080 0010 00207 0030 0040 0050 0060 0000 20008 4000 6000 8000 a000 c000 e0019 0080 00c0 0100 0140 — —

64-bitni otvoreni tekstM = (0, 1, 2, 3)

r X1 X2 X3 X4

1 00f0 00f5 010a 01052 222f 21b5 f45e e9593 0f86 39be 8ee8 11734 57df ac58 c65b ba4d5 8e81 ba9c f77f 3a4a6 6942 9409 e21b 1c647 99d0 c7f6 5331 620e8 0a24 0098 ec6b 49259 11fb ed2b 0198 6de5

Tablica 4.3. Uzorak sifriranja IDEA-om, rundni podkljucevi i sifrat (X1, X2, X3, X4)

K = (1, 2, 3, 4, 5, 6, 7, 8)

r K′(r)1 K

′(r)2 K

′(r)3 K

′(r)4 K

′(r)5 K

′(r)6

1 fe01 ff40 ff00 659a c000 e0012 fffd 8000 a000 cccc 0000 20003 a556 ffb0 ffc0 52ab 0010 00204 554b ff90 e000 fe01 0800 10005 332d c800 d000 fffd 0008 000c6 4aab ffe0 ffe4 c001 0010 00147 aa96 f000 f200 ff81 0800 0a008 4925 fc00 fff8 552b 0005 00069 0001 fffe fffd c001 — —

C = (11fb, ed2b, 0198, 6de5)r X1 X2 X3 X4

1 d98d d331 27f6 82b82 bc4d e26b 9449 a5763 0aa4 f7ef da9c 24e34 ca46 fe5b dc58 116d5 748f 8f08 39da 45cc6 3266 045e 2fb5 b02e7 0690 050a 00fd 1dfa8 0000 0005 0003 000c9 0000 0001 0002 0003

Tablica 4.4. Uzorak desifriranja IDEA-om, rundni podkljucevi i varijable (X1, X2, X3, X4)

Napomena 4.1. (Sigurnost IDEA)Za potpunu 8-rundnu IDEA-u, osim napada na slabe kljuceve, nijedan zabiljezen napadnije bolji od iscrpne potrage na 128-bitnom prostoru kljuceva. Sigurnost IDEA je trenutnougrozena samo slaboscu uzrokovanom relativno malom duljinom blokova od 64-bita, u uspo-redbi s duljinom koristenog kljuca.

43

Literatura

[1] E. Bach, J. Shallit, Algorithmic Number Theory, Volume I: Efficient Algoritms, MITPress, Cambridge, MA, 1996.

[2] A. Dujella, M. Maretic, Kriptografija, Udzbenik Sveucilista u Zagrebu, Element, Zagreb,2007.

[3] A. G. Konheim, Computer Security and Cryptography, John Wiley and Sons, Inc., NewJersey, 2007.

[4] W. Mao, Modern Cryptography: Theory and Practice, Prentice Hall PTR, Prentice-Hall,Inc., New Jersey, 2004.

[5] A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRCPress, 1996.

[6] B. Schneier, Applied Cryptography, Second edition, John Wiley and Sons, Inc., 1996.

[7] D. Stinson, Cryptography: Theory and Practice, CRC Press, CRC Press LLC, 1995.

44

5. Sazetak

U ovom radu su opisane blok sifre, sigurnost blok sifri, te kriptoanaliticki napadi. Spo-menuti su i kriteriji za vrednovanje blok sifri, te su detaljno opisani nacini djelovanja nadporukama vecim od n-bitova.

U radu je obraden nacin sifriranja podataka Data encryption standard (DES). DES je biovrlo utjecajan u napretku moderne kriptografije u akademskom svijetu. Razvio ga je IBM-ovtim kriptografa u ranim 1970-ima na temelju ranijeg projekta Horst Feistela. Godine 1976.americki National Bureau of Standards (NBS) u suradnji s National Security Agency (NSA)je prihvatio DES kao standard.

Prema rijecima kriptografa Brucea Schneiera, “DES je ucinio vise na podrucju kriptoana-lize nego ista drugo. To je bio algoritam za proucavanje.”

Posto DES koristi kljuc duljine 56 bitova, s vremenom je postao nesiguran. ElectronicFrontier Foundation (EFF) je 1998. godine napravio “DES Cracker” koji je probio porukusifriranu DES-om za 56 sati. Utvrdeno je da je napad grubom silom jedini u praksi izvedivnapad na DES.

Vjeruje se da je algoritam gotovo siguran u obliku Triple DES, iako postoje teoretskinapadi. Postepeno je sifriranje zamijenio Advanced Encryption Standard (AES) i DES jepovucen kao standard od strane National Institute of Standards and Technology (bivsi NBS)2002. godine, te je AES stupio na snagu.

45

6. Summary

This paper describes block ciphers, the security of block ciphers and cryptanalytic attacks.It also contains the criteria for evaluating block ciphers and carefully describes modes ofoperation on messages larger than n-bits.

Furthermore this paper describes the Data Encryption Standard (DES). DES proved tobe of great influence to the advancement of modern cryptography in the academic world. Itwas developed by IBM’s team of cryptographers in the early 1970’s, and was based on anearlier project by Horst Feistel. In the year 1976. american National Bureau of Standards(NBS) in collaboration with the National Security Agency (NSA) have accepted DES asstandard.

In the words of cryptographer Bruce Schneier, “DES did more to galvanize the field ofcryptanalysis than anything else. Now there was an algorithm to study.”

Seeing as how DES uses a key length of 56 bits, in time it became unsafe. ElectronicFrontier Foundation (EFF) made a “DES Cracker” in 1998 and broke DES-crypt messagein 56 hours. It was determined that the only efficient way to attack DES is by brute force.

The algorithm is believed to be secure in his Triple DES form, although an attack is po-ssible in theory. Gradually the ciphering was replaced by the Advanced Encryption Standard(AES) and as of 2002., DES was officially withdrawn by the National Institute of Standardsand Technology (former NBS) in place of AES.

46

7. Zivotopis

Marija Brnatovic je rodena 12. kolovoza 1986. u Vinkovcima.Osnovnu skolu je pohadala u Otoku (OS Josipa Lovretica) od 1993. do 2001. godine.Nakon zavrsene osnovne skole, upisala je se 2. srpnja 2001. godine u obrazovni program opcegimnazije u Vinkovcima (Gimnazija Matije Antuna Reljkovica).30. lipnja 2005. godine je stekla srednju strucnu spremu, te je se iste godine upisala naSveuciliste Josipa Jurja Strossmayera u Osijeku / Odjel za matematiku.