20
ELEKTROTEHNIČKI FAKULTET UNIVERZITET U SARAJEVU Odsjek za telekomunikacije MSc studij, I godina akademska godina 2011/2012 Predmet: Kriptografija i sigurnost sistema Predavač: R. prof. dr Narcis Behlilović, dipl. ing. el. PREDAVANJA 4 Simetrični blokovski kriptografski algoritmi. DES. AES.

KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

  • Upload
    dinkic

  • View
    19

  • Download
    4

Embed Size (px)

DESCRIPTION

kss

Citation preview

Page 1: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

ELEKTROTEHNIČKI FAKULTET UNIVERZITET U SARAJEVU

Odsjek za telekomunikacije MSc studij, I godina akademska godina 2011/2012

Predmet: Kriptografija i sigurnost sistema

Predavač: R. prof. dr Narcis Behlilović, dipl. ing. el.

PREDAVANJA 4

Simetrični blokovski kriptografski algoritmi. DES. AES.

Page 2: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

2

2.2 Rezime simetričnog kriptografskog algoritma DES

DES (Data Encryption Standard) je 23.11.1976. godine prihvaćen kao

savezni standard za sigurnosnu zaštitu podataka u USA. Njegov idejni tvorac je

Horst Fejstel (Horst Feistel njemački emigrant, došao u USA 1934. godine,

(1915-1990)), koji je dugo radio na problematici šifriranja i dešifriranja u

Vazduhoplovstvu USA.

Nezadovoljan zbog blokiranja njegovih samostalnih istrazivanja u ovoj

oblasti, u Vazduhoplovstvu USA, prelazi raditi u laboratorije Tomas Dz.

Watson IBM, gdje dizajnira algoritam Lucifer. Taj algoritam će uskoro postati i

baza algoritma DES.

NBS (National Bureau of Standards) je na javnom konkursu, raspisanom

1973. godine, trazio da ponuđena rješenja za novi kriptosistem moraju

ispunjavati i slijedeće uslove:

1. Visok nivo sigurnosti, koji proizilazi iz ključa, a ne iz tajnosti algoritma.

2. Efikasnost

3. Punu javnost i definisanost algoritma, koji treba biti i lako razumljiv.

4. Racionalnost algoritma pri njegovoj implementaciji na računarsku

infrastrukturu.

5. Dostupnost svim potencijalnim korisnicama.

6. Algoritam mora biti provjerljiv

7. Mogućnost izvoza i u područja van USA.

U prvoj iteraciji konkursa nijedan prijedlog nije ispunio sve pobrojane

uslove. Tek na ponovljenom konkursu 1974. godine algoritam razvijen unutar

IBM, zasnovan na algoritmu Luciferu.

Nakon korekcija (izmjena) u prvobitnoj verziji IBM - ovog algoritma, (ona

se je u početku bazirala na 112 bitnom ključu), na kojim je insistirala NSA

(National Security Agancy), ovaj algoritam je 1976. godine promoviran kao

nacinalni standard za zaštitu podataka. DES je prema svojoj strukturi:

1. Simetričan algoritam (isti ključ se koristi i za šifriranje i za

dešifriranje).

2. Blokovski orjentisan algoritam (izvorni tekst se transformiše u binarnu

formu, a potom dijeli u blokove, koji se zatim šifriraju blok po blok, uz

upotrebu ključa).

Page 3: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

3

3. Algoritam koji je zasnovan na Feistelovoj mrezi (Feistel Network), koja

je sadrzana i u izvornom konceptu algoritma Lucifer.

NSA se zalagala da se broj mogućih ključeva ograniči na 1017

odnosno na

256

, smatrajući da je takav nivo sigurnosti primjeren civlnim potrebama (u

civilnom sektoru tog doba, niko nije imao tako moćnu računarsku

infrastrukturu, koja bi mogla pretraziti tako uređen prostor ključeva. NSA je s

druge strane već tada imala računare sposobne da pretraze i prostor ključeva

reda 256

).

Page 4: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

4

Slika broj 2.2.1 Blok šema algoritma DES

Page 5: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

5

Slika broj 2.2.2 Jedna runda unutar algoritma DES

U skladu sa slikama: broj 2.2.1 i broj 2.2.2, nakon što se izvorni tekst

prevede u binarnu formu, slijedi njegova podjela na 64 bitne blokove.

Svaki 64 bitni blok, prvo se podvrgne početnoj permutaciji IP (Initial

Permutation). Početna permutacija i odgovarajuća završna permutacija, prema

provedenim analizama, ne doprinose značajnije povećanju bezbjednosti

algoritma. One mnogo više imaju za cilj da olakšaju proceduru unošenja

izvornog teksta i šifrata u DES čipove, i to u djelovima veličine byta (treba imati

na umu da je DES nastajao u doba 8-bitnih mikroprocesorskih magistrala, te da

softverski nije lako izvršiti permutovanje bit po bit).

U slijedećem koraku, tako izmješani biti, upravo obrađivanog 64 bitnog

bloka, djele se u dva polubloka od po 32 bita – lijevi polublok L0 i desni

polublok R0. Biti sadrzani u desnom polubloku, prolaze kroz dodatnu

funkcionalnu obradu, zajedno s ključem algoritma. Taj proces se često u

literaturi terminološki naziva „centrifuga“. U „centrifugi“ se dakle uvodi u

dejstvo – odnosno aktivira i zadati „ključ algoritma“.

Nakon što se provede njegova kompresija na 56 bita (izostavljanje po

jednog bita unutar byta, stvara prostor za uvođenje bitova provjere parnosti,

koji treba da stvore mogućnost provjere je li u ključu napravljena mozda

nezeljena greška) slijedi i permutacija PC-1, tih 56 bita po ranije propisanom

pravilu. Poslije toga se obavlja i translacija tih 56 bita i to tako da se vrši

ciklički pomjeraj u lijevo, za jedno ili dva mjesta, ovisno u kojoj rundi se taj

postpak provodi.

Dobijenih 56 bita se zatim ponovo reducira – komprimira, pomoću

permutacije PC-2, na 48 bita, po sistemu PC-2, definisanom u algoritmu. Tada

praktično nastaje podključ prve (jedne) runde. Ovim potezom se mijenja i

redosljed bita, a i bira podskup bita, zbog čega se spomenuti postupak često u

kriptografiji označava kao permutacija kompresije (Compression Permutation).

S obzirom da se u svakoj rundi provodi i translacija unutar ključa za jedno ili

dva mjesta, to se unutar 16 subključeva, što se pridruzuju svakoj od provedenih

rundi, pojedini biti iz polazne verzije 56 bitnog ključa pojavljuju bar 14 puta

(od 16 teoretski mogućih pojavljivanja).

Prema slici broj 2.2.2 subključ tekuće runde, treba XOR operacijom

povezati s polublokom R0 . Ovaj polublok se stoga prvo proširuje sa 32 bita na

48 bita, pomoću permutacije proširenja (Expansion Permutation). Nakon ovog

poteza postoje i biti koji utiču na dvije supstitucije - čime se zavisnost izlaznih

Page 6: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

6

bita od ulaznih bita brze širi (u kriptografiji je to poznato kao efekat lavine -

Avalanche Effect, a treba imati u vidu i da je DES projektovan s namjeraom da

se što prije postigne stanje u kojem svaki bit šifrata zavisi od svakog bita

izvornog teksta i svakog bita ključa).

Nakon provođenja XOR operacije, nad dva 48 bitna bloka, formira se 8

šestobitnih grupa, koje se potom filtriraju kroz 8 S-kutija. S kutije se smatraju

najvrijednijim dijelom DES algoritma. One imaju formalni zadatak da

transformišu 8 šestobitnih rasporeda u 8 četverobitnih rasporeda, Tih 8

četverobitnih rasporeda predstavljaju novi 32 blok, koji se ponovo permutuje

permutacijom P (permutacija P se naziva prava permutacija - Straight

Permutation), Tako se dobija funkcija f (R0, K1), koja se potom putem XOR

operacije, obrađuje sa polublokom L0. Rezultat te operacije je opet 32 bitni

blok, ali koji se sada proglašava i za novu verziju desnog polubloka R1. Nova

verzija lijevog bloka L1 izvodi se na osnovu relacije R0 = L1.

S obzirom da se oko dizajna S kutija mnogo špekuliralo, nakon što je

postupak diferencijalne kriptoanalize 1990. godine javnosti otkrio dio tajni ovog

dizajna, IBM je objavio osnovne kriterijume za prijektovanje S kutija.

1. Svaka S- kutija ima 6 ulaznih bitova i i 4 izlazna bita (to je najviše što se

moglo postići na jednom čipu s tehnologijom 1974. godine).

2. Nijedan izlazni bit S-kutije ne treba da bude previše blizu linearnoj

funkciji ulaznih bitova.

3. Ako fiksirate krajnji lijevi bit i krajnji desni bit S kutije i mijenjate

preostala četiri unutrašnja bita, svaki mogući 4-bitni izlaz dobije se tačno

jednom.

4. Ako se dva ulaza S-kutije razlikuju u tačno jednom bitu, izlazi se

moraju razlikovati u najmanje dva bita.

5. Ako se dva ulaza S-kutije razlikuju u tačno dva srednja bita, izlazi se

moraju razlikovati u najmanje dva bita.

6. Ako se dva ulaza S-kutije razlikuju u prva dva bita, a posljednja dva

bita su identični, izlazi ne smiju biti isti.

7. Za bilo koju 6-bitnu razliku između ulaza, koja nije jednaka nuli, najviše

8 od 32 para ulaza s tom razlikom mogu da prpizvedu istu razliku ulaza.

8. Kriterijum sličan prethodnom, ali za slučaj tri aktivne S-kutije.

Page 7: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

7

Izlazi iz osam S kutija, dakle onih 8 četverobitnih rasporeda, kao što je već

ranije konstatovano, ponovo se permutuje putem prave permutacije, ili završne

permutacije P (Straight Permutation), za koju je karakteristično da se nijedan

bit ne koristi dvaputa i nijedan bit se ne zanemaruje.

Slično kriterijumima za dizajn S kutija, objavljeni su i ograničenja, koja su

poštovana tokom provođenja završne permutacije P.

1. Četiri izlazna bita iz svake S kutije, utječu, odnosno čine ulazne podatke

na šest različitih S kutija u idućoj rundi, a nikoja dva ne utiču na istu

kutiju.

2. Četiri izlazna bita iz svake kutije u i-toj rundi, su tako distribuirni da

dva od njih utiču na središnje bitove u (i+1)-voj rundi, a dva na krajnje

bitove (dva najljevija i dva najdesnija, od šest bitova u ulaznom podatku).

3. Za dvije S-kutije Sj i Sk vrijedi slijedeća zakonitost: ako neki izlazni bit

od Sj utiče na neki središnji bit od Sk u narednoj rundi, onda niti jedan

izlazni bit od Sk ne utiče na središnje bitove od Sj . Za Sj = Sk proizilazi da

izlazni bitovi od Sj ne utiču na središnje bitove od Sj.

U literaturi je dosta analizirana i problematika „slabih ključeva u

algoritmu DES“.

a) Izrazito slabi ključevi su u prvom redu ključevi kod kojih se ispostavlja

da su subključevi rundi međusobno jednaki, dakle vazi relacija: K1 = K2 =

K3 = K4 = K5 =٠٠٠٠ =K16 . Postupak šifriranja i dešifriranja su onda

identični, odnosno vazi da je:

eK (eK(x)) = x

Zbog ovakve osobine 232

izvornih tekstova nakon šifriranja se ne mijenja.

Postoje tačno 4 slaba ključa algoritma DES. To su oni ključevi, kod kojih se u

rasporedu C0D0 lijeva i desna polovica, dakle C0, odnosno D0, formiraju, ili od

samih nula, ili od samih jedinica. UU heksadecimalnoj notaciji ti ključevi su:

1. 0101010101010101

2. 1F1F1F1F1F1F1F1F

3. E0E0 E0E0 E0E0 E0E0

4. FEFE FEFE FEFE FEFE

Page 8: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

8

b) Djelimično slabi ključevi su oni ključevi koji tokom 16 rundi generišu

praktično samo dva različita subključa, pri čemu se svaki od njih koristi

tokom 8 rundi. Kaze se da par ključeva (Kj, Kl) predstavlja par djelimično

slabih DES ključeva, ako je rezultat kompozicije dva DES algoritma

provedena s ključevima Kj i Kl ništa drugo nego izvorni tekst. Šifrovanje

sjednim od njih je isto kao i dešifrovanje s drugim od njih. Postoji šest

parova djelimično slabih ključeva, a jedan od njih je par:

01FE01FE01FE01FE i FE01 FE01 FE01 FE01 FE01

c) Potencijalno slabi ključevi su oni ključevi koji imaju takvu simbolsku

strukturu da generišu samo 4 različita subključa tokom 16 rundi. Ovakvih

ključeva ima tačno 48.

Iz prethodno navedenog pregleda, proizilazi da treba izbjegavati 64 ključa

(4+6+6+48=64) koji su specificirani u tačkama od a) do c).

Zašto algoritam DES ima baš 16 rundi? Istrazivanja motivisana ovim

pitanjem, pokazala su da nakon pet rundi svaki bit šifrata postaje funkcija

svakog bita izvornog teksta i svakog bita ključa (C. H. Meyer,

„Cyphertext/Plaintext and Cyphertext/Key Dependencies vs Number of Rounds

for Data Encyption Standard“, AFIS Conference Proceedings, 47, 1978. pp.

1119-1126). Poslije osam rundi šifrat je slučajna funkcija svakog bita izvornog

teksta i svakog bita ključa (A. G. Konheim, „Cryptography: A Primer“, New

York:John Wiley & Sons., 1981.). Bihamova i Shamirova diferencijalna

kriptoanaliza (1990. godine) je objasnila da DES sa manje od 16 rundi, moze

biti kompromitovan napadom tipa „Poznat izvorni tekst“, efikasnije nego

metodom „Napad grubom silom“. Da li su tvorci DES-a znali i za elemente

diferencijalne kriptoanalize?

Usvajanjem DES-a riješen je problem standardizacije, što je ohrabrilo

poslovni svijet da svoje sluzbene komunikacije zaštiti šifriranjem pomoću DES-

a. Ali tada se pojavio problem sigurne distribucije ključa, što dobro odslikava

recimo komunikacija klijent-banka. Banke su u početku to rješavale slanjem

ključa po povjerljivom glasniku, ali takav pristup ima niz slabosti posebno

iskazan sa porastom broja klijenata (usporenost transporta, troškovi

distribucije rastu....).

Za fiksni ključ K pomoću DES-a definisana je jedna permutacija skupa

{0,1}64

, odnosno 256

permutacija dobijenih pomoću DES-a je podskup grupe svih

permutacija skupa {0,1}64

, čiji je red (264

)!. Postavlja se pitanje je li DES

(odnosno skup svih ovih permutacija) podgrupa ove grupe. Odgovor je nije, jer

Page 9: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

9

skup svih DES permutacija nije zatvoren, jer je pokazano da je red ove pogrupe

generirane svim DES permutacijama veći od 22499

. Na osnovu ove činjenice

zaključeno je da se višestrukom upotrebom DES-a moze povećati nivo njegove

sigurnosti. Posebno je popularan trostruki DES, koji ima tri koraka običnog

DES-a, ali svaki put sa različitim ključevima.

y = eM(dL(eK(x))), x = dK(eL(dM(y)))

Ključ kod trostrukog DES-a je duzine 168 bita. Pri verziji u kojoj je M = K

duzina ključa je 112 bita. Dvostruki DES ima izrazene slabosti pri napadu tipa

„susret u sredini“ (Meet-in-the- Middle, opisao ga je Diffie već 1977. godine),

kada pokazuje samo neznatno bolje karakteristike od običnog DES-a.

2.3 Rezime simetričnog kriptografskog algoritma IDEA

IDEA (International Data Encryption Algorithm) je algoritam razvijen

1992. godine, na ETH Zurich, od strane Xuejie Lai i James Massey. Ovaj

algoritam koristi 128 bitni ključ za šifriranje 64-bitnih blokova izvornog teksta.

Sam algoritam, u svom toku, sadrzi tri osnovne operacije:

1. XOR operaciju, formalna oznaka O.

2. Sabiranje po modulu 216

,

3. Mnozenje po modulu (216

+1), formalna oznaka o.

Mnozenje po modulu (216

+1), u algoritmu IDEA ima sličnu ulogu, ulozi S

kutija u algoritmu DES. Modul (216

+1), je odabran zbog efikasnije

implementacije modularnog mnozenja. Pobrojane tri operacije su inkopatibilne

u smislu da nikada dvije od njih ne udovoljavaju zakone asocijativnosti i

distributivnosti. IDEA ima osam rundi i završnu transformaciju. U tih osam

rundi koriste se 52, 16-bitna subuključa ((K1(r)

, K2(r)

,... K6(r)

) tokom osam rundi

( r= 1,2,..,8) i četiri subključa (K1(9)

, K2(9)

, K3(9)

, K4(9)

) za završnu transformaciju)

koji se generiraju na osnovu polaznog 128 bitnog ključa. U prvoj iteraciji se

pravi 6 16- bitnih subključeva ((K1(1)

, K2(1)

,... K6(1)

) i prva dva subključa druge

iteracije ((K1(2)

, K2(2)

). Potom se bitovi polaznog 128 bitnog ključa K pomjeraju

za 25 mjesta ulijevo, čime se pravi novi 128 bitni raspored kao osnova za

Page 10: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

10

preostala četiri ključa druge iteracije ((K3(2)

, K4(2)

, K5(2)

, K6(2)

) i prva četiri

ključa treće runde ((K1(3)

, K2(3)

, K3(3)

,K4(3)

).

Izvorni tekst se prikazuje u obliku X = (X1, X2, X3, X4) pri čemu su Xi 16

bitni podblokovi. Na slici broj 2.3.1 prikazan je blok dijagram algoritma IDEA.

Slika broj 2.3.1 Blok dijagram algoritma IDEA.

Prema gornjem blok dijagraku, osnovni koraci u algoritmu IDEA su:

1. Pomnozi X1 i prvi subključ K1(1)

, po modulu (216

+1) .

2. Saberi X2 i drugi subključ K2(1)

, po modulu (216

).

3. Saberi X3 i treći subključ K3(1)

, po modulu (216

).

Page 11: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

11

4. Pomnozi X4 i četvrti subključ K4(1)

, po modulu (216

+1).

5. Primjeni XOR operaciju na rezultate koraka (1) i (3).

6. Primjeni XOR operaciju na rezultate koraka (2) i (4).

7. Pomnozi rezultate koraka (5) i peti subključ K5(1)

, po modulu (216

+1).

8. Saberi rezultate koraka (6) i koraka (7) , po modulu (216

)

9. Pomnozi rezultate koraka (8), sa šestim subključem K6(1)

, po modulu

(216

+1).

10. Saberi rezultate koraka (7) i koraka (9) , po modulu (216

)

11. Primjeni XOR operaciju na rezultate koraka (1) i (9).

12. Primjeni XOR operaciju na rezultate koraka (3) i (9).

13. Primjeni XOR operaciju na rezultate koraka (2) i (10).

14. Primjeni XOR operaciju na rezultate koraka (4) i (10).

Izlaz tekuće runde su uvijek četiri podbloka, koji su rezultati koraka broj

(11), (12), (13) i (14). Nakon toga, treba još da međusobno zamjene i vlastita

mjesta, dva unutrašnja bloka (ovo se ne radi , jedino u posljednjoj rundi), te da

se dobije ulaz za slijedeću rundu (64 bita).

Algoritam IDEA, za razliku od algoritma DES nastao je isključivo u

akademskom ambijentu (dakle bez uplitanja institucija tipa NSA), pa su sumnje

u postojanje „zadnjih vrata“ (Backdoor) znatno manje. IDEA je i patentirana,

vlasnik njenog patenta je firma Ascom - Tech AG – Switzerland. Za njenu

komercijalnu upotrebu treba stoga pribaviti i odgovarajuću licencu. Ipak za

nekomercijalnu upotrebu, licenca još uvijek nije potrebna.

Algoritam IDEA je efikasan i na 16 - bitnim procesorima. Softverska

realizacija algoritma IDEA, već u startu svoje implementacije, pokazala je da je

dva puta brza od softverske realizacije algoritma DES.

Ovaj algoritam, koristi se recimo i kod PGP paketa, kao jedno od

mogućih riješenja za simetričnu enkripciju. (Pretty Good Privacy – Philip R.

Zimmermann (Philip R. "Phil" Zimmermann Jr. Algoritam IDEA pokazao se

otpornim, i na linearnu kriptoanalizu i na difrencijalnu kriptoanalizu. Kako je

prostor ključeva koje treba testirati tokom napada metodom „potpunog

pretrazivanja“, reda 2128

, to se ovaj algoritam smatra zasada neranjivim.

Page 12: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

12

Slično kao i u algoritmu DES i kod algoritma IDEa postoje „slabi

ključevi“. Sve ključeve iz familije ključeva:

0000, 0000, 0x00, 0000, 0000, 000x, xxxx, x000,

pri čemu je x bilo koji heksadecimalni broj, moguće je kompromitovati, po

skraćenom postupku, putem napada tipa „Poznat otvoreni tekst“.

2.4 Rezime simetričnog kriptografskog algoritma AES

National Institute of Standards and Technology (NIST), 1997 . godine je

objavio međunarodni konkurs za kriptosistem, koji je planiran da u 21. stoljeću

postepeno supstituira algoritam DES.

Na predmetnom konkursu tada su definisani i opšti uslovi, koje treba da

ispunjava svaki prijavljeni algoritam:

1. Mora biti iz klase simetričnih algoritama

2. Mora biti blokovski organizovan

3. Algoritamske operacije treba provoditi nad 128 bitnim blokovima

izvornog teksta, uz pomoć ključa duzine 128 ((192) ili (256)) bita, pri čemu

su ključevi dizajnirani tako da ne postoje slabi ključevi.

Predmetni međunarodni konkurs, zaključen 15.06.1998. godine, pokazao

je da je od 21 pristigle prijave, njih 15 zadovoljilo opšte uslove. Konačno

02.08.2000. godine objavljeno je: na raspisanom konkursu, pobjednik je

algoritam RIJDAEL (rejn dol), čiji su autori belgijski kriptografi Joan Daemen

i Vincent Rijmen (Katholieke Universiteit Leuven). Danas se ovom algoritmu u

stručnim i naučnim krugovima sve češće pridruzuje naziv AES (Advenced

Encryption Standard).

Prije opisa samog dizajnerskog rješenja AES-a, korisno je navesti osnovne

motive koji su doveli do raspisivanje konkursa čiji je rezultat AES.

1. U standardu DES je utvrđeno da će on biti provjeravan i eventualno

ponovo certificiran svakih pet godina. Provjera provedena 1983. godine

omogućila je njegovu novu sertifikaciju bez ikakvih ograničenja. Međutim

tokom provjere provedene 1988. godine uz NBS se uključila i NSA, koja je

Page 13: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

13

uz to imala i snagu veta na mišljenje NBS (u to doba predsjednik SAD-a je

bio R. Regan). NBS u poćetku nije namjeravala dati saglasnost za

ponovno sertificiranje DES-a. Razlozi nisu bili u tom što je DES bio

kompromitovan, već u činjenici da se on toliko proširio u uslovima brze

tehnološke revolucije ICT sektora, da je postalo pitanje dana kada će se

DES kompromitirati. Ipak nakon velikog pritiska poslovnih krugova i

javnosti DES je ponovo sertificiran kao standard američke administracije

s rokom vazenja do 1992. godine. Potom je uslijedila javna debata da li

produzavati sertifikaciju DES-a?

Po njenom okončanju DES je još jednom sertificiran, za period od pet

narednih godina uz napomenu da u tom razdoblju treba napraviti

strategiju za prelazak na novi kriptografski algoritam.

2. U periodu (1992.-1997.) pravile su se mnoge analize i nudile moguće

alternative za DES. Jedna od njih je bila i dvostruki, odnosno trostruki

DES. Ideja o dvostrukom DES-u je odbačena, jer zahtjeva mnogo veću

računarsku kompleksnost od običnog DES-a, a dobitak u smislu podizanja

nivoa sigurnosti je umjesto očekivanog nivoa 2128

, u nekim slučajevima

sveden samo na 257

(napad tipa „susret u sredini“ - Meet-in-the-Middle

Attack, samo zahtjeva korištenje više memorije da bi se skratilo vrijeme

napada).

Trostruki DES se pokazao imun na slabosti koje je iskazao dvostruki DES,

ali je pokazao i određene vlstite nedostatke: softverske implementacije

3DES-a su prespore; u tom algoritmu postoji 48 rundi, da bi se ostvarila

sigurnost za koju su dovoljne vjerovatno 32 runde; 64 bitni blokovi nisu

više optimalna veličina za mnoge primjene.

3. Navedene slabosti algoritma 3 DES su osnovni uzroci zašto se on nije

našao na poziciji koju danas zauzima AES.

Dok je većina algoritama kandidiranih na konkursu, čiji je pobjednik bio

AES imala u sebi na određen način uključenu i mrezu Feistela, odnosno runde

bazirane na takvoj mrezi, AES je bio posve drugačiji. U AES-u unutar jedne

runde postoje tri takozvana sloja:

Linearni difuzioni sloj (Linear Mixing Layer), koji obezbjeđuje veliku

difuziju bitova nakon nekoliko rundi (realizuje se putem operacija:

ShiftRow i MixColumn),

Page 14: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

14

Nelinearni sloj (Non-linear Layer), koji se provodi pomoću upotrebe

supstitucijskih kutija, optimiziranih za najgori mogući slučaj (operacija

ByteSub),

Sloj dodavanja ključa (Key Addition Layer), tokom kojeg se realizuje

operacija ekskluzivno ili nad potključem runde s trenutnim stanjem bloka

(operacija AddRoundKey).

Prilikom projektovanja pobrojanih slojeva posebno se vodilo računa o

njihovoj otpornosti na linearnu i diferencijalnu kriptoanalizu, brzini i

kompaktnosti koda za širok spektar hardverskih i softverskih platformi, te o

dizajnerskoj jednostavnosti (negativna iskustva sa algoritmom IDEA).

2.4.1 Matematska osnova kriptografskog algoritma AES

Za razliku od mnogih ranijih rješenja AES je svoju matematičku podlogu

našao u Teoriji konačnih polja – polja Galois. Pri tome je odabrano polje

GF(28). Svi okteti algoritma AES interpretiraju se preko bitova b7, b6, b5, b4, b3,

b2, b1, b0, koji dakle mogu uzimati, ili vrijednost 0, ili vrijednost 1. Često se kaze

da su bi є GF(2) , ili pak da je bi є{0,1}. Koristi se i polinomijalna notacija:

b7٠X7 +b6٠ X

6 + b5٠ X

5 + b4٠X

4 + b3٠X

3 +b2٠ X

2 + b1٠ X + b0

Sa stanovišta sabiranja ispunjeni su svi uslovi da bi imali Abelovu grupu u

odnosu na operaciju sabiranje (potpunost, neutralni element 0x00, inverzni

element, i komutativnost. Da bi se obezbjedila zatvorenost nad elementima polja

GF(28) i tokom provođenja operacije mnozenja nad elementima tog polja, za

redukciju se koristi polinom: m(x) = X8 + X

4 + X

3 + X + 1 , pri čemu se nameće

uslov da postoji i bar neki element α є GF(28), takav da je: m(α) = 0. Mnozenje

definisano na prethodni način je asocijativno i ima neutralni element 0x001

Svakom nenultom elementu b є GF(28), iskazanom u polinomijalnom

obliku sa b(x), moguće je odrediti inverzni polinom b-1

(x), takav da je:

a(x)٠b(x) mod m(x) = 1, pri čemu je a(x) = b-1

(x)

AES je predvidjeo da se koriste i operacije nad polinomima manjeg

stepena od četiri, dakle nad polinomima oblika:

c3٠X3 +c2٠ X

2 + c1٠ X + c0

Page 15: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

15

ali kod takvih polinoma koeficijenti ci , nisu više elementi skupa GF(2), nego su

elementi skupa GF(28). Zato se kaze da su takvi polinomi određeni

četverobajtnim vektorom, odnosno kao 32 bitna rječ. Sabiranje takvih vektora

vrši se putem sabiranja po modelu ekskluzivnog ILI odgovarajućih

(homolognih) koeficijenata polinoma koji se sabiru. Da bi se pri mnozenju

takvih polinoma, dobio ponovo strukturno analogan polinom stepena manjeg od

četiri, za redukciju dobijenog rezultata stepena četiri, ili većeg od četiri, koristi

se polinom p(x) , pri čemu je : p(x) = X4 + 1, uz uslov p(α) = 0, α є GF(2

8).

Primjer Pomnoziti dva polinoma trećeg stepena a(x) i c(x), čiji su koeficijenti iz

skupa GF(28), pa dobijeni rezultat ponovo svesti na polinom trećeg stepena d(x),

koristeći za redukciju polinom ( X4 + 1) .

d(x) = (a(x) ٠ c(x)) mod (x4+1) = d3٠X

3 +d2٠ X

2 + d1٠ X + d0

d0 = ( a 0b 0٠ ) + ( a 1b 3٠ ) + ( a 2b 2٠ ) + ( a 3b 1٠ )

d1 = ( a 0b 1٠ ) + ( a 1b 0٠ ) + ( a 2b 0٠ ) + ( a 3b 3٠ )

d2 = ( a 0b 2٠ ) + ( a 1b 1٠ ) + ( a 2b 0٠ ) + ( a 3b 3٠ )

d3 = ( a 0b 3٠ ) + ( a 1b 2٠ ) + ( a 2b 1٠ ) + ( a 3b 0٠ )

Treba naglasiti da se svi proizvodi oblika (ai ٠ bj ) formiraju u skladu s

pravilima mnozenja po mod (x4+1) .

2.4.2 Postupak šifriranja u kriptografskom algoritmu AES

Stanje bloka (State Block) predstavlja trenutno stanje šifrovanog bloka

podataka. Ako se iskaze u matričnoj formi onda se ta matrica proglašava za

matricu stanja. Blok izvornog teksta od 192 bita se moze iskazati i

pravougaonom matricom formata 6x4, kod koje su matrični elementi bajtovi,

odnosno osmobitni rasporedi ili okteti. Po AES standardu blok izvornog teksta

je uvijek duzine 128 bita.

U tabeli broj 2.4.1 prikazan je takav matrični prikaz. Okteti izvornog

teksta se upisuju u prikazanu matricu po kolonama, dakle: s0,0 , s1,0 , s2,0 , s3,0 ,

s0,1 s1,1 , s2,1, s3,1, ..... s0,5 , s1,5 , s2,5 , s3,5. Broj redova u matrici stanja je fiksan i

iznosi četiri, dok broj kolona zavisi od veličine bloka (broj kolona moze biti

četiri (128 bitni blok), šest (192 bitni blok) ili pak osam (256 bitni blok).

Page 16: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

16

Tabela broj 2.4.1 Matrica stanja za 192 bitni blok

Slično matrici stanja i ključ algoritma AES, smješta se u matricu formata

4x4 (128 bitni ključ), odnosno 4x6 (192 bitni ključ), ili pak 4x8 (256 bitni ključ).

Elementi matrice ključa su također okteti, odnosno osmobitni rasporedi, a

elementi ključa se takođe upisuju po kolonama pridruzene matrice.

Broj rundi (ciklusa) algoritma određuje se u skladu sa utvrđenim

veličinama bloka izvornog teksta i odabranog ključa. Unutar runde veličina

bloka izvornog teksta mora biti usaglašena sa veličinom ključa runde.

Zakonitost koja se uvazava tokom tog izbora definisana je tabelom 2.4.3

Tabela broj 2.4.2 Tabela ključa za slučaj kada je odabran 128 bitni ključ

Tabela broj 4.2.3 Broj rundi u funkciji veličine bloka stanja Nb i veličine

odabranog ključa Nk

Page 17: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

17

Postupak šifrovanja počinje tako što se izvorni tekst preslikava u matricu

stanja. Prije prve runde vrši se inicijalno dodavanje ključa (operacija

AddRoundKey), odnosno sabiranje matrice stanja i matrice ključa (operacija

ekskluzivno ili ). Prva runda, kao i preostalih osam, deset ili pak dvanest rundi

(broj rundi zavisi od veličine bloka i veličine odabranog ključa, što je iskazano

putem tabele 4.2.3) strukturne su identično. jer sadrze četiri transformacije nad

oktetima. U posljednjoj rundi uočava se razlika jer se u njoj izostavlja

transformacija MixColumn.

Prva transformacija Sub Byte podrazumjeva zamjenu okteta na osnovu

tabele supstitucije. Ovo je jedina nelinearna transformacija. Svaki element

matrice stanja prvo se zamjenjuje s njemu odgovarajućim

multiplikativnim inverzom iz polja GF(28) (polinom b(x) supstitira se s

polinomom b-1

(x)). Element 0x00 ostaje nepromjenjen. U drugom djelu

ove transformacije nad bitovima matrice stanja, odnosno nad njenim

svakim elementom b=(b1b2b3b4b5b6b7b8) primjenjuje se fiksna afina

transformacija oblika:

(bi) ٰ ’

= bi + b (i+4)mod 8 + b (i+5)mod 8 + b (i+6)mod 8 + b (i+7)mod 8 + ci

(i= 1,2,3...8), ci = 01100011

Ova operacija se moze prikazati pomoću S kutije algoritma AES. Svaki

element AES bloka zapiše se heksadecimalno. Prvom broju u tom

elementu pridruzimo pripadni red S kutije AES algoritma, a drugom

broju odgovarajuću kolonu te iste S kutije.

U tabeli broj 4.2.4 prikazana je struktura S kutije algoritma AES.

Tabela broj 4.2.4 Struktura S kutije algoritma AES

Page 18: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

18

Druga transformacija (ShiftRow) označava pomjeranje okteta u

redovima matrice stanja. Red 0 nema pomjeranja, u redu 1 vrši se

pomjeranje za C1 bajtova, u redu 2 vrši se pomjeranje za C2 bajtova, a u

redu 3 vrši se pomjeranje za C3 bajtova. Vrijednosti ofseta C1,C2,C3 ovise

o veličini bloka izvornog teksta.

Za Nb = 4: C1=1; C2=2; C3=3

Za Nb = 6: C1=1; C2=2; C3=3

Za Nb = 8: C1=1; C2=3; C3=4

Mješanje podataka u kolonama matrice stanja (MixColumn)

U matrici stanja, kolone se tretiraju kao polinomi nad poljam GF(28).

Mnoze sa fiksnim polinomom c(x), koji je definisan relacijom:

c(x) = 0x03٠X3 + 0x01٠ X

2 + 0x01 ٠X + 0x02

i to po modulu (X4+1). Polinom c(x) je pri tome i relativno prost u odnosu

na polinom (X4 + 1), pa je samim tim i invertibilan. Mnozenje oblika

(a0,j + a1,j ٠X + a2,j ٠ X2 + a3,j ٠X

3)٠c(x)(mod (X

4 + 1)) moze se realizovati i

u matričnom obliku prema slijedećoj šemi:

Page 19: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

19

Mnozenje oblika(a0,j + a1,j٠X + a2,j٠X2 + a3,j٠X

3)٠c(x)(mod (X

4 + 1))

Inverz od MixColumn je sličan jer se svaka kolona mnozi sa specifićnim

polinomom d(x), koji je definisan na osnovu relacije: c(x)٠d(x) = 0x01.

d(x) = 0x0B٠X3 + 0x0D٠X

2 + 0x09 ٠X + 0x0E

Dodavanje podključeva u matricu stanja, operacija AddRoundKey. U

skladu s ovom operacijom matrica stanja se transformiše putem

dodavanja elemenata podključa runde homolognim elementima matrice

stanja po osnovu primjene operacije ekskluzivno ili.

Page 20: KSS - Predavanje 4 - Simetricni Blokovski Kriptografski Algoritmi. DES. AES

Univerzitet u Sarajevu Elektrotehnički fakultet Odsjek za telekomunikacije

akademska godina: 2011/2012 Kriptografija i sigurnost sistema

Predavanja 4

20

Šema dodavanje podključeva u matricu stanja

Ekspanzija ključa Cilj ekspanzije-proširenja ključa, je stvaranje

pretpostavki za generisanje podključeva pojedinih rundi da bi se mogla

realizovati operacija AddRoundKey. Proširenjem ključa generiše se

(Nr +1) Nw 32 bitnih riječi, koje se označavaju sa wi ( 0 ≤ i < (Nr +1) Nw ).

Simbol Nr definisan je brojem runde, simbol Nw označava broj riječi u

podključu.

Prošireni ključ se formira tako da prve četiri riječi predstavljaju zadani

ključ. Svaka slijedeća riječ ri dobija se iz prethodne riječi ri-1 kojoj se u

skladu sa operacijom ekskluzivno ili dodaje riječ što se nalazi na poziciji

ri-Nk . Ako je i djeljivo s Nk , onda se prije primjene operacije ekskluzivno

ili nad tom riječi ri-1, obave slijedeće operacije:

- Operacija RotWord, kojom se rotira riječ za jedno mjesto ulijevo

(r0r1r2r3), postaje (r1r2r3r0),

- Operacija SubWord, kojom se uzima jedan po jedan bajt iz riječi i na

svaki pd njih primjeni djelovanje S kutije,

- Potom se još realizuje i operacija ekskluzivno ili s riječi, koja je

definisana relacijom: ( 02(i-4)/4

,00,00,00).

-