• Tidak ada hasil yang ditemukan

Kripto zastita

N/A
N/A
Protected

Academic year: 2021

Membagikan "Kripto zastita"

Copied!
42
0
0

Teks penuh

(1)

OSNOVE KRIPTOZAŠTITE

Skripta

Prof. Dr Milan Markovi

ć

(2)

Sadržaj

1. UVOD ... 3

2. PRIMENA KRIPTOGRAFSKIH METODA ZAŠTITE U INFORMACIONIM SISTEMIMA ... 4

2.1SIMETRIČNI KRIPTOGRAFSKI ALGORITMI ... 4

2.1.1 Blok šifarski sistemi ... 5

2.1.2 Kriptografski modovi blok šifarskih algoritama ... 18

2.1.3 Sekvencijalni šifarski sistemi ... 24

2.1.4 Komparativna analiza blok i sekvencijalnih šifarskih sistema ... 29

2.2ASIMETRIČNI KRIPTOGRAFSKI ALGORITMI ... 29

2.2.1 PKCS#1 standard ... 30

2.2.2 RSA algoritam ... 33

2.3MESSAGE DIGEST ALGORITMI ... 37

2.3.1 MD5 message digest algoritam ... 37

2.3.2 SHA-1 algoritam ... 39

(3)

1. UVOD

Ovaj dokument predstavlja skriptu za izvođenje predmeta „Osnove kriptozaštite“ na Fakultetu poslovne informatike Univerziteta Apeiron u Banja Luci.

U okviru ovog predmeta analiziraju se teorijski aspekti i praktična primena kriptografskih algoritama u savremenim računarskim mrežama i informacionim sistemima.

Akcenat je stavljen na prikaz primera kriptografskih algoritama koji se danas koriste u praksi a prema sledećim tipovima:

• Simetirčni kriptografski algoritmi

• Asimetrični kriptografski algoritmi

• Hash funkcije

Ova skripta služi radi lakšeg praćenja predavanja na predmetu Osnove kriptozaštite, kao i za pripremanje za polaganje ispita. Materijal u skripti je komplementaran sa materijalom koji će biti prikazan na prezentacijama tako da skripta i prezentacije zajedno čine kompletan materijal za pripremu i polaganje ispita.

(4)

2. PRIMENA KRIPTOGRAFSKIH METODA ZAŠTITE U

INFORMACIONIM SISTEMIMA

Kriptografski algoritmi koji se primenjuju u sistemima zaštite Internet/Intranet računarskih mreža dele se u tri velike grupe:

• Simetrični kriptografski algoritmi,

• Asimetrični kriptografski algoritmi.

• Hash funkcije

Podela je izvedena na osnovu posedovanja informacija neophodnih za šifrovanje i dešifrovanje.

2.1 Simetri

č

ni kriptografski algoritmi

Grupu simetričnih kriptografskih algoritama predstavljaju algoritmi kod kojih je ključ za šifrovanje identičan ključu za dešifrovanje, Slika 2.1. Algoritmi iz ove grupe se takođe nazivaju i algoritmi sa tajnim ključem jer je tajnost ključa koji se koristi i za šifrovanje i za dešifrovanje esencijalna za bezbednost poruka u sistemu.

Slika 2.1: Simetrični kriptografski sistemi

B Beezzbbeeddnniikkaannaall I Izzvvoorr k klljjuuččaa I Izzvvoorr p poorruukkee E EAA

X

X

Y

Y

DDAA

X

X

OOddrreeddiiššttee K Krriippttooaannaalliittiiččaarr

K

K

(5)

Ovi sistemi predstavljaju osnovu tradicionalne kriptološke teorije i razvijaju se već veoma dugi niz godina. S obzirom da zaštita informacija težišnu primenu ima u poslovima vezanim za državne strukture (vojska, policija i diplomatija), ovi sistemi su bili isključivo tajni sistemi, namenski definisani i realizovani od strane nadležnih državnih institucija.

Sa porastom intenziteta i primene elektronskih oblika komunikacija javila se potreba za definisanjem javnih simetričnih kriptografskih algoritama pa je u poslednjih desetak godina definisano više javnih simetričnih kriptografskih algoritama za primenu u aplikacijama u kojima za to postoji potreba.

Ovi algoritmi se uglavnom koriste u aplikacijama vezanim za sisteme poslovnih i finansijskih komunikacija. Imajući u vidu eksplozivni razvoj poslovnih i finansijskih sistema u poslednje vreme, javni simetrični kriptografski algoritmi su postali dominantni u pogledu korišćenja.

Međutim, nijedan od njih nije usvojen kao generalni standard već pomenuti sistemi uglavnom koriste odgovarajuće liste mogućih kriptografskih algoritama. Na taj način, kao parametar komunikacije, bira se i identifikator simetričnog šifarskog algoritma koji će se koristiti pri datoj transakciji.

Iako je po masovnosti komercijalna upotreba simetričnih kriptografskih algoritama daleko prevazišla upotrebu u tajnom sektoru (vezanom za državne strukture), glavni teorijski rezultati se i dalje dešavaju u oblasti tajne kriptologije i tajnih sistema. Velika većina država ima specijalizovane organizacije koje se bave dizajniranjem i analizom raznih vrsta šifarskih sistema (npr. NSA u SAD). Stepeni dostignuća u toj oblasti najčće nisu javno poznati i nalaze se u sferi pretpostavki.

Postoje dve osnovne vrste simetričnih šifarskih sistema:

• blok šifarski sistemi,

sekvencijalni šifarski sistemi (stream cipher).

2.1.1 Blok šifarski sistemi

Blok šifarski sistemi procesiraju blokove nešifrovanog signala - otvorenog teksta (OT) i šifrovanog signala – šifrata (ST), obično u blokovima čija je veličina 64 bita ili više. Sekvencijalni šifarski sistemi procesiraju nizove bita, bajtova ili reči (16 ili 32 bita) OT i ST.

Ako se u toku procesa šifrovanja jedne poruke nekim blok šifarskim sistemom više puta pojavljuje isti blok otvorenog teksta (OT) rezultat će biti uvek isti blok šifrata (ST), što nije slučaj kod sekvencijalnih šifarskih sistema.

Kod sekvencijalnih šifarskih sistema verovatnoća da isti niz bita, bajtova ili reči OT pri svakom pojavljivanju u jednoj poruci proizvodi isti šifrat teži nuli ukoliko su niz za šifrovanje i otvoreni tekst nezavisni. Blok šifarski sistemi se veoma mnogo koriste u

(6)

sistemima poslovnih i finansijskih transakcija, ali su njihove bezbednosne osobine dosta slabije od sekvencijalnih šifarskih sistema.

I pored toga definisan je veliki broj javnih algoritama baziranih na blok šifarskim sistemima, kao što su DES, 3-DES, RC2, IDEA, i mnogi drugi koji su našli veoma široku primenu u savremenim informacionim sistemima.

U 2001. godini, NIST organizacija u SAD je usvojila novi standard AES (Advanced Encryption Standard). Kao primer jednog blok šifarskog algoritma, daćemo kratak opis AES simetričnog blok kriptografskog algoritma.

2.1.1.1 DES (Data Encryption Standard)

DES je zvanično objavljen 1976. godine. Iako se danas smatra nesigurnim za većinu aplikacija zbog veoma kratkog ključa (56 bita), on predstavlja teoretsku osnovu za sve blok šifarske algoritme. Na osnovu njega su izgrađeni i njegovi naslednici koji su danas u upotrebi (AES, 3DES).

DES je simetrični blok šifarski algoritam koji za ulaz uzima string fiksne dužine i serijom komplikovanih transformacija ga transformiše u šifrovani tekst iste dužine. Kod DES-a veličina bloka je 64 bita.

Pošto spada u simetrične algoritme, dekripcija se može izvršiti samo uz poznavanje ključa kojim je izvršeno enkritpovanje. Ključ se sastoji od 64 bita, ali algoritam koristi samo njih 56. Preostalih 8 se koristi samo za provjeru parnosti i zatim se odbacuju. Struktura algoritma

Sastoji se od 16 identičnih faza, koje se nazivaju rundama, slika 2.2. Osim njih postoje i inicijalna i završna permutacija, koje su inverzne operacije. Međutim, one nemaju kriptografski značaj.

Pre početka glavnih rundi blok se se dijeli na dve 32-bitne polovine koje se procesiraju naizmenično. Ovo ukrštanje se naziva Feistel-ova šema. Feistel-ova struktura osigurava da su enkripcija i dekripcija vrlo slični procesi. Jedina razlika je da se potključevi primenjuju u obrnutom redosledu u dekripciji. Ostatak algoritma je identičan. Ovo uveliko olakšava implementaciju DES-a jer nema potrebe za razdvajanje enkripcionog i dekripcionog algoritma.

U svakoj od 16 rundi jedna polovina bloka prolazi kroz F funkciju koja šifruje tu polovinu pomoću odgovarajućeg potključa. Izlaz iz F funkcije se tada kombinuje sa drugom polovinom bloka pomoću XOR operacije. Zatim polovine bloka zamene mjesta prije početka sljedeće runde. Nakon završne runde polovine ne menjaju mjesta.

Feistel-ova (F) funkcija

(7)

2. Miksanje sa ključem – rezultat se kombinuje sa potključem koristeći XOR operaciju. Šesnaest 48-bitnih potključeva (po jedan za svaku rundu) se izvode iz glavnog ključa korištenjem algoritma key schedule.

3. Supstitucija – nakon miksanja sa potključem blok se dijeli u osam 6-bitnih delova pre procesiranja u S-box-ovima. Svaki od 8 S-box-ova zamenjuje šest bita na ulazu sa četiri bita na izlazu pomoće nelinearne transformacije. S-box-ovi predstavljaju jezgro sigurnosti DES-a. Bez njih bi algoritam bio linearan i samim tim bi njegovo razbijanje bilo trivijalno.

4. Permutacija – 32 bita izašlih iz S-box-ova se rearanžiraju pomoću fiksne permutacije – P-box-a.

(8)

Slika 2.3: Feistel-ova funkcija

2.1.1.2 3DES (Triple DES)

Triple DES je blok šifarski algoritam formiran korištenjem DES-a tri puta, slika 2.4. Kad je otkriveno da 56-bitni ključ DES-a nije dovoljan da se algoritam zaštiti od brute

force napada, 3DES je izabran kao jednostavan način da se proširi ključ bez potrebe prebacivanja na novi algoritam. Korištenje tri koraka je esencijalno u sprečavanju

meet-in-the-middle napada koji su efektni protiv duple DES enkripcije.

Bitna je činjenica da DES nije algebarska grupa. Da jeste, 3DES konstrukcija bi bila ekvivalentna običnom DES-u i ne bi bila sigurnija.

Najjednostavnija varijanta 3DES-a ima sljedeću šemu: DES(k3;DES(k2;DES(k1;M))),

gde je M blok poruke koja se enkriptuje, a k1, k2, i k3 su DES ključevi. Ova varijanta

se popularno naziva EEE pošto su sve tri DES operacije enkripcije. Da bi se pojednostavnila interoperabilnost između DES-a i 3DES-a srednji korak se obično zamenjuje dekripcijom (EDE mod):

(9)

Na taj način se jedna DES enkripcija sa ključem k predstavlja kao 3DES-EDE gdje je

k1 = k2 = k3 = k. Izbor dekripcije kao srednjeg koraka ne utiče na sigurnost algoritma.

Slika 2.4: 3-DES algoritam

Uopšteno, 3DES sa tri različita ključa ima dužinu ključa od 168 bita - tri DES ključa po 56 bita, ali zbog meet-in-the-middle napada efektivna dužina je samo 112 bita. 3DES lagano izlazi iz upotrebe i uveliko se zamijenjuje sa AES-om. Izuzetak je industriji elektronskog plaćanja gdje se i dalje proizvode novi 3DES standardi. Ovo garantuje da će 3DES ostati aktivan kriptografski standard još dugo vremena.

Zbog samog dizajna DES, a samim tim i 3DES, su softverski spori. Na modernim procesorima AES je oko 6 puta brži. 3DES daje nešto bolje performanse u hardverskim implementacijama, ali i tu AES daje bolje rezultate. Konačno, AES nudi veću sigurnost: veći blok i potencijalno duži ključ.

2.1.1.3 IDEA

Ovo je simetrični blok šifarski algoritam. Činjenice:

• enkriptuje blok veličine 64 bita;

(10)

• 52 potključa dužine 16 bita;

• koristi jedan par potključeva po rundi;

• koristi 8 unakrsnih runda (iteracije) kod enkriptovanja;

• dekripcija se vrši inverznom enkripcijom. Prednosti:

• do sada je izdržao 'napade' akademske zajednice

IDEA koristi 52 potključa dužine 16 bitova i ima 8 rundi enkripcija poruke. Po dva potključa se koriste u svakoj rundi (16), zatim četiri potključa se koriste pre svake runde (32), a poslednja četiri potključa koriste se nakon zadnje runde (4) = 16+32+4=52.

Potključevi se dobijaju tako što se 128 bitni ključ razdeli u prvih 8 potključeva (K1-K8) veličine 16 bita. Zatim se sledećih 8 potključeva dobije tako što se 25 puta napravi kružni pomeraj ulevo svakog od prethodno napravljenih potključeva. Postupak se ponavlja dok se ne kreiraju svi potključevi.

Iako je generisanje ključeva pravilno, što bi ukazalo na slabost algoritma, do sada je ovaj algoritam izdržao sva nastojanja akademskih ustanova na njegovom razbijanju.

2.1.1.4 AES algoritam

Kao što je već rečeno, u toku 2001. godine, NIST (National Institute of Standards and Technology) organizacija u SAD je objavila standard za simetrične kriptografske algoritme AES (Advanced Encryption Standard) koji je trebalo da zameni prethodni standard DES (Data Encryption Standard).

Nakon duge selekcione procedure, za AES algoritam izabran je Rijndael algoritam koga su realizovali Belgijski istraživači: Joan Daemen i Vincent Rijmen. Rijndael predstavlja blok šifarski algoritam koji podržava promenljivu dužinu bloka informacije (128, 192 i 256 bita) kao i promenljivu dužinu ključa (128, 192 i 256 bita).

Naime, poruke šifrovane DES algoritmom su se, zbog nedostataka u samom algoritmu (bezbedonosni nedostaci u supstitucionim s-tabelama), male dužine ključa (56-bita) i povećane procesne moći računara, mogle dešifrovati za samo par časova. Nakon selekcione procedure, za realizaciju AES standarda izabran je Rijndael algoritam koga su realizovali belgijski matečatičari: Joan Daemen i Vincent Rijmen. Rijndael je blok šifarski algoritam koji podržava promenljivu dužinu bloka otvorenog teksta (128, 192 i 256 bita) kao i promenljivu dužinu ključa (128, 192 i 256 bita). Rijndael algoritam je u odnosu na konkuretske algoritme (MARS, RC6, Serpent, Twofish) bio brži i zahtevao je manje operativne memorije u procesu šifrovanja i dešifrovanja poruka. Rijndael algoritam sa 128-bitnom dužinom ključa je brži za oko 2.5 puta u odnosu na 3-DES algoritam.

(11)

AES algoritam realizuje operacije šifrovanja i dešifrovanja bloka podataka u promenljivom broju ciklusa. Broj ciklusa zavisi od veličine ključa i iznosi 10/12/14 za veličinu ključa 128/192/256 bita, respektivno. Pre početka šifrovanja ili dešifrovanja vrši se ekspanzija ključa.

Realizacija šifrovanja u AES algoritmu

U realizaciji šifarske transformacije bloka podataka otvorenog teksta se izvršavaju četiri različita tipa funkcija koje se primenjuju nad elementima matrice međurezultata dimenzija 4×4 bajta:

• nelinearna zamena bajtova pomoću supstitucione tabele (funkcija ByteSub),

• promena mesta bajtova unutar istog reda (funkcija ShiftRow),

• transformacija bajtova unutar iste kolone (funkcija MixColumns),

• sabiranje po modulu dva sa odgovarajućem delom ključa (funkcija AddRoundKey).

U poslednjem ciklusu šifrovanja se ne obavlja transformacija bajtova unutar iste kolone (funkcija MixColumns).

U Rijndael algoritmu sve operacije sabiranja i množenja se vrše nad elementima konačnog polja (pored konačnih polja od r-elemenata (r-prost broj) postoje i konačna polja od q=rm elemenata, gde je m prirodan broj; navedena konačna polja se nazivaju i polja Galoa (Galois Field) u oznaci GF(rm), u čast francuskog matematičara Galoa (E. Galois)) od 256 elemenata (u oznaci GF(28) ):

• pri sabiranju bajtova primenjuju se bitska operacija sabiranja po modulu dva,

• rezultat množenja dve vrednosti je proizvod po modulu vrednosti nerazloživog polinoma (polinom r(x) n-tog stepena je nesvodljiv ako nije deljiv ni sa jednim polinomom stepena m gde je 0 < m < n).

c(x)=a(x)*b(x) mod m(x) (2.1.1.1)

gde je vrednost nerazloživog polinoma:

m(x)=x8+x4+x3+x+1 (2.1.1.2)

Svaki elemenat konačnog polja, a(x), ima jednoznačnu inverznu vrednost, ainv(x), koja zadovoljava uslov:

a(x)*ainv(x) mod m(x)=1 (2.1.1.3)

Da bi se ubrzao proces množenja u skupu od 256 elemenata konačnog polja formiraju se logaritamska i antilogaritamska tabela. Vrednost svakog elementa konačnog polja p može da se predstavi u obliku stepena prostog broja.

(12)

U Rijndael algoritmu za kreiranje logaritamske i antilogaritamske tabele koristi se prost broj {03}. U logaritamskoj tabeli za svaki elemenat konačnog polja x postoji odgovarajuća vrednost L koja zadovoljava uslov {x}={03}L. U antilogaritamskoj tabeli za svaki elemenat konačnog polja x postoji odgovarajuća vrednost E koja zadovoljava uslov {E}={03}x.

U procesu množenja dva elementa konačnog polja a i b, pomoću logaritamske tabele se odrede koeficijenti α i β takvi da je a={03}α i b= {03}β. Množenjem vrednosti a i b dobija se vrednost a

b= {03}α+β. Traženi proizvod se dobija kada se iz antilogaritamske tabele iz ulaza x=α + β odredi vrednost E = a

b.

Logaritamska i antilogaritamska tabela se takođe mogu koristiti za pronalaženje inverznog elementa. Naime, iz logaritamske tabele se za dati elemenat a, odredi vrednost α, takva da zadovoljava uslov a= {03}α. Inverzna vrednost E=a-1, date veličine, se dobija kada se iz antilogaritamske tabele iz ulaza x=255-α , pročita vrednost E.

U procesu šifrovanja se realizuju sledeće funkcije:

1. Funkcija ByteSub vrši nelinearnu transformaciju bajta ulazne poruke pomoću supstitucione s-tabele (tkz. S-box tabele). Pri kreiranju supstitucione s-tabele, vrednost ulaza x (x=0…255) se dobija u dva koraka:

• određivanje inverzne vrednosti ulazne veličine = −1

x

xinv pomoću logaritamske i antilogaritamske tabele, prema prethodno opisanom mehanizmu.

vrednost datog ulaza supstitucione s-tabele se dobija određivanjem vrednosti svakog bita i unutar bajta (0

i

<

8):

( ) ( ) ( ) ( ) i 1 8 mod 7 i 1 8 mod 6 i 1 8 mod 5 i 1 8 mod 4 i 1 i 1 i x x x x x c x′− = − ⊕ −+ ⊕ −+ ⊕ −+ ⊕ −+ ⊕ , (2.1.1.4) gde je: c={63h},

Navedeni postupak se može prikazati i u matričnom obliku:

                          ⊕                                                     =                           ′ ′ ′ ′ ′ ′ ′ ′ − − − − − − − − − − − − − − − − 1 1 0 0 0 1 1 0 x x x x x x x x 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 x x x x x x x x 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 (2.1.1.5)

(13)

Nakon kreiranja s-tabele vrši se nelinearna transformacija ulazne poruke, Slika 2.5, koja je upisana u matrici dimenzija 4×4 bajta, tako što se svaki bajt ulazne poruke zameni sa vrednošću iz odgovarajućeg ulaza iz s-tabele.

a0, 0 a0, 1 a0, 2 a0, 3 b0, 0 b0, 1 b0, 2 b0, 3

a1, 0 a1, 1 a1, 3 B1, 0 b1, 1 b1, 3

a2, 0 a2, 1 a2, 2 a2, 3 B2, 0 b2, 1 b2, 2 b2, 3

a3, 0 a3, 1 a3, 2 a3, 3 B3, 0 b3, 1 b3, 2 b3, 3

Slika 2.5: Grafički prikaz nelinearne transformacije poruke pomoću s-tabele

2. Funkcija ShiftRows obavlja operaciju nad elementima u redovima matrice podataka dobijene nakon nelinearne transformacije pomoću s-tabele. Pravilo po kome se vrši promena mesta bajta unutar istog reda matrice je prikazano sledećim izrazom:

dr,c = br,[c+h (r,Nc)] mod Nc (2.1.1.6)

gde je za AES usvojena varijanta Rijndael algoritma : Nc=4, 0

<

r

<

4 i h(r,Nc )=h(r).

Rotacija bajtova unutar istog reda matrice međurezultata je prikazana na Slici 2.6.

Slika 2.6: Grafički prikaz promene mesta bajtova u redu matrice međurezultata

3. Funkcija MixColumns vrši transformaciju elemenata kolone matrice međurezultata nakon realizacije funkcije ShiftRows. Elementi kolone matrice se posmatraju kao koeficijenti polinoma, pri čemu svaki koeficijent predstavlja elemenat konačnog polja

GF(28). Zatim se, tako dobijeni polinomi, množe sa konstantnim polinomom n(x)='03'x3 + '01'x2 + '01'x + '02' po modulu x4 +1. Navedeno modularno množenje se

može prikazati i u matričnom obliku:

s-box

(14)

            ⋅             =             c c c c c c c c d d d d e e e e , 0 , 1 , 2 , 3 , 0 , 1 , 2 , 3 03 02 01 01 01 02 03 01 01 01 02 03 03 01 01 02 (2.1.1.7) gde je: 0≤c<4.

Način na koji se vrši transformacija kolona matrice je prikazana na Slici 2.7.

d0, 0 D0, 1 a0, 2 d0, 3 e0, 0 e0, 1 b0, 2 e0, 3 d1, 0 D1, 1 d1, 3 e1, 0 e1, 1 e1, 3 d2, 0 D2, 1 a2, 2 d2, 3 e2, 0 e2, 1 b2, 2 e2, 3 d3, 0 d3, 1 a3, 2 d3, 3 e3, 0 e3, 1 b3, 2 e3, 3

Slika 2.7: Grafički prikaz promene mesta bajtova u kolonama matrice međurezultata

4. Funkcija AddRoundKey vrši operaciju eksluzivne disjunkcije nad elemenata matrice, dobijene nakon izvršenja funkcije MixColumn, i matricom odgovarajućeg dela ekspandovanog ključa, Slika 2.8.

e0, 0 e0, 1 e0, 2 e0, 3 k0, 0 k0, 1 k0, 2 k0, 3 r0, 0 r0, 1 r0, 2 r0, 3 e1, 0 e1, 1 e1, 2 e1, 3k1, 0 k1, 1 k1, 2 k1, 3 = r1, 0 r1, 1 r1, 2 r1, 3 e2, 0 e2, 1 e2, 2 e2, 3 k2, 0 k2, 1 k2, 2 k2, 3 r2, 0 r2, 1 r2, 2 r2, 3 e3, 0 e3, 1 e3, 2 e3, 3 k3, 0 k3, 1 k3, 2 k3, 3 r3, 0 r3, 1 r3, 2 r3, 3

Slika 2.8: Grafički prikaz funkcije AddRoundKey

Optimizacija realizacije šifrovanja u AES algoritmu

Tranformacija kolone ulazne matrice kroz jedan ceo ciklus šifrovanja se može

d0, j d1, j d2, j d3, j e0, j e1, j e2, j e3, j ⊗ ⊗ ⊗ ⊗ c(x)

(15)

            ⊕             =             j j j j j j j j j j j j k k k k e e e e r r r r , 3 , 2 , 1 , 0 , 3 , 2 , 1 , 0 , 3 , 2 , 1 , 0 (funkcija AddRoundKey) (2.1.1.8)             ⋅             =             j j j j j j j j d d d d e e e e , 3 , 2 , 1 , 0 , 3 , 2 , 1 , 0 02 01 01 03 03 02 01 01 01 03 02 01 01 01 03 02 (funkcija MixColumns) (2.1.1.9)             =             − − − 3 , 3 2 , 2 1 , 1 , 0 , 3 , 2 , 1 , 0 j j j j j j j j b b b b d d d d (funkcija ShiftRows) (2.1.1.10)

[ ]

[ ]

[

]

[ ]

=

− − − − − − 3 , 3 2 , 2 1 , 1 , 0 3 , 3 2 , 2 1 , 1 , 0 j j j j j j j j

a

s

a

s

a

s

a

s

b

b

b

b

(funkcija ByteSub) (2.1.1.11)

Sumarno se dobija sledeći izraz koji opisuje proces transformacije j-te kolone

(

0≤ j<4

)

ulaznog podataka u jednom ciklusu šifrovanja.

[ ]

[ ]

[

]

[ ]

           ⊕                 ⋅             =             − − − j j j j j j j j j j j j k k k k a s a s a s a s r r r r , 3 , 2 , 1 , 0 3 , 3 2 , 2 1 , 1 , 0 , 3 , 2 , 1 , 0 02 01 01 03 03 02 01 01 01 03 02 01 01 01 03 02 (2.1.1.12)

Množenje matrica može se prikazati i sledećim izrazom:

[ ]

[ ]

[

]

[

]

            ⊕             ⋅ ⊕             ⋅ ⊕             ⋅ ⊕             ⋅ =             − − − j j j j j j j j j j j j k k k k a s a s a s a s r r r r , 3 , 2 , 1 , 0 3 , 3 2 , 2 1 , 1 , 0 , 3 , 2 , 1 , 0 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 (2.1.1.13) Činilac množenja s[ j i

a, ] se dobija određivanjem vrednosti ulaza

j i

a, supstitucione s-tabele. Da bi se ubrzao proces množenja mogu se kreirati 4 tabele:

(16)

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

[ ]

             ⋅ ⋅ =               ⋅ ⋅ =               ⋅ ⋅ =               ⋅ ⋅ = 2 3 3 2 2 3 3 2 2 2 1 0 a s a s a s a s a T a s a s a s a s a T a s a s a s a s a T a s a s a s a s a T (2.1.1.14)

Svaka od četiri tabele sadrži 256 četvorobajtnih reči, tako da je ukupan memorijski prostor potreban za njihovo skladištenje 4KB. Primenom datih tabela, transformacija

j-te kolone ulaznog podatka u jednom ciklusu šifrovanja se može predstaviti izrazom:

rj =T0

[ ]

a0,jT1

[ ]

a1,j=1T2

[

a2,j2

]

T3

[ ]

a3,j3kj (2.1.1.15) Definišimo funkciju RowByte(W) koja vrši rotaciju svakog bajta ulazne reči za jedno mesto udesno W=b3b2b1b0 (bi , i-ti bajt reči), tako da je izlazna reč oblika W=b2b1b0b3.

Veza između tabela

2 1 0, T, T

T i T3 se može prikazati sledećom relacijom:

[ ]

[ ]

      =RotByte T a a Ti i 1 (2.1.1.16) Transformacija j-te kolone matrice ulaznog podatka u jednom ciklusu šifrovanja se može predstaviti sledećim izrazom:

[ ]

[ ]

[

]

[

]

                     ⊕ ⊕ ⊕ ⊕ = j 0 0,j 0 1,j1 0 2,j2 0 3,j3

j k T a RotByte T a RotByte T a RotByte T a

r (2.1.1.17)

Primenom ove formule umesto četiri tabele sa ukupno 1024 četvorobajtnih reči (4KB) potrebno je kreirati jednu tabelu od 256 reči (1KB), ali ciklus šifrovanja traje neznatno duže, za tri dodatne operacije rotacije bajta unutar reči (funkcija RotByte).

Realizacija dešifrovanja u AES algoritmu

Proces dešifrovanja poruke je sličan procesu šifrovanja. U procesu dešifrovanja se primenjuju četiri različita tipa funkcija nad elementima matrice međurezultata dimenzija 4×4 bajta:

• nelinearna zamena bajtova pomoću inverzne supstitucione tabele (funkcija

InvByteSub),

promena mesta bajtova unutar istog reda (funkcija InvShiftRow),

transformacija bajtova unutar iste kolone (funkcija InvMixColumns),

• sabiranje po modulu dva sa odgovarajućim delom ključa (funkcija

(17)

U poslednjem ciklusu dešifrovanja se ne obavlja transformacija bajtova unutar iste kolone (funkcija InvMixColumns).

U procesu dešifrovanja se realizuju sledeće funkcije:

1. Nelinearna transformacija ulazne matrice dimenzija 4×4 bajta se vrši pomoću inverzne supstitucione s-tabele. U procesu kreiranja inverzne supstitucione s-tabele vrednost za svaki od ulaza x (x=0..255) se određuje u dva koraka:

transformacija vrednosti ulaznog bajta x se realizuje određivanjem vrednosti svakog bita i unutar bajta (0

i

<

8):

xi′ = x( )i+2 mod8x( )i+5 mod8x( )i+7 mod8di (2.1.1.18) gde je: d={05h},

vrednost ulaza x u inverznoj supstitucionoj tabeli se dobija kao rezultat inverzne transformacije prethodno dobijene vrednosti b=

( )

x′ −1.

2. Funkcija InvShiftRows obavlja operacije nad elementima u redovima matrice međurezultata, dobijenom nakon prethodno opisane transformacije. Pravilo po kome se vrši promena mestu bajta unutar istog reda matrice se može prikazati sledećim izrazom:

d r, [c+h (r,Nc)] mod Nc br,c (2.1.1.19)

gde je za AES usvojena varijanta Rijndael algoritma : Nc=4, 0

<

r

<

4 i h(r,Nc )=h(r).

Rotacija bajtova unutar istog reda matrice međurezultata je prikazana na Slici 2.9. 3. Funkcija InvMixColumns vrši transformaciju elemenata kolone matrice dobijene nakon izvršenja funkcije InvShiftRows. Elementi kolone matrice se posmatraju kao koeficijenti polinoma, pri čemu svaki koeficijent predstavlja elemenat konačnog polja

GF(28). Zatim se, tako dobijeni polinomi, množe sa konstantnim polinomom p(x)='0B'x3 + '0D'x2 + '09'x + '0E' po modulu x4 +1. Navedeno modularno množenje

se može prikazati u matričnom obliku:

            ⋅             =             c c c c c c c c d d d d E B D E B D D E B B D E e e e e , 0 , 1 , 2 , 3 , 0 , 1 , 2 , 3 0 0 0 09 09 0 0 0 0 09 0 0 0 0 09 0 (2.1.1.20) gde je: 0≤c<4.

(18)

Slika 2.9: Grafički prikaz promene mesta bajtova u redu matrice međurezultata 4. Funkcija AddRoundKey vrši sabiranje po modulu dva elementa matrice, dobijena nakon izvršenja funkcije InvMixColumns, sa odgovarajućim delom ključa za dešifrovanje:             ⊕             =             c c c c c c c c c c c c k k k k e e e e r r r r , 0 , 1 , 2 , 3 , 0 , 1 , 2 , 3 , 0 , 1 , 2 , 3 (2.1.1.21)

2.1.2 Kriptografski modovi blok šifarskih algoritama

Kriptografski mod predstavlja način upotrebe bazičnog šifarskog algoritma i najčće je kombinacija neke vrste povratne petlje i određenih jednostavnih operacija. Operacije koje se primenjuju nad algoritmom su uglavnom jednostavne jer je bezbednost određena bazičnim šifarskim algoritmom a ne kriptografskim modom. Blok šifarski sistemi se primenjuju u različitim kriptografskim modovima, kao što su:

• ECB (Electronic CodeBook mode),

• CBC (Cipher Block Chaining),

• CFB (Cipher FeedBack) i

• OFB (Output FeedBack).

2.1.2.1 Mod elektronske kodne knjige (ECB – Electronic CodeBook).

ECB mod predstavlja najprirodniji i najlakši način primene blok šifarskih sistema - blok OT se šifruje u blok ST, Slika 2.10. Svaki OT blok se šifruje nezavisno. Sa kriptološke strane, ECB mod je najproblematičniji.

(19)

Naime, ako kriptoanalitičar poseduje parove OT i ST za nekoliko poruka, moguće je da tokom konverzacije dve strane formira pravu kodnu knjigu, skup odgovarajućih parova ST i OT, i bez poznavanja ključa.

U većini realnih situacija: fragmenti poruka teže ponavljanju, različite poruke imaju zajedničke delove, određeni računarski generisane poruke (kao e-mail) imaju regularnu strukturu, poruke mogu biti veoma redundantne i imati veoma duge nizove nula i pauze. Ovi problemi su najistaknutiji na početku i na kraju poruke, gde se u dobro definisanim zaglavljima i futnotama mogu nalaziti informacije o pošiljaocu, primaocu, datumu, itd.

Formiranje reprezentativne kodne knjige ne samo da omogućava trećoj strani pristup informacijama već joj dodatno omogućava da može modifikovati i ponavljati šifrovane poruke (tzv. block replay problem) bez poznavanja ključa i algoritma, u slučaju da ima mogućnost presretanja šifrovanih poruka između dve strane. Ovi problemi su inicirali uspostavljanje zavisnosti između susednih blokova šifrata kroz definisanje novih kriptografskih modova blok šifarskih sistema.

Slika 2.10: Grafički prikaz rada u ECB modu

2.1.2.2 Mod ulančavanja blokova (CBC – Cipher Block Chaining)

Mehanizam ulančavanja povezuje blokove šifrata tako što se rezultat šifrovanja prethodnih blokova koristi pri šifrovanju tekućeg bloka.

Drugim rečima, svaki blok se koristi za modifikaciju šifrovanja sledećeg bloka tako da svaki blok ST zavisi ne samo od tekućeg bloka OT već i od svih prethodnih blokova OT. Načini na koje se to može ostvariti su raznovrsni.

(20)

Slika 2.11: Grafički prikaz rada u CBC modu

U CBC modu, Slika 2.11, taj uticaj se realizuje tako što se izvršava operacija “ekskluzivno ili” (XOR) između OT i neposredno prethodnog bloka ST, a zatim se tako dobijeni blok podataka šifruje. Preciznije:

1. U povratni registar se smesti inicijalna vrednost.

2. Blok otvorenog teksta i sadržaj povratnog registra se spregnu operacijom ekskluzivne disjunkcije i tako dobijeni blok se transformiše šifarskom transformacijom E čime se formira blok šifrata C.

3. U povratni registar se smesti C i proces se ponavlja od koraka 2 sve dok ima blokova za šifrovanje.

Na taj način, rezultat šifrovanja svakog bloka zavisi od svih prethodnih blokova. Proces dešifrovanja sledi direktno i odvija se na sledeći način:

1. U povratni registar se smesti inicijalna vrednost.

2. Blok šifrata C dešifruje se primenom transformacije E−1, tako dobijeni blok

teksta i sadržaj povratnog registra se spregnu operacijom ekskluzivne disjunkcije i tako se dobije blok otvorenog teksta.

3. U povratni registar se smesti C i proces se ponavlja od koraka 2 sve dok ima blokova za dešifrovanje.

Matematički, proces šifrovanja i dešifrovanja može se prikazati na sledeći način, relacijama (2.1.1.22) i (2.1.1.23), respektivno:

CTi =Ek(OTiCTi1) (2.1.1.22) OTi =CTi1Dk(CTi) (2.1.1.23) CBC mod prouzrokuje da se identični blokovi OT šifruju u različite ST blokove samo

(21)

Ovaj problem se može rešiti tako što se za prvi blok podataka uzima neka slučajna veličina. Ovaj blok slučajnih podataka se naziva inicijalizacioni vektor (IV). Kada primalac dešifruje ovaj blok, on prosto smešta IV u povratni registar. Tekuće vreme sistema (timestamp) često predstavlja dobro rešenje za IV. Primenom IV, identične poruke se šifruju u različite ST.

Primenom IV, eliminisana je mogućnost primene block replay metode. Štaviše, IV ne mora da bude tajni podatak i može se preneti otvoreno, zajedno sa ST, uz upotrebu nekog od mehanizama zaštite integriteta.

Međutim, možda ne tako očigledno kao u ECB modu, i u CBC modu postoje određeni bezbednosni problemi koji se mogu manifestovati kao određena mogućnost da kriptoanalitičar dodaje određene blokove na krajeve poruka koje se razmenjuju i u činjenici da veoma duge poruke i dalje nisu imune na pojavljivanje određenih identičnih oblika iako se vrši proces ulančavanja.

2.1.2.3 Mod povratnog šifrovanja (CFB - Cipher-Feedback Mode)

U nekim aplikacijama se javlja potreba da se delovi otvorenog teksta šifruju i prenose u u jedinicama veličine r bita (r < n –veličina bloka), što u CBC modu nije moguće. Ovim modom se prevazilazi osnovni problem CBC moda - da šifrovanje i prenos podataka ne mogu početi sve dok se ne primi kompletan blok podataka. U CFB modu, podaci se šifruju u manjim jedinicama od aktuelne veličine bloka i ovaj mod se označava kao r-bitni CFB mod, gde je r manje ili jednako od veličine bloka osnovnog blok šifarskog sistema.

Proces šifrovanja se odvija na sledeći način, Slika 2.12:

1. Otvoreni tekst se podeli u blokove veličine r bita, formira se inicijalni vektor veličine n bita i smesti u povratni registar. Odabere se K, ključ za šifarsku transformaciju.

2. Formira se izlazni blok, O, tako što se izvrši šifarska transformacija ključem K tekućeg sadržaja povratnog registra.

3. Blok šifrata se formira tako što se operacija ekskluzivne disjunkcije izvrši nad tekućim blokom otvorenog teksta i r bita najmanje težine bloka O.

4. Sadržaj povratnog registra se pomera za r bita u levo i na mesto r bita najmanje težine se smešta formirani blok šifrata.

Koraci 2-4 se ponavljaju sve dok ima blokova otvorenog teksta. Dešifrovanje se odvija na sličan način.

1. Formira se inicijalni vektor veličine n bita i smesti u povratni registar. Odabere se K, ključ za šifarsku transformaciju.

2. Formira se izlazni blok, O, tako što se ivrši šifarska transformacija ključem K tekućeg sadržaja povratnog registra.

(22)

3. Blok otvorenog teksta se formira tako što se operacija ekskluzivne disjunkcije izvrši nad tekućim blokom šifrata i r bita najmanje težine bloka O.

4. Sadržaj povratnog registra se pomera za r bita ulevo i na mesto r bita najmanje težine se smešta tekući blok šifrata.

Inicijalizacioni vektor ima istu ulogu kao i u CBC modu, da spreči pojavljivanje istih šifrata u slučaju istih poruka šifrovanih jednakim ključevima. Iz opisa načina transformacije jasno je da je za ispravno dešifrovanje neophodno da je prethodnih

    k n

blokova šifrata ispravno dešifrovano.

S obzirom da se i u procesu šifrovanja i u procesu dešifrovanja koristi ista šifarska transformacija, to algoritam kojim se formira blok O ne može biti iz klase algoritama sa javnim ključem.

Slika 2.12: Grafički prikaz rada u CFB modu

2.1.2.4 Izlazni povratni mod (OFB – Output Feedback Mode)

Ovaj mod rada predstavlja spoj dobrih osobina ECB i CFB modova rada, sprečava propagaciju greške i ima poboljšane bezbednosne karakteristike. OFB mod rada takođe omogućava prenos podataka u jedinicama manjim od veličine bloka.

Transformacija otvorenog teksta se odvija na sledeći način, slika 2.13:

1. Otvoreni tekst se podeli u blokove veličine r bita, formira se inicijalni vektor veličine n bita i smesti u povratni registar. Odabere se K, ključ za šifarsku

(23)

2. Formira se izlazni blok, O, tako što se izvrši šifarska transformacija ključem K tekućeg sadržaja povratnog registra .

3. Blok šifrata se formira tako što se operacija ekskluzivne disjunkcije izvrši nad tekućim blokom otvorenog teksta i r bita najmanje težine bloka O.

4. Blok O postaje sadržaj povratnog registra.

Koraci 2-4 se ponavljaju sve dok ima blokova otvorenog teksta. Dešifrovanje se odvija na sličan način.

• Formira se inicijalni vektor veličine n bita i smesti u povratni registar. Odabere se K, ključ za šifarsku transformaciju.

Formira se izlazni blok, O, tako što se ivrši šifarska transformacija ključem K tekućeg sadržaja povratnog registra.

• Blok otvorenog teksta se formira tako što se operacija ekskluzivne disjunkcije izvrši nad tekućim blokom šifrata i r bita najmanje težine bloka O.

Sadržaj povratnog registra zameni se formiranim blokom O.

Koraci 2-4 se izvršavaju sve dok ima blokova za dešifrovanje.

Prethodno izloženi opis je prema standardu ISO 10116. Postoje takođe i druge varijacije na ovu temu (npr. FIPS-81) ali se ova izložena verzija smatra, za sada, najbezbednijom.

Slika 2.13: Grafički prikaz rada u OFB modu

Pored toga što se radom u ovom modu onemogućava propagacija greške, dobra osobina ovog moda rada je i to što se veći deo izračunavanja može izvršiti off-line, nakon čega se vrši samo XOR-ovanje izlaza algoritma i jedinica OT.

(24)

Detaljna analiza OFB moda rada je pokazala da ovaj mod rada treba koristiti samo u slučaju da je r jednako dužini bloka n. Drugim rečima, 64-bitne blok šifarske algoritme treba koristiti u 64-bitnom OFB modu.

2.1.2.5 Izbor odgovarajućeg moda rada blok šifarskog sistema

Jedan od četiri bazična moda rada – ECB, CBC, OFB ili CFB pogodan je za skoro svaku aplikaciju. Koji će se mod koristiti zavisi od korisnikovih specifičnih zahteva. Ako su jednostavnost i brzina najbitniji, ECB mod je pravi izbor, kao najlakši i najbrži mod za korišćenje blok šifarskih sistema. Međutim, ECB mod je najslabiji sa bezbednosne tačke gledišta i ne preporučuje se za šifrovanje poruka. Sa druge strane, ECB mod je veoma dobar za šifrovanje kratkih slučajnih podataka, kao što su na primer ključevi, jer se pri tome ne iskazuju prepoznate slabosti ECB moda.

Za šifrovanje normalnog OT treba koristiti CBC, CFB ili OFB mod. CBC je generalno najbolji mod za šifrovanje datoteka. Takođe, ako je aplikacija softverski bazirana, CBC je skoro uvek najbolje rešenje. Sa druge strane, CFB mod (specijalno 8-bitni CFB mod) je generalno mod koji treba birati za šifrovanje nizova karaktera u kojima se svaki karakter tretira individualno, kao na primer u vezi između terminala i host računara. OFB mod rada se najčće koristi u sinhronim sistemima visokih brzina gde se ne toleriše propagacija grešaka.

2.1.3 Sekvencijalni šifarski sistemi

Sekvencijalni šifarski sistemi predstavljaju vrlo važnu klasu šifarskih algoritama. Oni transformišu pojedinačne karaktere (najčće bite i bajtove otvorenog teksta) koristeći transformaciju koja pored ključa zavisi na određeni način i od vremenskog trenutka u kojem se primenjuje, za razliku od blokovskih šifarskih sistema koji transformišu blokove otvorenog teksta nepromenljivom transformacijom tokom šifrovanja cele poruke.

Kao i obično, u praksi, ova podela nije tako rigidna, postoje transformacije koje se mogu po svojim osobinama svrstati i u jedne i u druge. Tako na primer CFB i OFB modovi blokovskih šifarskih sistema imaju neke karakteristike sekvencijalnih šifarskih sistema. Sa druge strane sekvencijalni šifarski sistemi se mogu smatrati blokovskim kod kojih je dužina bloka jedan karakter (bit, bajt ili mašinska reč (word) dužine 16, 24 ili 32 bita).

Generalno govoreći sekvencijalni šifarski sistem sastoji se od generatora niza ključa (keystream generator) koji generiše niz jedinica ključa k1, k2, …, ki, … i funkcije f koja se primenjuje na niz jedinica OT: p1, p2, …, pi, proizvodeći niz jedinica ST: c1, c2, …,

ci, na bazi sledeće relacije:

ci = f(ki,pi) (2.1.3.1) Na drugom kraju komunikacije, primenom inverzne funkcije na parove jedinica šifrata

(25)

pi = f−1(ki,ci) (2.1.3.2) jer je funkcija f tako odabrana da je

pi f 1(ki, f(ki,pi)) −

= (2.1.3.3) Zbog jednostavnosti obrade za f se najčće koristi ekskluzivna disjunkcija (XOR operacija). Bezbednost nizovnog šifarskog sistema primarno je određena kriptološkim kvalitetom generatora niza ključa.

2.1.3.1 Klasifikacija sekvencijalnih šifarskih sistema

Klasifikacija sekvencijalnih šifarskih sistema se može vršiti po različitim kriterijumima, po načinu na koji se generiše niz ključa, po tipu primenjenog algoritma (sa javnim ili tajnim ključem), itd. Osnovna je podela po načinu na koji se generiše niz ključa. U tom smislu postoje sistemi sa slučajnim i pseudo-slučajnim nizom.

Sistemi sa slučajnim nizom – kod ovih sistema niz ključa se generiše na slučajan način, tako što se jedinice ključa generišu nezavisno i slučajno. Ako se prema prethodnim oznakama za funkciju f uzme ekskluzivna disjunkcija, tada se dobija takozvani “one time pad” sistem za koji se može teorijski pokazati da je apsolutno siguran, tj. da šifrat ne nosi nikakvu informaciju o otvorenom tekstu.

Sa druge strane taj sistem je i optimalan u smislu da koristi najkraći ključ kojim se postiže apsolutna sigurnost. Naime, Šenon je u svojim radovima pokazao da je neophodan uslov za apsolutnu bezbednost da entropija ključa bude veća ili jednaka od entropije poruke. Kako je kod ovog sistema entropija ključa jednaka dužini poruke, čija entropija ne može biti veća od njene dužine, to sledi da je ovo zbilja optimalan sistem u navedenom smislu.

Nedostatak ovog sistema je u činjenici da oba učesnika komunikacije moraju imati isti niz ključa koji mora biti tajan, što proizvodi, ponekad nepremostive, probleme u upravljanju ključevima jer treba obezbediti i dostaviti stranama u komunikaciji velike količine ključeva kako bi mogle nesmetano da komuniciraju.

Sistemi sa pseudoslučajnim nizom – kod ovih sistema se na osnovu inicijalne

vrednosti i dogovorenog algoritma generiše niz jedinica ključa. Posedovanjem identične inicijalne vrednosti, obe strane u komunikaciji su u stanju da produkuju isti niz jedinica ključa i da ostvare bezbednu komunikaciju. Kako je generisanje jedinica ključa determinističko, niz ključa je u potpunosti definisan sa:

• Početnim unutrašnjim stanjem – inicijalna vrednost kojom se definiše početno stanje generatora ključa,

• Funkcijom narednog stanja – koja na bazi prethodnog unutrašnjeg stanja generiše novo unutrašnje stanje,

• Izlaznom funkcijom – koja na osnovu unutrašnjeg stanja generiše izlaznu jedinicu ključa.

(26)

Posledica činjenice da je niz ključa deterministički je da je on nužno periodičan. Iako su ovo na izgled činjenice koje ovakve sisteme značajno dezavuišu, stvari ne stoje tako loše, i ti problemi se mogu sasvim uspešno prevazići. Naime, bezbednost ovakvih sistema direktno zavisi od veličine inicijalnih podataka i kvaliteta dogovorenog algoritma. Dobro dizajnirani algoritmi ovog tipa pružaju zaštitu koja je po kvalitetu vrlo blizu apsolutno bezbednim sistemima.

Sekvencijalni šifarski sistemi sa pseudoslučajnim nizom se dele u dve velike grupe:

• Sinhroni sekvencijalni šifarski sistemi

• Samosinhronišući sekvencijalni šifarski sistemi

Sinhroni sekvencijalni šifarski sistemi su oni kod kojih se niz ključa generiše nezavisno od otvorenog teksta i šifrata, slika 2.14.

Proces šifrovanja se može opisati sledećim skupom jednačina:

) , ( ) , ( ) , ( 1 i i i i i i i m z h c k g z k f = = = +

σ

σ

σ

(2.1.3.4)

Gde se početno stanje, ơ0, određuje na osnovu inicijalne vrednosti k, f je funkcija sledećeg stanja, g je funkcija koja produkuje niz ključa

i

z a h izlazna funkcija koja od otvorenog teksta mii niza ključa zi formira šifrat ci.

Kod ovih sistema niz ključa se generiše nezavisno od niza jedinica poruke. Na obe strane u komunikaciji se istovremeno generišu nizovi ključa. Učesnici u komunikaciji su u stanju da razmenjuju poruke sve dotle dok su algoritmi za generisanje niza ključa sinhronizovani među sobom.

Ukoliko se desi gubitak ili umetanje jednog ili više jedinica tokom prenosa ST, dešifrovanje će biti nekorektno. U slučaju takvog događaja, generatori niza ključa na predajnoj i prijemnoj strani moraju se resinhronizovati, pre nego što nastave komunikaciju.

Sa druge strane, u ovim sitemima se ne propagira greška i svaki pogrešan bit u prenosu ostaće i u dešifrovanom obliku pogrešan, ali ta greška neće uticati ni na prethodne ni na buduće bite za prenos.

Prethodno navedena osobina može poslužiti aktivnom protivniku kao osnova za različite vrste pokušaja kompromitovanja ovakvog sistema.

(27)

Slika 2.14: Grafički prikaz rada sinhronih sekvencijalnih šifarskih sistema

Samosinhronišući asinhroni sistemi su oni kod kojih je niz ključa dobija u funkciji inicijalne vrednosti, dogovorenog algoritma i izvesnog konstantnog broja prethodnih jedinica šifrata, Slika 3.15. Proces šifrovanja se opisuje sledećim skupom jednačina:

) , ( ) , ( ) , ( 1, , 1 i i i i i i t i t i i m z h c k g z c c c = = =

σ

σ

K (2.1.3.5)

Gde je

σ

0 =(ct,K,c1)inicijalno stanje, početno stanje određuje se na osnovu inicijalne vrednosti k, f je funkcija sledećeg stanja, g je funkcija koja produkuje niz ključa

i

z a h izlazna funkcija koja od otvorenog teksta mii niza ključa zi formira šifrat i

c . Kod ovih sistema moguće je ostvariti samosinhronizaciju zato što dešifrovanje zavisi samo od fiksnog broja prethodnih jedinica šifrata, tako da je moguće sinhronizaciju ponovo uspostaviti vraćanjem na određeni broj dobro primljenih znakova šifrata.

Slika 2.15: Grafički prikaz rada samosinhronišućih sistema sa pseudo-slučajnim nizom

(28)

Kod ovih sistema propagacija greške je takođe ograničena na fiksiran broj uzastopnih jedinica a posle toga se preostale jedinice šifrata mogu ispravno dešifrovati.

Sekvencijalni šifarski sistemi imaju veliku ulogu u zaštiti masovnih podataka zato što obezbeđuju kvalitetnu zaštitu a pri realizaciji obezbeđuju veliku brzinu obrade.

Teorija analize i sinteze sekvencijalnih šifarskih sistema sa pseudoslučajnim nizom je veoma razvijena i u glavnom jedna podstiče drugu na razvoj.

2.1.3.2 RC4 algoritam

RC4 je najkorišteniji sekvencijalni algoritam i koristi se u popularnim protokolima kao što su SSL i WEP. Izvrstan je zbog jednostavnosti i brzine, ali je sa druge strane ranjiv na napade kada početak izlaznog niza nije odbačen ili kada se jedan ključ koristi dvaput.

RC4 je jednostavan za opis. Ima 256 S-box-ova. Ulazi su permutacija brojeva od 0 do 255, a permutacija je funkcija ključa promenljive dužine. Ima dva brojača, i i j, postavljena na 0. Za generisanje slučajnog bajta koristi se sledeći algoritam:

i = (i + 1) mod 256 j = (j + Si) mod 256

zamijeni Si i Sj

t = (Si + Sj) mod 256

K = St.

Bajt K se XOR-uje sa otvorenim tekstom da bi se dobio šifrat ili XOR-uje sa šifratom da bi se dobio otvoreni tekst. Enkripcija je brza (oko 10 puta brža nego kod DES-a). Inicijalizacija S-box-ova je takođe lagana.

Prvo se popunjavaju linearno: S0 = 0, S1 = 1,..., S255 = 255.

Zatim se generiše drugi 256-bajtni niz ključa, ponavljajući ključ koliko je potrebno da se popuni cijeli niz: K0, K1,..., K255. Indeks j se postavlja na 0. Tada se izvršava

sljedeća petlja:

for i = 0:255

j = (j + Si + Ki) mod 256

zameni Si iSj.

(29)

2.1.4 Komparativna analiza blok i sekvencijalnih šifarskih sistema

Iako su blok i sekvencijalni šifarski sistemi veoma različiti, blok sistemi se mogu implementirati kao sekvencijalni sistemi i obrnuto. Razlike se najviše iskazuju u implementaciji ovih sistema. Naime, sekvencijalni šifarski sistemi koji šifruju i dešifruju svaku jedinicu OT nisu previše pogodni za softverske implementacije. Oni su pogodni za šifrovanje i dešifrovanje podataka u realnom vremenu, i to posebno ako su realizovani u hardveru.

Sa druge strane, blok šifarski sistemi su lakši za implementaciju u softveru zato što često izbegavaju vremenski zahtevne bitske manipulacije i zato što rade nad podacima u računarski podeljenim blokovima. Postoje neki specifični momenti gde šifrovanje jedinica OT može biti od interesa i u računarskim sistemima, kao na primer šifrovanje veze između tastature i procesora, ali i u tom slučaju blok koji se šifruje treba da bude najmanje širine magistrale podataka.

U savremenom razvoju kriptologije svedoci smo sve intenzivnijeg korišćenja kako blok tako i sekvencijalnih šifarskih sistema. Savremene aplikacije finansijskih i poslovnih transakcija su prouzrokovale eksplozivan rast primena pomenutih šifarskih sistema i to: DEA, 3-DES, RC2, IDEA, AES, itd. kao blok šifarskih sistema, i RC4, i drugih, kao sekvencijalnih šifarskih sistema.

U savremenim softverskim i hardverskim proizvodima za zaštitu finansijskih, poslovnih i državnih računarskih mreža uglavnom se podržava čitav skup najviše korišćenih blok i sekvencijalnih algoritama (de facto standardnih algoritama).

2.2 Asimetri

č

ni kriptografski algoritmi

Asimetrični kriptografski algoritmi predstavljaju jedno od najvećih dostignuća kriptologije druge polovine dvadesetog veka. Otkriveni su u procesu rešavanja problema vezanih za zaštitu tajnosti i distribuciju ključeva koji je često bio aktuelan u primenama simetričnih kriptografskh algoritama.

Naime, u asimetričnim šifarskim sistemima se koriste različiti ključevi za šifrovanje i dešifrovanje, tzv. javni i tajni ključ, tako da ključ za šifrovanje može imati svako a samo posednik ključa za dešifrovanje može dešifrovati poruku.

Međutim, visoka računarska zahtevnost ovih algoritama utiče na performanse sistema u kojima se primenjuju, tako da se ne preporučuje primena za zaštitu tajnosti informacija u sistemima sa velikim protokom informacija.

Ovo naravno ne dezavuiše automatski ove algoritme jer način na koji je uz korišćenje ovakvih algoritama moguće ostvariti funkcije integriteta, autentičnosti i neporicanja ima nesumnjivu prednost nad tradicionalnim tehnikama.

U literaturi je opisano više algoritama sa javnim ključem ali sa stanovišta kvaliteta, otpornosti na razne vrste napada, efikasnost i lakoću implementacije te

(30)

rasprostranjenost, nisu svi podjednako dobri. U tom smislu se kao prirodni izbor nameće RSA algoritam koji više od dvadeset godina odoleva svim teorijskim i tehnološkim napadima.

Opis i način upotrebe ovog algoritma propisani su u standardu PKCS#1. Pored RSA algoritma moguće je koristiti i druga dva algoritma, DSA (Digital Signature Algorithm) i ECDSA (Elliptic Curve DSA), koja spadaju u standard digitalnog potpisa (NIST standard DSS (Digital Signature Standard).

2.2.1 PKCS#1 standard

PKCS#1 standard opisuje metode šifrovanja podataka korišćenjem RSA asimetričnog algoritma i najčće se koristi za konstrukciju digitalnog koverta i digitalnog potpisa.

U slučaju digitalnog koverta, sadržaj poruke se prvo šifruje određenim simetričnim algoritmom (kao što su DES, 3-DES, RC2, RC4, IDEA, AES, ili neki namenski privatni algoritmi). Zatim se tajni ključ primenjenog simetričnog algoritma koji je upotrebljen za šifrovanje date poruke šifruje RSA algoritmom upotrebom javnog ključa korisnika kome je data poruka namenjena (RSA public key operacija).

Tako šifrovan sadržaj poruke i tajni ključ kojim je ta poruka šifrovana zajedno predstavljaju digitalni koverat.

Postupak šifrovanja i dešifrovanja putem tehnologije digitalnog koverta je prikazan na slikama 2.16 i 2.17, respektivno.

(31)

Slika 2.17: Digitalna envelopa – dešifrovanje

U slučaju digitalnog potpisa, Slika 2.18, sadržaj koji treba da se potpiše, poruka M, prvo se redukuje u otisak poruke (message digest), H, primenom nekog od metoda za kreiranje otiska poruke, message-digest algoritma (kao što su na primer MD5 ili SHA-1 algoritmi), a zatim se dobijeni otisak poruke šifruje primenom, na primer, RSA algoritma koristeći privatni ključ potpisnika poruke (RSA private key operacija), ključ A. Šifrovani otisak poruke predstavlja digitalni potpis date poruke, S, i postaje njen pridruženi deo.

Kada ovakva poruka stigne do primaoca kojem je namenjena izvršava se postupak verifikacije digitalnog potpisa. Ovaj postupak se sastoji od dešifrovanja otiska dobijene poruke primenom RSA algoritma uz upotrebu javnog ključa pošiljaoca poruke, ključ B. Po dešifrovanju digitalnog potpisa primalac poruke izvrši isti message digest postupak nad dobijenom porukom, M1.

Ako je dobijeni otisak poruke, H1, identičan sa dešifrovanom vrednošću otiska, verifikacija je uspela, u protivnom verifikacija je negativna.

Ukoliko je verifikacija uspela, primalac poruke je siguran u sledeće:

• Autentičnost pošiljaoca – jer je uspešno dešifrovao otisak poruke primenom RSA algoritma sa javnim ključem datog pošiljaoca,

• Integritet poslate poruke – ako su izračunati i dešifrovani otisci date poruke identični zaključuje se da poruka na prenosnom putu nije menjana, i

• Nemogućnost da pošiljalac naknadno porekne da je tu poruku poslao jer je njegov digitalni potpis uspešno verifikovan i ukoliko je potpisnik koristio privatni ključ generisan na smart kartici.

Referensi

Dokumen terkait

Budu ć i da je ve ć ina ispitanika odgovorila kako ne koristi rudarenje podatka u tvrtki za koju trenutno radi, prvo ć e se analizirati ona grupu pitanja koja se odnosi na

Me đ utim, ono što je nešto manje op ć epoznato i neupitno, odnosi se na povijesnu č injenicu da je kapitalizam (podrazumijevaju ć i pod tim pojmom i sve mo ć nike

Trenutno stanje u proizvodnji semena krmnog bilja u Republici Srbiji je nezadovoljavaju ć e jer se seme višegodišnjih vlatastih trava uglavnom uvozi.. Doma ć

time prepoloviti potreban broj elemenata za analizu te samim time i olakšati i ubrzati analizu. prikazan je detalj stvarnog modela ku ć išta sa skra ć enim rebrom. Stvarni model ku

Marketinški plan potreban je jer pokazuje smjer kuda treba i ć i i kamo se želi sti ć i, fokusira zaposlene na aktivnosti neophodne za uspjeh marke, proizvoda i samog poduze ć

Taman Purbakala Sumpang Bita merupakan cagar budaya yang terletak di Kecamatan Balocci, Kabupaten Pangkep, Provinsi Sulawesi Selatan. Taman Purbakala Sumpang Bita

Adanya pelaporan data transaksi dari Pedagang Komoditi Aset Kripto, Lembaga Kliring Berjangka dan Pengelola Tempat Penyimpanan kepada Bursa Berjangka sebagai referensi harga

ÖćøóĆçîćñĎšðøąÖĂïÖćø Startup íčøÖĉÝïĂîÿĊĔî÷čÙ Next Normal íćøćøĆêîŤ ĕìøøąóĆîíŤ1*, úćõĉîĊ ðøąìčöĀüú1, üĆúúõć üĉßą÷ąüÜýŤ2 Ēúą îĉê÷ć Üćö÷ĉęÜ÷Ü2 1îĆÖýċÖþćÿć×ćíčøÖĉÝøąĀüŠćÜðøąđìý