42
UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI FAKULTET DEPARTMAN ZA RAČUNARSKE NAUKE SAVREMENI STANDARDI U KRIPTOGRAFIJI MASTER RAD Mentor: Student: Prof. Dr Jelena Ignjatović Ana Veljković Niš, 2017.

UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI FAKULTET …unarske...2 Glava 1 1 Uvod Kriptologija je nauka o zaštiti podataka.Ona je dugi niz godina bila orjentisana samo na profesionalne

Embed Size (px)

Citation preview

UNIVERZITET U NIŠU

PRIRODNO MATEMATIČKI FAKULTET

DEPARTMAN ZA RAČUNARSKE NAUKE

SAVREMENI STANDARDI U KRIPTOGRAFIJI

MASTER RAD

Mentor: Student:

Prof. Dr Jelena Ignjatović Ana Veljković

Niš, 2017.

1

Sadršaj :

Glava 1 .......................................................................................................................................................... 2

1 Uvod ....................................................................................................................................................... 2

1.1 Cilj kriptografije ................................................................................................................................... 3

1.2 Istorija kriptografije............................................................................................................................. 4

1.3 Kriptografski algoritmi ........................................................................................................................ 5

1.3.1 Simetrični kriptosistemi ............................................................................................................... 7

1.3.2 Asimetrični algoritmi .................................................................................................................... 8

1.4 Podela simetričnih algoritama .......................................................................................................... 11

Glava 2 ........................................................................................................................................................ 12

2.1 Osnovni pojmovi teorije Galoa ......................................................................................................... 12

2.2 Prošireni Euklidov algoritam ............................................................................................................. 17

Glava 3 ........................................................................................................................................................ 20

3.1 DES (Data Encryption Standard) ....................................................................................................... 20

3.2 Funkcionisanje DES algoritma ........................................................................................................... 21

Glava 4 ........................................................................................................................................................ 31

4.1 AES (Advanced Encryption Standard) .............................................................................................. 31

4.2 Detalji AES-a ...................................................................................................................................... 32

Glava 5 ........................................................................................................................................................ 38

Zaključak ................................................................................................................................................. 38

Literatura ................................................................................................................................................ 39

2

Glava 1

1 Uvod

Kriptologija je nauka o zaštiti podataka. Ona je dugi niz godina bila orjentisana samo na

profesionalne sisteme za zastitu podataka. Od kako internet postaje infrastruktura za

poslovanje, kriptologija je našla svoju primenu u svim aplikacija koje se odnose na elektronsko

poslovanje (e - trgovina, e – bankarstvo i sl. ) takođe možemo reći za aplikacije za mobilne

uređaje. Kriptologija obuhvata kriptografiju i kriptoanalizu.

Kriptografija je nauka koja se bavi metodama bezbednošću informacija. Kada se lične,

finansijeske ili vojne informacije prenosu sa mesta na mesto one postaju nebezbedne, zato je tu

kriptografija koja nam omogućava šifrovanje informacija koji ih čini nedostupnim drugoj strani.

Šifra i digitalni potpis su kriptografske tehnike koje se koriste da bi se omogućili i

implementirali bezbednosni servisi. Osnovni element koji se koristi je algoritam šifrovanja ili

šifratski sistem. Svaki šifratski sistem obuhvata transformaciju podataka, koja se naziva

šifrovanje i dešifrovanje.

Šifrovanje je procedura koja vrši transformaciju originalnog otvorenog teksta u

šifrovane podatke tj. šifrat.

Dešifrovanje rekonstruiše otvoreni tekst, ali na osnovi šifrata. U toku šifrovana koristi se

nezavisna vrednost koju nazivamo ključ šifrovanja. Ali isto tako transformacija za dešifrovanje

koristi ključ dešifrovanja.

Dužina ključa odnosno broj simbola zavisi isključivo od šifratskog sistema i predstavlja

jedan od parametara sigurnosti tog sistema.

3

Kriptoanaliza je naučna disciplina koja proučava metode otkrivanja značenja šifrovanih

informacija ali bez pristupa tajnim informacijama za dešifrovanje. Možemo reći da kriptoanaliza

podrazumeva pronalazenje proboj sistema koji omogućava da se poruka otkrije.

Metode i tehnike kriptoanalize su se tokom istorije kriptografije drastično promenile,

prilagođavajući se povećanoj komleksnosti kriptografije, počev od metoda koji su

podrazumevali papir i olovku, preko mašina kao što je Enigma tokom Drugog svetskog rata, do

računarski baziranih napada današnjice.

1.1 Cilj kriptografije

Ova 4 objekta čine kostur iz koga se izvode svi ostali servisi:

1) Tajnost podataka obezbeđuje da je sadržaj informacije dostupan samo ovlašćenim

osobama tj. samo onim koji poseduju ključ. Postoje više načina zaštite tajnosti, počev od

fizičke zaštite do matematičkih algoritama koji podatke čine nerazumljivim.

2) Integritet podataka brine o tome da ne dođe do manipulacije ili promene podataka, kao

što su brisanje i zamena podataka. Da bi se obezbedio integritet podataka, mora

postojati mogućnost provere da li je informacija promenjena od strane neovlašćene

osobe ili ne.

3) Autentičnost omogućava identifikaciju pošiljaoca i primaoca tj. omogućava obema

stranama proveru porekla poruke. Poruka koja se prenosti preko kanala mora biti verna

originalu, da se utvrdio sadržaj, vreme slanja itd. Zbog toga i postoji podela klasa

potvrda i autentičnost podataka originalu.

4) Neporečivost ili ne odricanje to je nemogućnost negiranja slanja poruke i izbegavanja

odgovornosti. To je vrlo važna stavka, pogotovo u sadašnje vreme kada se veliki deo

novčanih i ostalih raznovrsnih transakcija obavlja putem interneta.

4

1.2 Istorija kriptografije

U ljudskoj prirodi postoji potreba da neke informacije ostanu tajne, a kada želimo da ih

sačuvamo od radoznalosti drugih, od prisluškivanja i nastojanja da se te informacije saznaju, na

scenu stupa kriptografija, nauke u kojoj su ljudi kroz istoriju imali neverovatan broj kreativnih

ideja, možda kao ni u jednoj drugoj oblasti.

Nije tačno utvrđeno gde su stvarni počeci kriptografije, ali je jedna od prvih poznatih

praktičnih primena oko 2000 g.p.n.e u Egiptu, gde su korišćeni nestandardni hijeroglifi za

ukrašavanje grobnica preminulih vladara, koji su opisivali njihov život i veličali uspehe za vreme

njihove vladavine. Šifrovanje podataka koristilo se prvenstveno u vojne svrhe. Jedan od prvih

velikih vojskovođa koji je koristio šifrovane poruke bio je Julije Cezar. Kada je Cezar slao poruke

svojim vojskovođama, on je te poruke šifrovao tako što su sva ili samo pojedina slova u tekstu

bila pomerana za tri, četri ili više mesta u abecedi. Tu poruku mogli su da dešifruju samo oni koji

su poznavali pravilo pomeranja. Poznata Cezarova izjava prilikom prelaska Rubikona u

šifriranom dopisivanju glasila bi: fqkf ofhzf kyz. Pomeranjem svakog slova za šest mesta u

abecedi lako se može pročitati pravi smisao poruke: Alea iacta est (kocka je bačena).

Poznatu raspravu o kriptografiji je napisao na 25 stranica italijanski arhitekta Leone Batista

Alberti 1467. godine. On je i tvorac takozvanog šifarskog kruga i nekih drugih rešenja

dvostrukog prikrivanja teksta koja su u 19. veku prihvatili i usavršavali nemački, engleski i

francuski šifrantski biroi.

Pola veka nakon toga objavljeno je u pet svezaka delo Johanesa Trithemusa prva knjiga iz

područja kriptografije. U 16. veku značajan doprinos daju milanski doktor Girolamo

Kardano, matematičar Batisto Porta i francuski diplomata Blaise de Vigener. Sve do Drugog

svetskog rata šifrovane poruke mogle su se dešifrovati. Na nemačkoj strani pojavila se mašina

koja je šifrovala poruke na do tada još neviđen način. Nemci su mašinu nazvali Enigma. Ma

koliko je ona u to vreme bila savremena saveznici su uspeli da razbiju poruke

šifrovane Enigmom.

Posle Drugog svetskog rata i pojavom prvih računara otvorila su se nova vrata kriptografiji.

Vremenom su računari postajali sve brži i brži, radeći po nekoliko stotina, a kasnije i miliona

operacija u sekundi. Novom brzinom rada je omogućeno probijanje šifri za sve manje vremena.

Uporedo s tim, radilo se i na izmišljanju novih, sigurnijih i komplikovanijih algoritama za

šifrovanje.

5

1.3 Kriptografski algoritmi

Razvojem računara otvorile su se mogućnosti implementacije složenih algoritama koji bi bili

nezamislivi u doba metoda supstitucije, transpozicije, elektromehaničkih mašina. Prvim većim

napretkom u kompijuterskom dobu smatra se razvoj IBM-ovog (International Business

Machines) algoritma Lucifer 1970. godine pod vođstvom Dr. Horsta Feistela.

NBS (National Bureau of Standards) 1972. godine uočava potrebu za standardom šifriranja

podataka i nakon konsultacija sa NSA (National Security Agency), 1973. godine otvara službeni

konkurs. Ali, pokazalo se da nijedan od pristiglih kandidata nije ispunjavao stroge kriterijume

konkursa, pa se otvara novi konkurs 1974. godine. Na ovom konkursu je IBM prijavio algoritam

DEA (Data Encryption Algorithm), razvijen na osnovama algoritma Lucifer. 1976. god. ovaj

algoritam je proglašen standardom šifriranja i preimenovan u DES (Data Encryption Standard) i

još uvek predstavlja jedan od najčešće korišćenih i spominjanih algoritama.

Metode šifriranja svih kriptografskih algoritama se po Kerckhoff-ovom principu zasnivaju

na upotrebi ključa, koji uz pomoć logičkih operacija nad binarnim zapisom podataka šifruje

datu poruku. Ključ je najvažniji deo u šifriranju i dešifriranju poruka.

Zaštita šifrovane poruke zavisi od zaštite ključa, a ne od zaštite algoritma. U zavisnosti

od načina korišćenja ključa, razvile su se dve klase algoritama. Jedna je simetrična klasa, a druga

je asimetrična klasa.

Osnovna razlika je u tome da simetrični algoritmi koriste isti ključ za šifrovane i

dešifrovanje neke poruke , ili se ključ za dešifrovanje može lako proizvesti iz originalnog ključa

za šifriranje koji mora biti tajni.

Sigurnost komunikacije zavisi od toga koliko sigurno učesnici komunikacije čuvaju taj

ključ. Asimetrični algoritmi koriste različite ključeve za širiranje i dešifrivanje, a još se nazivaju i

algoritmi sa javnim ključem ili algoritmi za razmenu ključeva. Razlog ovakvom nazivu je taj što je

ključ za šifriranje javan, tako da svako može da šifruje poruku, ali je ključ za dešifrovanje

privatan, tako da samo ovlašćeni primalac može da dešifruje poruku.

6

U to vreme je postojala samo simetrična kriptografija, a kao standard šifrovanja i

osnovni algoritam baziran na simetričnoj kriptografiji postojao je DES sa 64-bitnim ključem.

1990. godine u Švajcarskoj objavljen je predlog za novi Standard za kodiranje blokova

podataka", tj. predlog za IDEA-u (International Data Encryption Algorithm), koji je trebao

zameniti algoritam DES.

IDEA koristi 128-bitni ključ i operacije koje je lako implementirati na računaru, čineći ga

u praksi vrlo efikasnim. U periodu od 1990. – 1998. godine nastaju svi simetrični algoritmi iz

grupe DES: TDEA (Triple Data Encryption Algorithm), Blowfish, Feal, Ice, Khufu, MacGuffin,

NewDES, RC2, RC5, Shark. Početkom 90-tih godina NIST (National Institute of Standards and

Technology) uviđa potrebu za novim standardom u šifriranju koji bi zadovoljavao sigurnosne

zahteve u dolazećim godinama i zamenio dotadašnji standard, odnosno DES.

Na izboru za AES (Advanced Encryption Stanadard) algoritam 2000. godine, za

pobednika je izabran Rijndael koji je nazvan po prezimenima svojih tvoraca Vincent Rijmen-a i

Joan Daemen-a. NIST je kao svoje razloge odabira Rijndael-a naveo vrlo dobru implementaciji u

različitim uslovima, odličan key-setup i niske memorijske zahteve. U 2006. godini AES je

proglašen za najpopularniji i najčešće korišćeni simetrični algoritam šifriranja. Precizno

govoreći, AES se razlikuje od Rijndael-a jer koristi fiksnu dužinu bloka od 128 bita, dok Rijndael

koristi promenljivu dužinu bloka od 128, 192 ili 256 bita. Dužina ključa je promenljiva za oba

algoritma (128, 192 ili 256 bita).

šifrovanje dešifrovanje

7

1.3.1 Simetrični kriptosistemi

Osnovna osobina simetričnih kriptosistema ili kriptosistema sa tajnim ključem (Symetric-

Key ili Secret-key Criptosystems) je da se za šifrovanje i dešifrovanje poruka koristi isti ključ. Na

slici je, u vidu blokova, prikazan princip rada simetričnog kriptosistema.

Osoba A ima za cilj slanje poruke M osobi B preko nezaštićenog komunikacionog kanala.

Osoba A najpre generiše poruku M (izvorni tekst) koja se upućuje u blok za šifrovanje E. U

ovom bloku se vrši šifriranje poruke M uz korišćenje ključa K dobijenog uz pomoć generatora

ključa. Na taj način se kreira šifrovana poruka C. Potom se tako dobijena poruka

komunikacionim kanalom šalje do osobe B.

Postupak dešifrovanja se obavlja inverznim postupkom od šifriranja u bloku za

dešifrovanje D. Dešifrovanje poruke C se vrši pomoću istog ključa K koji je korišćen prilikom

šifriranja. Nakon dešifrovanja se dobija izvorna poruka M.

Ukoliko na kanalu za prenos postoji osoba N (napadač) može da presretne šifrovanu

poruku i ukoliko dođe u posed ključa može pročitati ili zloupotrebiti izvornu poruku. Da bi se

izbegle manipulacije, obe strane moraju držati ključ u tajnosti, odnosno ključ se ne sme

prenositi nezaštićenim komunikacionim kanalom. Za razliku od ključa, šifrovana poruka može da

se šalje i po nezaštićenom kanalu s obzirom na to da sadržaj izvorne poruke može da protumači

samo onaj korisnik koji ima ključ.

Primer slanja ključa različitim komunikacionim kanalom je kada se PIN (Personal

Identification Number) kod za pristup zaštićenim Internet sajtovima (npr. Banke za uvid stanja

na računu) dostavljaju korisnicima poštom, a ne Internetom.

Najpoznatiji algoritmi simetričnih kriptosistema koji se danas koriste su: DES, 3DES, DES-

CBC, IDEA, RC5, RC6, AES i drugi.

8

1.3.2 Asimetrični algoritmi

Ove algoritme nazivamo još i public-key algorithms, tj. algoritmi s javnim ključem. Razlog

ovakvom nazivu je taj što je dozvoljeno da se jedan od ključeva potreban za šifrovanje i

dešifrovanje objavi javno (npr. Internet, novine). Ovde treba obratiti pažnju na reči "jedan od

ključeva". Ono što je specifično za ovaj tip algoritma je to da se koriste dva ključa za šifrovanje i

dešifrovanje poruke (originala).

Ideja je sledeća: osoba A objavi svoj javni ključ preko nekog medija (npr. Internet).

Osoba B, koja osobi A želi poslati tajnu poruku šifruje tu svoju poruku s ključem koju je osoba A

javno objavila te joj takvu poruku pošalje (recimo preko e-mail servisa). Jedino osoba A sa

svojim privatnim (tajnim) ključem može dešifrovati poruku poslanu od osobe B i niko drugi.

Temelj asimetrične kriptografije su W. Diffie i E. Hellman koji su 1976. godine opisali

ideju kriptografije koja se temelji na dva ključa, privatnom i javnom ključu. Razlika simetričnih i

asimetričnih algoritama je u tome što simetrični algoritmi koriste isti ključ za šifrovanje i

dešifrovanje dok asimetrični algoritmi koriste različite ključeve za šifrovanje i dešifrovanje.

Informacije šifrovane javnim ključem mogu se dešifrovati samo privatnim ključem odnosno to

može samo osoba koja je vlasnik tajnog asimetričnog ključa. Osim toga šifrovanje javnim a

dešifrovanje tajnim ključem pokazalo se takođe kao odlično svojstvo i omogućava digitalno

potpisivanje informacija gde potpis može biti proveren javnim ključem od bilo koga.

Ključevi trebaju biti povezani jednosmernom funkcijom. Odnosno ne sme se izračunati

privatni ključ iz javnog ključa ili se barem ne sme moći izračunati u razumnom vremenu.

Asimetrični kriptosistemi zasnivaju se na određenim svojstvima brojeva koji spadaju u teoriju

brojeva.

Prilikom šifrovanja se tekst kodira kao niz prirodnih brojeva koji se odabranom

funkcijom šifrovanja i ključem šifriranja preračunavaju u niz brojeva šifrovanog teksta. Funkcija

šifriranja mora biti takva da iz niza brojeva šifriranog teksta napadač samo s velikim naporima

može odrediti izvorni niz brojeva. Međutim, poznavajući ključ dešifrovanja kod omogućuje lako

izračunavanje izvornog niza brojeva. Asimetrično kodiranje za njegovu realizaciju potrebna su

nam dva ključa. Jedan ključ je dostupan svima preko javnih kataloga ili imenika, te se zbog te

osobine i naziva javni ključ. Drugi ključ poznat je samo vlasniku i naziva se tajnim. Iako su

različiti, ključevi su međusobno povezani određenim transformacijama.

Ako ponovo pogledamo prethodni primer, sada je situacija bitno drugačija: Pero šifrira

poruku Ani upotrebom njenog javnog ključa koji je svima dostupan. Mogao ga je dobiti putem

email-a, preuzeti sa njenog Web sajta i sl. Ako bilo ko presretne ovu komunikaciju i pored toga

što poznaje Anin javni ključ ne može da otkrije sadržaj poruke. Poruku može dešifrirati samo

Ana korišćenjem svog tajnog ključa. Na ovaj način poruka je zaštićena od trećeg lica koji je

prilikom presretanja šifrirane poruke onemogućen u njenom dešifriranju jer mu je za to

9

potreban ključ koga strogo u tajnosti čuva ciljni sagovornik. Glavna mana je njegova sporost i

neprikladnost za šifriranje velikih količina podataka.

Često korišteni asimetrični algoritmi: RSA (Rivest-Shamir-Adleman), Diffie-Hellman, i

ostali: ElGamal, Rabin, Eliptic Curves.

Ovaj sistem predstavlja rešenje za prva dva uslova koja smo na početku ovog teksta

postavili - zaštitu tajnosti informacija i očuvanje njihovog integriteta. Ostaje otvoreno pitanje

kako da Ana bude sigurna da je poruku koju je primila stvarno poslao Pero. Osiguravanje

autentičnosti informacija tj. provera identiteta pošiljaoca postiže se upotrebom digitalnih

potpisa i digitalnih sertifikata.

10

DigitalnI potpis

Digitalni potpis je jedan od najvažnijih kriptografskih alata koji je danas u širokoj

upotrebi. Koristi se da potvrdimo identitet pošiljaoca poruke ili potpisnika dokumenta, kao i da

se obezbedi dokaz da je originalni sadržaj poruke ili dokument koji je poslat nepromenjen. Lako

se prenosi, ne može biti imitirani, i mogu se automatski označiti vremenskom markom.

Digitalni potpisi su zasnovani na asimetričnoj kriptografiji. Za poruke koje su poslate

preko nesigurnog kanala, pravilno implementiran digialni potpis daje primaocu poruke razlog da

veruje da je poruka poslata od strane onog za koga se predstavlja. Digitalni potpisi su

ekvivalentni tradicionalnim potpisima u mnogim aspektima, a pravilno implementiran digitalni

potpis je mnogo teže falsifikovati nego tradicionalni potpis.

Šeme digitalnog potpisa koje opisujemo u radu su bazirane na kriptografiji, i moraju se

pravilno implementirati da bi bile efikasne. Digitalni potpisi takođe mogu da obezbede i

nemogućnost odbacivanja, u smislu da onaj koji je potpisao poruku ne može da porekne njeno

potpisivanje, istovremeno tvrdeći da je njegov privatni ključ ostao tajna, a takođe neke šeme

nude i mogućnost označavanja poruka vremenskim markama, tako da čak i ako je privatni ključ

otkriven, potpis i dalje može biti važeći.

Digitalni potpisi se mogu koristiti za sve vrste poruka, bilo da su one kodirane ili ne, i

jednostavno primalac poruke može biti siguran kada je u pitanju identitiet pošiljaoca, kao i u to

da je poruka stigla nepromenjena.

11

1.4 Podela simetričnih algoritama

Simetrične algoritme delimo u dve grupe a to su: stream šifriranje i blok šifriranje.

Stream šifriranje funkcioniše tako što se šifriranje poruke vrši bit po bit, a dok je kod

blok šifriranja šifrovanje poruke se vrši po blokovima, uzimamo blokove od više bitova (64, 128,

196, 256...) pa se šifrira kao jedna celina. Dešifrovanje se vrši inverznim šifriranjem, što znači da

je algoritam isti, ali se podključevi šifriranja koriste u obrnutom redosledu.

Blok šifrovanja se koriste za šifrovanje kratkih poruka kao što su ključevi, lozinke, potpisi

itd. Kod ovog načina šifrovanja, izvorni podatak se deli u blokove simbola određene veličine koji

se individualno i nezavisno kodiraju u cilju formiranja šifrovanog bloka podataka.

Blok šifriranje odlikuju sledeće osobine:

- Svaki blok simbola se šifruje uvek na isti način, nezavisno od mesta koje zauzima u poruci.

- Jednake poruke, šifrovane sa istim ključem, uvek daju jednake šifrovane poruke.

- Da bi se dešifrovao deo poruke, nije neophodno dešifrovati je od početka, dovoljno je

dešifrovati blok koji nas interesuje.

Claude Shannon je tvorac teorije informacija, ali takođe i veoma bitnu ulogu ima i u

kriptografiji. 1949. godine Claude Shannon je predstavio ideju mreža zamene i permutacije

(substitution- permutation (S-P)). Današnji produkcioni algoritmi zamene i transpozicije

- ovo je osnova današnjih blok algoritama

- S-P mreže se baziraju na dve primitivne operacije kriptografije:

- zamena (substitution (S-box))

- permutacija (permutation (P-box))

- omogućavaju konfuziju (confusion) i difuziju(diffusion) poruke

Da bi se napravilo blok šifriranje veoma je teško, ali se zasniva na navedena dva principa

(konfuziju i difuziju). Konfuzija mozemo reći da je veza između ulaznog i šifriranog teksta

nejasna, dok difuzija predstavlja vezu između šifriranog teksta i ključa što je moguće složenijom.

Najbitnije za pravljenje jake blok šifre je više puta upotrebiti konfuziju i difuziju ali naizmenično.

Blok šifrovanje je primenjeno u sledećim algoritmima: LUCIFER, DES, FEAL, IDEA, RC5, SKIPJACK,

BLOWFISH, TWOFISH, AES (RIJNDAEL), itd.

12

Glava 2

2.1 Osnovni pojmovi teorije Galoa

U algebri je dugo bilo otvoreno pitanje rešivosti algebarskih jednačina anxn + ⋯ +

a1xn + a0 = 0 preko radikala, tj. primenom neke formule u kojoj učestvuju jedino elementarne

operacije polja i korenovanje proizvoljnog stepena. Ova jednačina invarijantna je u odnosu na

odredjene automorfizme koji permutuju njene korene. Videćemo da ta preslikavanja obrazuju

tzv. Galoaovu grupu jednačine, o čemu i piše Evarist Galoa u svom poslednjem pismu: U teoriji

jednačina ispitivao sam uslove pod kojim je neka jednačina rešiva preko radikala, to mi je dalo

priliku da produbim ovu teoriju, i opišem sve moguće transformacije na nekoj jednačini, pa i na

onim koje nisu rešive radikalima...".

Razmotrićemo neke matematičke osnove teorije Galoa koje su značajne za AES standard

i šire. Prvo što ćemo razmotriti to je pojam konačnog polja:

Konačno polje (Galoovo polje), je skup sa konačnim brojem elemenata. Grubo govoreći,

konačno polje je skup elemenata u kojem se može sabirati, oduzimati, množiti i obratno. Pre

nego što uvedemo definiciju polja, moramo da znamo zapravo šta je to grupa.

Definicija 1: Grupa je skup elemenata G zajedno sa operacijom „◦“ koja kombinuje dva

elementa iz skupa G.

1) Grupna operacija „◦“ je zatvorena. Za svako a, b ∈ G, znači a◦b = c ∈ G.

2) Grupna operacija je asocijativna. Gde je a◦(b◦c) = (a◦b)◦c za svao a, b ∈ G.

3) Postoji element 1 ∈ G, koji se naziva neutralni element , pa onda važi a ◦ 1 = 1 ◦ a = a za

svako a ∈ G .

4) Za svaki a ∈ G postoji element a−1 ∈ G, koji se naziva inverz od a, tako da je a ◦ a−1 =

a−1 ◦ a = 1.

5) Grupa G je komutativna a ◦ b = b ◦ a za svako a, b ∈ G.

Grubo govoreći, grupa je skup sa jednom (definisanom) operacijom i odgovarajućom

inverznom operacijom. Ako je operacija sabiranje, inverzna je oduzimanje, ako je množenje

inverzna je deljenje (ili množenje iverznim elementom).

Primer: Skup brojeva Zm = {0,1, … . m − 1} i operacija sabiranje po modulu m formira grupu sa

neutralnim elementom 0. Svaki element a ima inverz −a tako da a + (−a) = 0 mod m.

Primetimo da ovaj skup ne formira grupu sa operacijom množenja zato što većina članova a

nemaju inverz tako da a ∙ a−1 = 1 mod m. Da bi imali sve 4 osnovne operacije (sabiranje,

13

oduzimanje, množenje, deljenje) u jednoj strukturi, potreban nam je skup koji sadrži aditivnu i

multiplikativnu grupu, takvu strukturu zovemo polje.

Definicija 2: Polje F je skup elemenata sa sledećim svojstvima:

1) Svi elementi polja F iz aditivne grupe sa grupnom operacijom „+“ i neutralnim

elementom 0.

2) Svi elementi polja F osim 0 iz multiplikativne grupe sa grupnom operacijom „ד i

neutralnim elementom 1.

3) Kada su dve operacije u grupi kombinovane, zakon distributivnosti je prikazan na sledeći

način, za svako a, b, c ∈ F: a(b + c) = (ab) + (ac).

Primer: Skup realnih brojeva je polje kod koga je 0 neutral za sabiranje i 1 neutral za množenje.

Svaki realan broj a ima inverz za sabiranje (−a) i inverz za množenje 1

a.

U kriptografiji smo skoro uvek zainteresovani za polja sa konačnim brojem elemenata

koje nazivamo Galoova polja. Broj elemenata naziva se kardinalnost polja.

Teorema 1: Polje reda m postoji samo ako je m stepen prostog broja m = pn za neki pozitivan

broj n i prost broj p. p je karakteristika konačnog polja.

Primer: Postoje konačna polja sa 11 elemenata, 81 (zato što je 81 = 34). Ali nema polja sa 12

elemenata zato što 12 = 22 ∙ 3.

Elementi polja GF(p) su celi brojevi u opsegu {0,1, … , p − 1}. Zbir, razlika i proizvod se

izračunavaju uzimanjem ostatka sa 𝑝 celobrojnog rezultata.

Teorema 2: Neka je p prost broj. Prsten ZP označen kao GF(p) je konačno polje, ili Galoovo

polje sa prostim brojem elemenata. Svi elementi polja GF(p) koji nisu nula imaju svoj inverz.

Operacije u GF(p) se obavljaju po modulu p.

Da bismo izvršavali operacije u konačnom polju, moramo da postujemo sledeća pravila:

Sabiranje i množenje se obavljaju po modulu p, aditivni inverz elementa a je dat kao a +

(−a) = 0 mod p i multiplikativni inverz bilo kog elementa a različitog od 0 je definisan kao

a ◦ a−1= 1.

Prošireno polje GF(2m)

U AES-u konačno polje sadrži 256 elemenata i označeno je kao GF(28). Ovo polje je

izabrano zato što svaki element može da se predstavi jednim bajtom. U S-Box i MixColumn

transformaciji, AES uzima svaki bajt internih putanja kao element polja GF(28) i izvršava

operacije u ovom konačnom polju. Međutim, ako red konačnog polja nije prost, a GF(28) nije,

operacije sabiranje i množenje ne mogu biti predstavljene po modulu GF(28).Takva polja sa

m > 1 se nazivanju proširena polja.

14

Za takva polja potrebne su nam drugačije oznake za elemente polja, druga pravila za

operacije nad poljima. Videćemo da se elementi proširenih polja predstavljaju kao polinomi a

operacije su operacije nad polinomima.

U proširenom polju GF(2m) elementi nisu brojevi već polinomi sa koeficijentima u

GF(2). Polinomi su najvišeg stepena m − 1, tako da ukupno ima m koeficijenata za svaki

element. U polju GF(28) koje koristi AES, svaki element A ∈ GF(28) je predstavljen kao:

A(x) = a7x7 + ⋯ + a1x + a0, ai ∈ GF(2) = {0,1}.

Primetite da ima 256 = 28 takvih polinoma. Skup ovih 256 polinoma je konačno polje

GF(28) .Takođe je važno primetiti da svaki polinom jednostavno može da se prikaže kao 8 - bitni

vektor:

A = {a7, a6, a5, a4, a3, a2, a1, a0}.

Nije potrebno da čuvamo faktore x7, x6, itd. Na osnovu pozicije bita jasno je da

xiodgovara koeficijent na poziciji i.

Sabiranje i oduzimanje u GF(2m)

Sabiranje i oduzimanje u AES-u je standardno sabiranje i oduzimanje polinoma, retko

kada se operacije izvode nad koeficijentima stepena x. Sabiranje i oduzimanje koeficijenata je

uglavnom u polju GF(2).

Definicija 3: Prošireno polje (sabiranje i oduzimanje)

Neka je A(x), B(x) ∈ GF(2m). Suma ova dva elementa se izračunava na sledeći način:

C(x) = A(x) + B(x) = ∑ ci

m−1

i=0

xi, ci ≡ ai + bi mod 2

C(x) = A(x) − B(x) = ∑ ci

m−1

i=0

xi, ci ≡ ai − bi ≡ ai + bi mod 2

Sabiranje (ili oduzimanje) koeficijenata radimo po modulu 2. Kao što smo videli sabiranje

i oduzimanje po modulu 2 su iste operacije. Štavise sabiranje po modulu 2 je ustvari operacija

nad bitovima XOR (ekskluzivno ili). Pogledajmo primer u polju GF(28) koje se koristi u AES-u.

15

Primer: Sabiranje dva elementa C(x) = A(x) + B(x) u GF(28) radi se na sledeći način:

A(x) = x7 + x6 + x4 + 1, B(x) = x4 + x2 + 1 , sabiranjem dobijamo da je

C(x) = x7 + x6 + x2.

Množenje u GF(2m)

Množenje u GF(28) je osnovno funkcionisanje MixColumn transformacije u AES-u.

A(x) ∙ B(x) = (am−1xm−1 + ⋯ + a0) ∙ (bm−1xm−1 + ⋯ + b0)

𝐶′(𝑥) = 𝑐2𝑚−2′ 𝑥2𝑚−2 + ⋯ + 𝑐0

gde: 𝑐0′ = 𝑚𝑜𝑑 2

𝑐1′ = 𝑎0𝑏0 + 𝑎1𝑏0 𝑚𝑜𝑑 2 ..... 𝑐2𝑚−2

′ = am−1bm−1 mod 2.

Primetimo da su svi koeficijenti, ai, bii ci elementi GF(2) i da se operacije nad njima

izvršavaju u GF(2). Generalno govoreći, proizvod polinoma C(x) će imati stepen veći od m − 1 i

potrebno je da se smanji. Pristup je sličan kao kod množenja u konačnim poljima: množimo

brojeve, delimo ih prostim brojem i uzimamo samo ostatak. U ovom slučaju proizvod se deli

polinomom i uzima se ostatak (potreban nam je nesvodljiv polinom).

Definicija 4: Neka je A(x), B(x) ∈ GF(2m) i neka je

𝑃(𝑥) ≡ ∑ 𝑝𝑖

𝑚

𝑖=0

𝑥𝑖 , 𝑝𝑖 ∈ 𝐺𝐹(2)

nesvedeni polinom. Množenje dva elementa A(x), B(x) radi se na sledeći način:

𝐶(𝑥) ≡ A(x) ∙ B(x) mod P(x).

Za svako polje 𝐺𝐹(2𝑚) je potreban nesvodljiv polinom 𝑃(𝑥) stepena 𝑚 sa

koeficijentima iz 𝐺𝐹(2). Nisu svi polinomi nesvodljivi, na primer 𝑥4 + 𝑥3 + 𝑥 + 1 je svodljiv

𝑥4 + 𝑥3 + 𝑥 + 1 = (𝑥2 + 𝑥 + 1)(𝑥2 + 1)

pa ne može da se koristi za prošireno polje 𝐺𝐹(24). Za AES se po definiciji koristi nesvodljivi

polinom

𝑃(𝑥) = 𝑥8 + 𝑥4 + 𝑥3 + 𝑥 + 1.

16

Inverzija u GF(2m)

Inverz u GF(28) je osnovna operacija transformacije zamene bajtova koja sadrži AES S -

Box. Za dato konačno polje GF(2m) i odgovarajući nesvodljivi polinom 𝑃(𝑥), inverz 𝐴−1nenula

elementa 𝐴 ∈ GF(2m) je definisan kao:

𝐴−1(𝑥) ∙ 𝐴(𝑥) = 1 𝑚𝑜𝑑 𝑃(𝑥)

Za mala polja u praksi to su polja sa GF(216) ili manje elemenata, koristi se

predefinisana tabela inverza svih elemenata polja. Tabela sadrži sve vrednosti koje se koriste u

AES S-Boxu. Tabela sadrži inverze iz GF(28) po modulu 𝑃(𝑥) = 𝑥8 + 𝑥4 + 𝑥3 + 𝑥 + 1 u

heksadekadnom zapisu. Specijalni slučaj je element 0 za koji inverz ne postoji. Međutim za AES

S-Box je potrebna vrednost za svaki ulaz, pa se po dogovoru za ulaz 0 koristi vrednost 0.

0 1 2 3 4 5 6 7 8 9 A B C D E F 0 00 01 8D F6 CB 52 7B D1 E8 4F 29 C0 B0 E1 E5 C7

1 74 B4 AA 4B 99 2B 60 5F 58 3F FD CC FF 40 EE B2

2 3A 6E 5A F1 55 4D A8 C9 C1 0A 98 15 30 44 A2 C2

3 2C 45 92 6C F3 39 66 42 F2 35 20 6F 77 BB 59 19

4 1D FE 37 67 2D 31 F5 69 A7 64 AB 13 54 25 E9 09

5 ED 5C 05 CA 4C 24 87 BF 18 3E 22 F0 51 EC 61 17

6 16 5E AF D3 49 A6 36 43 F4 47 91 DF 33 93 21 3B

7 79 B7 97 85 10 B5 BA 3C B6 70 D0 06 A1 FA 81 82 8 83 7E 7F 80 96 73 BE 56 9B 9E 95 D9 F7 02 B9 A4

9 DE 6A 32 6D D8 8A 84 72 2A 14 9F 88 F9 DC 89 9A

A FB 7C 2E C3 8F B8 65 48 26 C8 12 4A CE E7 D2 62

B 0C E0 1F EF 11 75 78 71 A5 8E 76 3D BD BC 86 57

C 0B 28 2F A3 DA D4 E4 0F A9 27 53 04 1B FC AC E6

D 7A 07 AE 63 C5 DB E2 EA 94 8B C4 D5 9D F8 90 6B

E B1 0D D6 EB C6 0E CF AD 08 4E D7 E3 5D 50 1E B3

F 5B 23 38 34 68 46 03 8C DD 9C 7D A0 CD 1A 41 1C

17

2.2 Prošireni Euklidov algoritam

Prošireni Euklidov algoritam, pored pronalaženja najvećeg zajedničkog delioca celih

brojeva a i b, što radi obični Euklidov algoritam takođe nalazi cele brojeve h i u (od kojih je

uglavnom jedan negativan) koji zadovoljavaju Bezuov stav:

𝑎𝑥 + 𝑏𝑦 = 𝑛𝑧𝑑(𝑎, 𝑏)

Prošireni Euklidov algoritam je posebno koristan kada su a i b uzajamno prosti, pošto je

h modularni multiplikativni inverz od a po modulu b, a y je modularni multiplikativni inverz od b

po modulu a.

Iterativna metoda: Ovaj metod računa izraze oblika 𝑟𝑖 = 𝑎𝑥𝑖 + 𝑏𝑦𝑖 za ostatak u svakom

koraku 𝑖 Eukliovog algoritma. Svaki uzastopni broj 𝑟𝑖 može biti zapisan kao ostatak pri deljenju

prethodno dva takva broja, čiji ostatak može biti izražen koristeći ceo količnik 𝑞𝑖 tog deljenja

prema sledećoj formuli:

𝑟𝑖 = 𝑟𝑖−2 − 𝑞𝑖 𝑟𝑖−1.

Prilikom zamene vrednosti dobijamo:

𝑟𝑖 = (𝑎𝑥𝑖−2 + 𝑏𝑦𝑖−1) − 𝑞𝑖 (𝑎𝑥𝑖−1 + 𝑏𝑦𝑖−1)

što zapisujemo i kao:

𝑟𝑖 = 𝑎(𝑥𝑖−2 − 𝑞𝑖𝑥𝑖−1) + 𝑏(𝑦𝑖−1 − 𝑞𝑖𝑦𝑖−1)

Polazni argumenti za algoritam su prve dve vrednost:

𝑟1 = 𝑎 = 𝑎 ⤫ 1 + 𝑏 ⤫ 0

𝑟2 = 𝑏 = 𝑎 ⤫ 0 + 𝑏 ⤫ 1

Početni koeficijenti su: 𝑥1 = 1, 𝑦1 = 0, 𝑥2 = 0, 𝑦2 = 1 , dok su drugi dati kao

𝑥𝑖 = 𝑥𝑖−2 − 𝑞𝑖 𝑥𝑖−1,

𝑦𝑖 = 𝑦𝑖−2 − 𝑞𝑖 𝑦𝑖−1

Izraz za poslednji ne-nula ostatak daje željeni rezultat, pošto ovaj metod računa svaki ostatak u odnosu

na a i b, kao što smo i trebali pokazati.

Da bi ceo broj a bio invertibilan po modulu b, potrebno je da a i b budu uzajamno prosti,

tako da, kada bi se pronašao NZD veći od 1, moglo bi se zaključiti da takav modularni inverz ne

postoji. Zapazimo da jednačina koje definiše vrednost za 𝑥𝑖 je nezavisne od jednačine koja

definiše vrednost za 𝑦𝑖 i da Bezuov identitet na kraju 𝑁𝑍𝐷 = 𝑟𝑘 = 𝑎𝑥𝑘 + 𝑏𝑦𝑘 dozvoljava 𝑦𝑘

kada znamo 𝑥𝑘. Pa možemo izostaviti vrednost 𝑦𝑖 iz računanja. Ovo je posebno važno za primenu,

kao što je modularni inverz.

18

Opis algoritma:

Prema rutini algebre o proširenju i grupisanju kao uslovima, dobijen je sledeći algoritam

za iterativnu metodu:

- Primeniti Euklidov algoritam, i postaviti qn (n počinje od 1) kao konačnu listu količnika u

deljenju.

- Inicijalizovati x0, x1 na 1, 0, i y0, y1 na 0,1.

- Zatim za svako i dokle god je qi definisano,

- Izračunati xi+1 = xi-1 − qixi

- Izračunati yi+1 = yi−1 − qiyi

- Ponavljati gorenavedeno nakon povećanja vrednosti i za 1

- Odgovori su od drugog do poslednjeg od xn i yn.

Pseudo-kod za ovaj metod je:

𝒇𝒖𝒏𝒄𝒕𝒊𝒐𝒏 𝑝𝑟𝑜𝑠𝑖𝑟𝑒𝑛𝑖_𝑛𝑧𝑑(𝑎, 𝑏)

𝑥 ∶= 0 𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑥 ∶= 1

𝑦 ∶= 1 𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑦 ∶= 0

𝒘𝒉𝒊𝒍𝒆 𝑏 ≠ 0

𝑘𝑜𝑙𝑖𝑐𝑛𝑖𝑘 ∶= 𝑎 𝒅𝒊𝒗 𝑏

(𝑎, 𝑏) ∶= (𝑏, 𝑎 𝒎𝒐𝒅 𝑏)

(𝑥, 𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑥) ∶= (𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑥 − 𝑘𝑜𝑙𝑖𝑐𝑛𝑖𝑘 ∗ 𝑥, 𝑥)

(𝑦, 𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑦) ∶= (𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑦 − 𝑘𝑜𝑙𝑖𝑐𝑛𝑖𝑘 ∗ 𝑦, 𝑦)

𝒓𝒆𝒕𝒖𝒓𝒏 (𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑥, 𝑝𝑜𝑠𝑙𝑒𝑑𝑛𝑗𝑖_𝑦)

Izračunavanje multiplikativnog izraza u konačnom polju:

Prošireni Euklidov algoritam se može koristiti i za računanje modularnog

multiplikativnog inverza u konačnom polju. S obzirom da nesvodljiva polinomijalna funkcija f(x)

definiše polje, i element a(x) čiji inverz želimo, oblik algoritma koji odgovara određivanju

inverza je dat u nastavku.

ostatak() se odnosi na ostatak pri deljenju dva broja, a kolicnik() na celobrojni količnik

pri deljenju dva broja. Deljenje (sa ostatkom) se mora izračunati pod uslovima polinomijalne

aritmetike a ne "normalnih" brojeva.

19

Pseudokod:

𝑜𝑠𝑡𝑎𝑡𝑎𝑘[1] ∶= 𝑓(𝑥)

𝑜𝑠𝑡𝑎𝑡𝑎𝑘[2] ∶= 𝑎(𝑥)

𝑝𝑜𝑚𝑜𝑐𝑛𝑖[1] ∶= 0

𝑝𝑜𝑚𝑜𝑐𝑛𝑖[2] ∶= 1

𝑖 ∶= 2

𝒘𝒉𝒊𝒍𝒆 𝑜𝑠𝑡𝑎𝑡𝑎𝑘[𝑖] > 1

𝑖 ∶= 𝑖 + 1

𝑜𝑠𝑡𝑎𝑡𝑎𝑘[𝑖] ∶= 𝑜𝑠𝑡𝑎𝑡𝑎𝑘(𝑜𝑠𝑡𝑎𝑡𝑎𝑘[𝑖 − 2] / 𝑜𝑠𝑡𝑎𝑡𝑎𝑘[𝑖 − 1])

𝑘𝑜𝑙𝑖𝑐𝑛𝑖𝑘[𝑖] ∶= 𝑘𝑜𝑙𝑖𝑐𝑛𝑖𝑘(𝑜𝑠𝑡𝑎𝑡𝑎𝑘[𝑖 − 2] / 𝑜𝑠𝑡𝑎𝑡𝑎𝑘[𝑖 − 1])

𝑝𝑜𝑚𝑜𝑐𝑛𝑖[𝑖] ∶= −𝑘𝑜𝑙𝑖𝑐𝑛𝑖𝑘[𝑖] ∗ 𝑝𝑜𝑚𝑜𝑐𝑛𝑖[𝑖 − 1] + 𝑝𝑜𝑚𝑜𝑐𝑛𝑖[𝑖 − 2]

𝑖𝑛𝑣𝑒𝑟𝑧 ∶= 𝑝𝑜𝑚𝑜𝑐𝑛𝑖[𝑖]

Na primer: ako se konačno polje GF(28) definiše sa f(x) = x8 + x4 + x3 + x + 1, i

x6 + x4 + x + 1 = {53}, u heksadecimalnoj notaciji, je element čiji inverz želimo, prilikom izvršenja

algoritama dobijamo:

i ostatak[i] količnik[i] pomocni[i]

1 x8 + x4 + x3 + x + 1 0

2 x6 + x4 + x + 1 1

3 x2 x2 + 1 x2 + 1

4 x + 1 x4 + x2 x6 + x4 + x4 + x2 + 1

5 1 x + 1 x7 + x6 + x3 + x2 + x2 + x + 1 + 1

6 0 x + 1

Dakle inverz je, x7 + x6 + x3 + x = {CA}, što protvrđuje množenje ova dva elementa.

20

Glava 3

3.1 DES (Data Encryption Standard)

Sredinom 20. veka, brzim razvojem tržista finasijskih usluga, kriptografija je postala

potrebna i zanimljiva velikom broju korisnika. Do tada se najvise koristila u vojne i diplomatske

svrhe, bez nekog standarda koji su sve više tražile sve brojnije multinacionalne kompanije koje

su međusobno sarađivale.

Takvu potrebu je uočio i americki NBS (National Bureau of Standards), danas imena NIST

(National Institute of Standards and Technologi), pa je 1972. godine započeo sa programom za

zaštitu podataka, da bi već 1973. godine, 15. maja, raspisao konkurs za kriptosistem koji bi

postao svetski standard, a morao bi da zadovolji sledeće uslove:

- visoki stepen sigurnosti,

- potpun opis i lako razumevanje algoritma,

- sigurnost algoritma osigurava ključ, a ne tajnost algoritma,

- dostupnost velikom broju korisnika,

- široka primenljivost,

- ekonomičnost ugradnje u elektronske uređaje,

- efikasnost,

- proverljivost,

- mogućnost izvoza.

Nijedan od pristiglih na konkurs nije zadovoljavao sve gore navedene uslove pa je raspisan

jos jedan konkurs, 27. avgusta 1974.godine, na kojem je "najozbiljnija" prijava bila ona koju je

poslao IBM-ov tim i čiji algoritam se zasniva na tzv. Feistelovoj šifri, ideji koju je uveo sam Horst

Feistel 1973. godine.

Glavna ideja je upotreba supstitucija i transpozicija kroz veći broj ciklusa. U razvoju

algoritma se uključila i americka sigurnosna agencija NSA, čiji je najveći uticaj bio na skraćivanje

ključa i na misteriozne S-kutije.

Predloženi kriptosistem objavljen je 1975. godine u časopisu Federal Register i tražili su se

javni komentari, a održane su i dve radionice o predloženom standardu. Glavne zamerke velikog

dela kriptografa su bile upravo gore navedene stavke na koje je uticala NSA.

Jedna od zamerki je bila i da je algoritam verovatno oslabljen namerno i to toliko da ga NSA,

ali niko drugi, svaki put može lako i brzo pročitati i presresti svaku poruku. Na kraju rasprave,

odbor američkog tima zadužen za program je odbacio ovakve komentare i zaključio da

algoritam nema nikakve statističke ni matematičke slabosti, s obzirom na tadašnji stepen razvoja

računara, te da NSA ni na koji način nije direktno, već samo indirektno, uticala na razvoj algoritma.

21

Do dana današnjeg nije u potpunosti razjašnjen uticaj NSA, a razjašnjenju cele situacije nisu

pomogle ni međusobno izjave upravo članova IBM-ova tima koji je radio na razvoju algoritma.

Napokon, 1976. godine predloženi kriptosistem je prihvaćen kao standard i nazvan DES (eng.

Data Encryption Standard), a 15. januara 1977. godine je i službeno objavljen.

Posle objavljivanja oko dvadeset godina DES je bio najviše korišćeni standard na svetu. Prva

slabost DES-a je dokazana 1998. godine, kada je otkrijen računar koji je u tom vremenu vredeo

250.000 dolara, koji je za smo 56 sati odredio ključ DES-a.

3.2 Funkcionisanje DES algoritma

Proces funkcionisanja DES-a je sledeći. Na ulazu u algoritam koristi se blok od 64 bita

ulaznog teksta i ključ koji iznosi 56 bita. Na izlazu imamo 64-bitni šifrovani tekst koji dobijamo

posle 16 ciklusa koji se sastoje od itentičnih operacija.

22

Dužina ključa šifriranja je 64 bita, gde 8 bita otpada na proveru tako da je zbog toga

efektivna dužina ključa 56 bita. Šifriranje se sprovodi u nekoliko koraka. Najpre se bitovi ulaznog

bloka duzine 64 bita permutuje nekom inicijalnom permutacijom. Ovde se radi o običnoj

permutaciji koja vrši zamenu mesta bitovima. Zatim se tako permutovani ulazni blok podeli na

dva dela od po 32 bita, levi 𝐿0 i desni deo 𝑅0.

Nad desnim delom bloka se obavlja funkcija 𝑓(𝑅0, 𝐾1), gde je 𝑅0 predstavlja desnih 32

bita, a 𝐾1 je 48-bitni ključ. Ova funkcija generiše 32-bitni rezultat. Nad rezultat koji smo dobili

funkcijom 𝑓 i 𝐿0 vrši se operacija XOR. Vrednost dobijena operacijom XOR između vrednosti

funcije 𝑓 i levih 32 bita podataka postaje 𝑅1, a desnih 32 bita za sledeći korak iteracije. Posle 16

takvih koraka blokovi se zamenjuju i spajaju pa se zatim obavlja konačna permutacija koja je

inverzna početnoj permutaciji. 64 bita koji smo dobili su šifrovani blokovi.

23

Struktura Feistel algoritma

Horst Feistel je osmislio feistel algoritam baziran na konceptu invertabilnih produkcionih

algoritama. On deli ulazni blok na dve polovine, obrađuje ih u više iteracija koje izvrše algoritam

zamene za levu polovinu podataka, bazirano na funkciji iteracije desne polovine i podključa i na

kraju permutacijom zameni polovine primenjuje Shannon-ov koncept S-P mreža.

Mnoga današnja šifriranja su zasnovana na feistel algoritmu ali ne sve. Pregled DES

algoritma je prikazano na sledećoj slici:

Šifruju se blokovi od 64 bita, gde se koristi ključ od 56 bita. Ponavljanje se vrši 16 puta, a u

svakom ponavljanju imamo različit podključ koji je izveden od glavnog ključa. DES struktura je Feistelova

mreža, razlika je samo u ključu šifrovanja i dešifrovanja.

Izgled jednog ciklusa:

Podelimo ulazni tekst na dva dela 𝐿𝑖 𝑖 𝑅𝑖, isti princim opisan na početku važi, ali cikluse

možemo opsati i na sledeći način:

𝐿𝑖 = 𝑅𝑖−1

𝑅𝑖 = 𝐿𝑖−1⨁𝑓(𝑅𝑖−1, 𝑘𝑖)

24

Detalji unutrašnjosti DES-a

„Šta se dešava sa bitovima“? Jedinstvena permutacija bitova se odvija na sledići način:

Primer: Ukoliko 1 bit prebacimo na mestu 40-tog, 58 na mestu 1 bita upravo to

prebacivanje nam predstavlja inicijalizovanu permutaciju (redosled uzimanja bita je random),

dok kod inverzne permutacije prvi bit ide na mestu 58 bita, a 40 na mestu prvog bita. Loš

primer je na početku i na kraju raditi istu permutaciju, jel bi tada došlo do lakog proboja, upravo

zato na kraju uzimamo inverznu permutaciju.

25

Formiranje ključeva:

U svakoj iteraciji prilikom šifrovanja i dešifrovanja se koriste različiti ključevi

𝐾1, … , 𝐾16 koji su veličine 48 bita. Za generisanje takvih ključeva koristi se poseban algoritam

kao na slici:

Postupak generisanja šesnaest 48-bitnih delova ključeva ( 𝐾1, … , 𝐾16) od zadatog tajnog

ključa vrši se u nekoliko koraka. Najpre se odstrane bitovi parnosti 8-, 16-, 24-, 32-,40-, 48-, 56-

iz 64-bit ključa. Nakon toga se pomoću zadate tabele permutacije PC-1 iz ključa generišu dva

bloka po 28 bita 𝐶𝑖 𝑖 𝐷𝑖. Formiranje blokova vrši se tako što se svaki bit sa pozicije 𝑖 ide na

poziciju koja se čita iz 𝑖 −te stavke ove tabele. Zatim sledi 16 koraka u kome se svaki blok rotira

ulevo za određeni broj bita. Tako nastali blokovi se spajaju, a nakon toga se permutacijom koja

je definisana u PC-2 generiše odgovarajući deo ključa 𝐾𝑖 , gde 𝑖 predstavlja redni broj koraka.

PC-1

26

PC-2

Detalji funkcije 𝒇

Najkritičniji deo predstavlja sama Feistelova funkcija 𝑓. Ona se formira u nekoliko koraka

kao na slici:

27

Na osnovu E tabele, od 32-bitnih Ri se proširenjem, dobija neki podatak koji je dužine 48

bita. Tako dobijena vrednost se sabira bit po bit sa ključem Ki XOR logičkom operacijom i kao

rezultat se dobija 48-bitna vrednost koja se deli na osam delova od po šest bita.

Ovako dobijene vrednosti se raspoređuju u osam blokova za substituciju koji se naziva S-

box (S1,S2, …,S8). Svaki S-box ulaznih 6 bita zamenjuje sa 4 bita na izlazu. Prvi i zadnji bit svakog

6-bitnog dela na ulazu u S-box predstavljaju adresu reda, a preostala četiri u sredini adresu

kolone u tabeli substitucije. Na sličan način se formiraju i ostali S-box-ovi.

Ponaljanjem istog postupka nad svakom šestorkom od 48 bita na ulazu supstitucijom se

dobija 32 bita. Na taj način formirana 32 bita dodatno se permutuju i tako se dobija vrednost

funcije 𝑓. Sada ćemo napomenuti i koja je osnovna svrha funkcija 𝐸 (ekspanzija). Osnovna

svrha je da se poveća difuzija u ulaznih 𝑅𝑖−1 ,to znaci da su neki bitovi povezani sa jednim

bitom a neki sa više bita, tačnije 16 bita je povezano sa po jednim bitom, a ostalih 16 sa po dva

bita.

Primer:

28

Dešifrovanje DES-a

Algoritam dešifrovanja je skoro identičan kao i šifriranje samo što se operacije korišćene

kod šifriranja obovljaju u obrnutom redosledu. Šifrovani blok se pusta kroz isti algoritam, ali

umesto ključa 𝐾𝑖 u 𝑖-tom koraku sada koristimo ključ 𝐾16−𝑖+1. Kao što se i vidi sa slike:

Šifrovanje Dešifrovanje

29

DES algoritam danas ne mozemo smatrati sigurnim algoritmom, zbog relativno male

dužine ključa kao i zbog drugih nedostatka koji su omogućili kriptoanalitičarima u celom svetu

da objave niz algoritama za razbijanje DES-a. Najpoznati napad ovog algoritma je: brute force

attack - isprobavanje svih mogućih ključeva i upravo zbog toga je DES algoritam 1998. godine

razbijen uz pomoć Deep Crack računar, za šta je potrebno bilo samo 56 sati. Kao rešenje bio je

predlog 3DES, što znači trostruko šifriranje DES-a.

3DES

Imamo tri metoda 3DES algoritma, a to su:

- 1 metod: podatke šifrujemo tri puta sa tri odvojena ključa.

- 2 metod: podatke šifrujemo jednim ključem, zatim dešifrujemo drugim ključem, pa se

ponovo šifruju trećim ključem.

- 3 metod: identičan je kao prethodno navedena dva metoda, ali se isti ključ koristi u

prvoj i trećoj operaciji.

Na slici je prikazan način šifrovanja i dešifrovanja podataka P upotrebom tri ključa K1, K2,

K3.

Šifrovanje

Dešifrovanje

30

Ključ K1 se koristi za šifrovanje bloka podataka poruke P pomoću standardnog DES

algoritma i tako Šifrirana poruka se dešifruje ključem K2. Nova šifrovana poruka dobija se

dešifrovanjem poruke sa ovim ključem. Zatim rezultat dešifrovanja se opet šifruje, ali ovog puta

ključem K3 ili opet sa prvim ključem K1. Na taj način je dobijena šifrovana poruka C.

Korišćenjem različitih ključeva naizmenično, povećava se dužina ključa na 168 bita, ali

tako se povećava i broj kombinacija koje bi napadač morao da proba. Za dva različita kluča broj

kombinacija je 2112, za tri različita ključa broj kombinacija je 2168.

Ovaj algoritam bavi se rešavanjem problema dužine ključa DES-a, ali nedostatak je to što

je dosta sporiji od DES-a. Poruka koja je šifrirana pomoću 3DES algoritma dešifruje se kao i

standardni DES algoritam inverznim funkcijama u odnosu na šifriranje. Najpre se dešifruje

pomoću trećeg ključa, zatim sledi šifrovanje ključem K2, a na kraju se izvorna poruka P dobija

dešifrovanjem pomoću ključa K1.

31

Glava 4

4.1 AES (Advanced Encryption Standard)

AES algoritam je tzv blok šifra koja koristi isti ključ u procesu šifrovanja i dešifrovanja

podataka koja se primenjuje i nekoliko iteracija(ciklusa).

AES ima 10 ciklusa a svaki ciklus se sastoji od 4 operacija odnosno četiri različita tipa

funkcija koja se primenjuju nad elementima matrice dimenzije 4x4 bajta, a to su:

1. SubBytes(nelinearna zamena bajtova pomoću supstitucione tabele).

2. ShiftRows(promena mesta bajtovima unutar istog reda).

3. MixColumns(transformacija bajtova unutar iste kolone).

4. AddRoundKey(inicijalno dodavanje ključa).

Pre prvog ciklusa vrši se inicijalno dodavanje ključa (AddRoundKey), a u poslednjem

ciklusu se izostavlja transformacija MixColumns.

U Rijindael algoritmu sve operacije sabiranja i množenja se vrše nad elementima

konačnog polja od q=rm elementima, gde m predstavlja prirodan broj. Navedena konačna polja

se predstavljaju oznakom GF(rm) i nazivaju Galoova polja, u čast francuskog matematičara

Evariste Galois od 256 elemenata (u oznaci GF(28)).

32

4.2 Detalji AES-a

Ulaz je prestavljen pomoću 16 bajtova A0, … , A15 u S-boxu, izlaz je takođe 16 bajtova

B0, … , B15 dobijen permutacijama u ’’ShiftRows’’ i zamenama u MixColum transformaciji c(x).

Vrši se XOR operacija nad 128-o bitnim podključem ki i međurezultatom.

Primetimo da je AES orijentisan na bajtove dok se DES zasniva na permutaciji bitova, pa

se može reći da je orijentisan na bitove. Da bismo razumeli kako se podaci kreću kroz AES prvo

zamislimo stanje A (128 - bitna putanja) sastavljena od 16 bajtova A0, … , A15 formirano kao

matrica 4x4.

A0 A4 A8 A12

A1 A5 A9 A13

A2 A6 A10 A14

A3 A7 A11 A15

AES vrši operacije na elementima, kolonama ili vrstama trenutne matrice stanja. Slično

su bajtovi raspoređeni u matrice sa 4 vrste i 4 kolone (128-bitni ključ), 6 (192-bitni ključ) ili 8

(256-bitni ključ) kolona.

33

K0 K4 K8 K12 K16 K20

K1 K5 K9 K13 K17 K21

K2 K6 K10 K14 K18 K22

K3 K7 K11 K15 K19 K23

SubBytes(zamena bajtova)

U svakom ciklusu prvo šta se radi je zamena bajtova. Može da se posmatra kao vrsta od

16 paralelnih S-boxova svaki sa po 8 ulaznih i izlaznih bitova. Primetimo da su svi 16 S-boxovi

identični za razliku od DES-a gde se koristi 8 različitis S-boxova. Svaki bajt stanja 𝐴𝑖 je zamenjen

drugim bajtom 𝐵𝑖:

𝑆(𝐴𝑖) = 𝐵𝑖

S-box je jedini nelinearni element AES-a tj. 𝐵𝑦𝑡𝑒𝑆𝑢𝑏(𝐴) + 𝐵𝑦𝑡𝑒𝑆𝑢𝑏 (𝑏) ≠

𝐵𝑦𝑡𝑒𝑆𝑢𝑏 (𝑎 + 𝑏).

Za dva stanja 𝐴 𝑖 𝐵 . S-Box zamena je bijekcija, tj svaki od 28= 256 ulaznih elemenata je

jedan na jedan mapirano sa izlaznim elementima. Ovo nam dozvoljava da na jedinstven način

invertujemo S-box što je neophodno za dešifrovanje. U konkretnoj implementaciji S-box se

obično realizuje kao matrica od 256-8-o bitnih elemenata.

34

Prvi deo zamene je inverz Galoa polja. Za svaki ulazni element 𝐴𝑖 inverz je izračunat kao

𝐵𝐼′ = 𝐴−1 , gde su 𝐴𝑖 i 𝐵𝑖 elementi polja 𝐺𝐹(28) sa fiksiranim nesvodljivim polinomom 𝑃(𝑥) =

𝑥8 + 𝑥4 + 𝑥3 + 𝑥 + 1. U drugom delu zamene, svaki bajt 𝐵𝑖 se množi konstantnom matircom

bitova a zatim se dodaje 8-o bitni vektor.

Primetimo da je 𝐵′ = (𝑏7′ , … , 𝑏0

′ ) vektroski zapis od 𝐵𝐼′ = 𝐴𝑖

−1(𝑥). U većini AES

implementacija vrednosti se ne računaju, već se koristi predefinisana tabela. Međutim kod

hardverskih implementacija ovo uglavnom nije moguće, pa se tabele računaju.

Prednost korišcenja inverzija u 𝐺𝐹(28) u SubBytes je da pruža veći stepen nelinearnosti

što pruža zastitu od napada.

Difuzija

U AES-u se deo vršenja difuzije sastoji iz dva dela, shiftRows i mixColumn transformacija.

ShiftRows ciklično menja drugu vrstu matrice za 3 bajta desno, treću vrstu za dva bajta i četvrtu

vrstu za 1 bajt udesno. Prva vrsta nije promenjena shiftRows transformacijom. Svrha ove

transformacije je da poveća difuziju u AES-u.

ShiftRow (promena mesta bajtovima)

ShiftRow transformacija se obavlja na sledeći način:

Za svaki red se radi kružno pomeranje u levo, prvi red ostaje nepromenjen, u drugom

redu radi se kružno pomeranje u levo za jedan bajt, u trećem redu se takođe radi kružno

pomeranje u levo za dva bajta i u četvrtom redu se radi kružno pomeranje u levo za tri bajta.

Kako se stanje obrađuje po kolonama(grupama), ovaj korak permutuje bajtove iz jedne kolone

u četiri različite kolone kao što je prikazano na slici:

35

MixColumn (transformacija bajtova unutar iste kolone)

MixColumn korak je linearna transformacija koja meša kolone matrice stanja. Pošto

svaki ulazni bajt utiče na 4 izlazna bajta, MixColumn je najbitniji difuzioni element u AES-u.

Kombinacija ShiftRows i MixColumn omogućava da nakon samo 3 ciklusa svaki bajt matrice

zavisi od 16 ulaznih bajtova. 16-o bajtni ulaz smo označili sa B, a 16-o bajtni izlaz sa C:

MixColumn(B) = C,

gde je B stanje posle ShiftRows operacije. Sada je svaka kolona od 4 bajta predstavljena kao

vektor i pomnožena fiksnom 4x4 maticom. Matrica je popunjena konstantama. Množenje i

sabiranje koeficijenata se izvodi u 𝐺𝐹(28) .

36

Dodavanje ključa

Sastoji se iz dva dela, trenutne 16-o bajtne matrice stanja i podključa koji je takođe 16-o

bajtni. Ove dve vrednosti se kombinuju koristeci XOR operaciju.

AddRoundKey (inicijalno dodavanje ključa)

Na osnovu originalnog ključa (dužine 128, 192 ili 256 bitova) stvara se podključ koji se

koristi u AES-u. Primetimo da se XOR operacija nad podključem koristi i na ulazu i na izlazu AES-

a. Ovaj proces se naziva izbeljivanje ključeva. Broj podkljlučeva je jednak broju ciklusa plus 1

zato što je potreban ključ za izbeljivanje kod prvog dela dodavanja ključa. Za ključ duzine 128

bitova, broj ciklusa je n = 10 i ima 11 podključeva svaki dužine 128 bitova. AES podključevi se

računaju rekurzivno, da bi se dobio podključ 𝑘𝑖 potrebno je znati ključ 𝑘𝑖−1.

128-bitni ključ: 11 podključeva se čuva u nizu sa elementima W[0], . . . , W[0]. Elementi

K0, … , K15 predstavljaju bajtove originalnog AES ključa. Prvi podključ je ustvari originalni AES

ključ, tj. ključ je kopiran u prva 4 elementa niza W. Ostali elementi niza se računaju na sledeći

način.

Kao što vidimo prva reč podključa W[4i], gde i = 1, … ,10 se računa kao

𝑊[4𝑖] = 𝑊[4(𝑖 − 1)] + 𝑔(𝑊[4𝑖 − 1]).

Ovde je 𝑔() nelinearna funkcija sa 4 bajta ulaza i izalza. Preostale 3 reči podključa se računaju

rekurzivno kao

37

𝑊[4𝑖 + 𝑗] = 𝑊[4𝑖 + 𝑗 − 1] + 𝑊[4(𝑖 − 1) + 𝑗],

gde je 𝑖 = 1, . . . ,10 i 𝑗 = 1,2,3. Funkcija 𝑔() rotira svoja 4 ulazna bajta i vrši S-Box zamenu nad

bajtovima i dodaje ciklični koeficijent RC. Ciklicni koeficijent je element Galoa polja 𝐺𝐹(28) tj.

8- bitna vrednost. Dodata je samo na prvi bajt funkcije g(). Koeficijent varira od ciklusa do

ciklusa po sledećem pravilu:

RC[1] = 𝑥0 = (00000001)2,

RC[2] = 𝑥1 = (00000010)2,

RC[3] = 𝑥2 = (00000100)2,

...

RC[10] = 𝑥9 = (00110110)2.

Funkcija 𝑔() ima dve uloge, da doda nelinearnost u rasporedu ključeva i da ukloni

simetriju iz AES-a. Ovo je potrebno kao zastita od napada. AES je još uvek u upotrebi i biće još

dugi niz godina. Brute-force napadi nisu mogući sa današnjim tehnologijama, jer bi za njihovo

izvršenje bilo potrebno dosta vremena.

38

Glava 5

Zaključak

Ukoliko uznemo u obzir da je Kriptografija danas veoma rasprostranjena, primetićemo

da je u ovom radu opisan samo jedan njen deo tj. osnova kriptografije. Govorilo se o različitim

metodama i algoritmima, akcenat je bačen na osnovne sigurnosne servise koji se u cilju

sigurnosti moraju zadovoljiti primenom kriptografskih metoda.

Razatralo se o efikasnosti pojedinih algoritama kao i o njihovim ispitivanjima na raznim

primerima. Odradjeni su problemi koji se javljaju prilikom upotrebe i distrbucije ključeva koji se

koriste prilikom šifrovanja. Posebno treba obratiti pažnu na objašnjenje DES i AES algoritma.

Cilj ovog rada je da ukaže na upotrebu zaštite podataka i prikaže razne mehanizme za

njihovu zaštitu. Predmet istraživanja rada je upoznavanje sa metodama koje se danas najčešće

koriste da onemoguće zloupotrebu podataka.

39

Literatura

1. Alfred J. Menezes, Paul C. Van Oorschot, Scott A. Vanstone, Handbook of Applied

Cryptography, CRC Press, 1996

2. Jonathan Katz, Yehuda Lindell, Introduction to Modern Cryptography, CRC Press,2007

3. Serge Vaudenay, Aclassical introduction to cryptography, CRC Press, 2007

4. Frederick Charles Piper, Cryptography, Oxford University Press, 2002

Прилог 5/1

ПРИРОДНО - МАТЕМАТИЧКИ ФАКУЛТЕТНИШ

KEY WORDS DOCUMENTATION

Редни број, РБР:

Идентификациони број, ИБР:

Тип документације, ТД: монографска

Тип записа, ТЗ: текстуални / графички

Врста рада, ВР: мастер рад

Аутор, АУ: Ана Вељковић

Ментор, МН: Јелена Игњатовић

Наслов рада, НР:Савремени стандарди у криптографији

Језик публикације, ЈП: српски

Језик извода, ЈИ: енглески

Земља публиковања, ЗП: Р. Србија

Уже географско подручје, УГП: Р. Србија

Година, ГО: 2017.

Издавач, ИЗ: ауторски репринт

Место и адреса, МА: Ниш, Вишеградска 33.

Физички опис рада, ФО:(поглавља/страна/ цитата/табела/слика/графика/прилога)

42 стр. ; граф. прикази

Научна област, НО: Рачунарске науке

Научна дисциплина, НД: Криптографија

Предметна одредница/Кључне речи, ПО: Савремени стандарди у криптографији, ДЕС, АЕС

УДК 004.056.55

Чува се, ЧУ: библиотекаВажна напомена, ВН:

Извод, ИЗ: Тема рада прати развојну историју криптографије до данашњих савремених трендова. Посебна пажња посвећена је алгоритмима који представљају стандарде безбедности података од 90-тих година прошлог века до данас. Приказане су математичке основе ових алгоритама, базиране на теорији бројева и теорији Галуа. Циљ рада је да открије сложену структуру ДЕС алгоритма, комплексност рада овог алгоритма, укаже на његове слабости и побољшање кроз развој 3-ДЕС система и представи ефективан поступак рада тренутно најјачег АЕС алгоритама.

Датум прихватања теме, ДП: 18/04/2017Датум одбране, ДО:

Чланови комисије, КО:

Председник:

Члан:

Члан, ментор:

Образац Q4.09.13 - Издање 1

Прилог 5/2

ПРИРОДНО - МАТЕМАТИЧКИ ФАКУЛТЕТНИШ

KEY WORDS DOCUMENTATION

Accession number, ANO:

Identification number, INO:

Document type, DT: monograph

Type of record, TR: textual / graphic

Contents code, CC: university degree thesis

Author, AU: Ana Veljković

Mentor, MN: Jelena Ignjatović

Title, TI: Standards of Modern Cryptography

Language of text, LT: Serbian

Language of abstract, LA: English

Country of publication, CP: Republic of Serbia

Locality of publication, LP: Serbia

Publication year, PY: 2017

Publisher, PB: author’s reprint

Publication place, PP: Niš, Višegradska 33.

Physical description, PD:(chapters/pages/ref./tables/pictures/graphs/appendixes)

42 p. ; graphic representations

Scientific field, SF: Computer Science

Scientific discipline, SD: Cryptography

Subject/Key words, S/KW: Principles of Modern Cryptography, DES, AES

UC 004.056.55

Holding data, HD: libraryNote, N:

Abstract, AB: The theme of the thesis follows the development history of cryptography to today’s modern trends. In this paper, special attention was paid to algorithms that represent the data security standards of the 90-ies of the last century to the present. Showing mathematical backgroud of these algorithms, based on number theory and Gaolis theory. The aim is to reveal the complex structure of the DES algorithm, the complexity of this algorithm, point out the weaknesses and improve the development of 3-DES system and presents an effective method of operation currently strongest AES algorithms.

Accepted by the Scientific Board on, ASB: 18/04/2017Defended on, DE:

Defended Board, DB: President:

Member:

Member, Mentor:

Образац Q4.09.13 - Издање 1