Upload
dinkic
View
19
Download
4
Embed Size (px)
DESCRIPTION
kss
Citation preview
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.
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).
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
).
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
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
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.
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
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
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
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
).
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.
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
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),
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
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).
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
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
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:
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.
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).
-