You are on page 1of 44

OSNOVE KRIPTOZATITE

Skripta
Prof. Dr Milan Markovi
Banja Luka, Maj 2013.
Sadraj
1. UVOD ..................................................................................................................................................................3
2. PRIMENA KRIPTOGRAFSKIH METODA ZATITE U INFORMACIONIM SISTEMIMA................4
2.1 SIMETRINI KRIPTOGRAFSKI ALGORITMI.........................................................................................................4
2.1.1 Blok ifarski sistemi................................................................................................................................5
2.1.2 Kriptografski modovi blok ifarskih algoritama...................................................................................20
2.1.3 Sekvencijalni ifarski sistemi................................................................................................................26
2.1.4 Komparativna analiza blok i sekvencijalnih ifarskih sistema.............................................................30
2.2 ASIMETRINI KRIPTOGRAFSKI ALGORITMI....................................................................................................31
2.2.1 PKCS#1 standard .................................................................................................................................31
2.2.2 RSA algoritam.......................................................................................................................................35
2.3 MESSAGE DIGEST ALGORITMI .......................................................................................................................39
2.3.1 MD5 message digest algoritam ...........................................................................................................39
2.3.2 SHA-1 algoritam ..................................................................................................................................41
3.4 PRIMENA KRIPTOGRAFSKIH ALGORITAMA U INFORMACIONIM SISTEMIMA....................................................43
2
1. UVOD
Ovaj dokument predstavlja skriptu za izvoenje predmeta Osnove kriptozatite na
Fakultetu poslovne informatike Univerziteta Apeiron u Banja Luci.
U okviru ovog predmeta analiziraju se teorijski aspekti i praktina primena
kriptografskih algoritama u savremenim raunarskim mreama i informacionim
sistemima.
Akcenat je stavljen na prikaz primera kriptografskih algoritama koji se danas koriste u
praksi a prema sledeim tipovima:
Simetirni kriptografski algoritmi
Asimetrini kriptografski algoritmi
Hash funkcije
Ova skripta slui radi lakeg praenja predavanja na predmetu Osnove kriptozatite,
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.
3
2. PRIMENA KRIPTOGRAFSKIH METODA ZATITE U
INFORMACIONIM SISTEMIMA
Kriptografski algoritmi koji se primenjuju u sistemima zatite Internet/Intranet
raunarskih mrea dele se u tri velike grupe:
Simetrini kriptografski algoritmi,
Asimetrini kriptografski algoritmi.
Hash funkcije
Podela je izvedena na osnovu posedovanja informacija neophodnih za ifrovanje i
deifrovanje.
2.1 Simetrini kriptografski algoritmi
Grupu simetrinih kriptografskih algoritama predstavljaju algoritmi kod kojih je klju
za ifrovanje identian kljuu za deifrovanje, Slika 2.1. Algoritmi iz ove grupe se
takoe nazivaju i algoritmi sa tajnim kljuem jer je tajnost kljua koji se koristi i za
ifrovanje i za deifrovanje esencijalna za bezbednost poruka u sistemu.
Slika 2.1: Simetrini kriptografski sistemi
Bezbedni kanal Bezbedni kanal
Izvor Izvor
kljua kljua
Izvor Izvor
poruke poruke
E E
A A
X X
X X
Odredite Odredite D D
A A
Y Y
Kriptoanalitiar Kriptoanalitiar
K K
4
Ovi sistemi predstavljaju osnovu tradicionalne kriptoloke teorije i razvijaju se ve
veoma dugi niz godina. S obzirom da zatita informacija teinu primenu ima u
poslovima vezanim za dravne strukture (vojska, policija i diplomatija), ovi sistemi su
bili iskljuivo tajni sistemi, namenski definisani i realizovani od strane nadlenih
dravnih institucija.
Sa porastom intenziteta i primene elektronskih oblika komunikacija javila se potreba
za definisanjem javnih simetrinih kriptografskih algoritama pa je u poslednjih
desetak godina definisano vie javnih simetrinih 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. Imajui u vidu eksplozivni razvoj poslovnih i finansijskih
sistema u poslednje vreme, javni simetrini kriptografski algoritmi su postali
dominantni u pogledu korienja.
Meutim, nijedan od njih nije usvojen kao generalni standard ve pomenuti sistemi
uglavnom koriste odgovarajue liste moguih kriptografskih algoritama. Na taj nain,
kao parametar komunikacije, bira se i identifikator simetrinog ifarskog algoritma
koji e se koristiti pri datoj transakciji.
Iako je po masovnosti komercijalna upotreba simetrinih kriptografskih algoritama
daleko prevazila upotrebu u tajnom sektoru (vezanom za dravne strukture), glavni
teorijski rezultati se i dalje deavaju u oblasti tajne kriptologije i tajnih sistema. Velika
veina drava ima specijalizovane organizacije koje se bave dizajniranjem i analizom
raznih vrsta ifarskih sistema (npr. NSA u SAD). Stepeni dostignua u toj oblasti
najee nisu javno poznati i nalaze se u sferi pretpostavki.
Postoje dve osnovne vrste simetrinih ifarskih sistema:

blok ifarski sistemi,
sekvencijalni ifarski sistemi (stream cipher).
2.1.1 Blok ifarski sistemi
Blok ifarski sistemi procesiraju blokove neifrovanog signala - otvorenog teksta (OT)
i ifrovanog signala ifrata (ST), obino u blokovima ija je veliina 64 bita ili vie.
Sekvencijalni ifarski sistemi procesiraju nizove bita, bajtova ili rei (16 ili 32 bita) OT
i ST.
Ako se u toku procesa ifrovanja jedne poruke nekim blok ifarskim sistemom vie
puta pojavljuje isti blok otvorenog teksta (OT) rezultat e biti uvek isti blok ifrata
(ST), to nije sluaj kod sekvencijalnih ifarskih sistema.
Kod sekvencijalnih ifarskih sistema verovatnoa da isti niz bita, bajtova ili rei OT pri
svakom pojavljivanju u jednoj poruci proizvodi isti ifrat tei nuli ukoliko su niz za
ifrovanje i otvoreni tekst nezavisni. Blok ifarski sistemi se veoma mnogo koriste u
5
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 nali 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, daemo kratak
opis AES simetrinog blok kriptografskog algoritma.
2.1.1.1 DES (Data Encryption Standard)
DES je zvanino objavljen 1976. godine. Iako se danas smatra nesigurnim za veinu
aplikacija zbog veoma kratkog kljua (56 bita), on predstavlja teoretsku osnovu za
sve blok ifarske algoritme. Na osnovu njega su izgraeni i njegovi naslednici koji su
danas u upotrebi (AES, 3DES).
DES je simetrini blok ifarski algoritam koji za ulaz uzima string fiksne duine i
serijom komplikovanih transformacija ga transformie u ifrovani tekst iste duine.
Kod DES-a veliina bloka je 64 bita.
Poto spada u simetrine algoritme, dekripcija se moe izvriti samo uz poznavanje
kljua kojim je izvreno 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 identinih faza, koje se nazivaju rundama, slika 2.2. Osim njih
postoje i inicijalna i zavrna permutacija, koje su inverzne operacije. Meutim, one
nemaju kriptografski znaaj.
Pre poetka glavnih rundi blok se se dijeli na dve 32-bitne polovine koje se
procesiraju naizmenino. Ovo ukrtanje se naziva Feistel-ova ema. Feistel-ova
struktura osigurava da su enkripcija i dekripcija vrlo slini procesi. Jedina razlika je da
se potkljuevi primenjuju u obrnutom redosledu u dekripciji. Ostatak algoritma je
identian. Ovo uveliko olakava 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 pomou odgovarajueg potkljua. Izlaz iz F funkcije se tada kombinuje sa
drugom polovinom bloka pomou XOR operacije. Zatim polovine bloka zamene
mjesta prije poetka sljedee runde. Nakon zavrne runde polovine ne menjaju
mjesta.
Feistel-ova (F) funkcija
Operie sa 32-bitnom polovinom bloka i sastoji se od 4 faze, slika 2.3:
6
1. Ekspanzija 32-bitna polovina bloka se proiruje do 48 bita koristei
ekspanzionu permutaciju, tj. dupliciranjem nekih bita.
2. Miksanje sa kljuem rezultat se kombinuje sa potkljuem koristei XOR
operaciju. esnaest 48-bitnih potkljueva (po jedan za svaku rundu) se izvode
iz glavnog kljua koritenjem algoritma key schedule.
3. Supstitucija nakon miksanja sa potkljuem 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 pomoe 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 izalih iz S-box-ova se rearaniraju pomou fiksne
permutacije P-box-a.
7
Slika 2.2: DES algoritam
8
Slika 2.3: Feistel-ova funkcija
2.1.1.2 3DES (Triple DES)
Triple DES je blok ifarski algoritam formiran koritenjem DES-a tri puta, slika 2.4.
Kad je otkriveno da 56-bitni klju DES-a nije dovoljan da se algoritam zatiti od brute
force napada, 3DES je izabran kao jednostavan nain da se proiri klju bez potrebe
prebacivanja na novi algoritam. Koritenje tri koraka je esencijalno u spreavanju
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 obinom DES-u i ne bi bila sigurnija.
Najjednostavnija varijanta 3DES-a ima sljedeu emu:
DES(k
3
;DES(k
2
;DES(k
1
;M))),
gde je M blok poruke koja se enkriptuje, a k
1
, k
2
, i k
3
su DES kljuevi. Ova varijanta
se popularno naziva EEE poto su sve tri DES operacije enkripcije. Da bi se
pojednostavnila interoperabilnost izmeu DES-a i 3DES-a srednji korak se obino
zamenjuje dekripcijom (EDE mod):
DES(k
3
;DES
-1
(k
2
;DES(k
1
;M))).
9
Na taj nain se jedna DES enkripcija sa kljuem k predstavlja kao 3DES-EDE gdje je
k
1
= k
2
= k
3
= k. Izbor dekripcije kao srednjeg koraka ne utie na sigurnost algoritma.
Slika 2.4: 3-DES algoritam
Uopteno, 3DES sa tri razliita kljua ima duinu kljua od 168 bita - tri DES kljua
po 56 bita, ali zbog meet-in-the-middle napada efektivna duina je samo 112 bita.
3DES lagano izlazi iz upotrebe i uveliko se zamijenjuje sa AES-om. Izuzetak je
industriji elektronskog plaanja 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 bri. 3DES daje neto bolje performanse u
hardverskim implementacijama, ali i tu AES daje bolje rezultate. Konano, AES nudi
veu sigurnost: vei blok i potencijalno dui klju.
2.1.1.3 IDEA
Ovo je simetrini blok ifarski algoritam.
injenice:
enkriptuje blok veliine 64 bita;
koristi klju duine 128 bita;
10
52 potkljua duine 16 bita;
koristi jedan par potkljueva po rundi;
koristi 8 unakrsnih runda (iteracije) kod enkriptovanja;
dekripcija se vri inverznom enkripcijom.
Prednosti:

do sada je izdrao 'napade' akademske zajednice
IDEA koristi 52 potkljua duine 16 bitova i ima 8 rundi enkripcija poruke. Po dva
potkljua se koriste u svakoj rundi (16), zatim etiri potkljua se koriste pre svake
runde (32), a poslednja etiri potkljua koriste se nakon zadnje runde (4) =
16+32+4=52.
Potkljuevi se dobijaju tako to se 128 bitni klju razdeli u prvih 8 potkljueva (K1-K8)
veliine 16 bita. Zatim se sledeih 8 potkljueva dobije tako to se 25 puta napravi
kruni pomeraj ulevo svakog od prethodno napravljenih potkljueva. Postupak se
ponavlja dok se ne kreiraju svi potkljuevi.
Iako je generisanje kljueva pravilno, to bi ukazalo na slabost algoritma, do sada je
ovaj algoritam izdrao sva nastojanja akademskih ustanova na njegovom razbijanju.
2.1.1.4 AES algoritam
Kao to je ve reeno, u toku 2001. godine, NIST (National Institute of Standards and
Technology) organizacija u SAD je objavila standard za simetrine 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 istraivai: Joan Daemen i Vincent Rijmen. Rijndael
predstavlja blok ifarski algoritam koji podrava promenljivu duinu bloka informacije
(128, 192 i 256 bita) kao i promenljivu duinu kljua (128, 192 i 256 bita).
Naime, poruke ifrovane DES algoritmom su se, zbog nedostataka u samom
algoritmu (bezbedonosni nedostaci u supstitucionim s-tabelama), male duine kljua
(56-bita) i poveane procesne moi raunara, mogle deifrovati za samo par asova.
Nakon selekcione procedure, za realizaciju AES standarda izabran je Rijndael
algoritam koga su realizovali belgijski mateatiari: Joan Daemen i Vincent Rijmen.
Rijndael je blok ifarski algoritam koji podrava promenljivu duinu bloka otvorenog
teksta (128, 192 i 256 bita) kao i promenljivu duinu kljua (128, 192 i 256 bita).
Rijndael algoritam je u odnosu na konkuretske algoritme (MARS, RC6, Serpent,
Twofish) bio bri i zahtevao je manje operativne memorije u procesu ifrovanja i
deifrovanja poruka. Rijndael algoritam sa 128-bitnom duinom kljua je bri za oko
2.5 puta u odnosu na 3-DES algoritam.
11
AES algoritam realizuje operacije ifrovanja i deifrovanja bloka podataka u
promenljivom broju ciklusa. Broj ciklusa zavisi od veliine kljua i iznosi 10/12/14 za
veliinu kljua 128/192/256 bita, respektivno. Pre poetka ifrovanja ili deifrovanja
vri se ekspanzija kljua.
Realizacija ifrovanja u AES algoritmu
U realizaciji ifarske transformacije bloka podataka otvorenog teksta se izvravaju
etiri razliita tipa funkcija koje se primenjuju nad elementima matrice meurezultata
dimenzija 44 bajta:
nelinearna zamena bajtova pomou supstitucione tabele (funkcija ByteSub),
promena mesta bajtova unutar istog reda (funkcija ShiftRow),
transformacija bajtova unutar iste kolone (funkcija MixColumns),
sabiranje po modulu dva sa odgovarajuem delom kljua (funkcija
AddRoundKey).
U poslednjem ciklusu ifrovanja se ne obavlja transformacija bajtova unutar iste
kolone (funkcija MixColumns).
U Rijndael algoritmu sve operacije sabiranja i mnoenja se vre nad elementima
konanog polja (pored konanih polja od r-elemenata (r-prost broj) postoje i konana
polja od q=r
m
elemenata, gde je m prirodan broj; navedena konana polja se nazivaju
i polja Galoa (Galois Field) u oznaci GF(r
m
), u ast francuskog matematiara Galoa
(E. Galois)) od 256 elemenata (u oznaci GF(2
8
) ):
pri sabiranju bajtova primenjuju se bitska operacija sabiranja po modulu dva,
rezultat mnoenja dve vrednosti je proizvod po modulu vrednosti nerazloivog
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 nerazloivog polinoma:
m(x)=x
8
+x
4
+x
3
+x+1 (2.1.1.2)
Svaki elemenat konanog polja, a(x), ima jednoznanu inverznu vrednost, a
inv
(x),
koja zadovoljava uslov:
a(x)*a
inv
(x) mod m(x)=1 (2.1.1.3)
Da bi se ubrzao proces mnoenja u skupu od 256 elemenata konanog polja
formiraju se logaritamska i antilogaritamska tabela. Vrednost svakog elementa
konanog polja p moe 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 konanog polja x postoji
odgovarajua vrednost L koja zadovoljava uslov {x}={03}
L
. U antilogaritamskoj tabeli
za svaki elemenat konanog polja x postoji odgovarajua vrednost E koja
zadovoljava uslov {E}={03}
x
.
U procesu mnoenja dva elementa konanog polja a i b, pomou logaritamske tabele
se odrede koeficijenti i takvi da je a={03}

i b= {03}

. Mnoenjem vrednosti a i b
dobija se vrednost ab= {03}
+
. Traeni proizvod se dobija kada se iz
antilogaritamske tabele iz ulaza x= + odredi vrednost E = ab.
Logaritamska i antilogaritamska tabela se takoe mogu koristiti za pronalaenje
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
veliine, se dobija kada se iz antilogaritamske tabele iz ulaza x=255- , proita
vrednost E.
U procesu ifrovanja se realizuju sledee funkcije:
1. Funkcija ByteSub vri nelinearnu transformaciju bajta ulazne poruke pomou
supstitucione s-tabele (tkz. S-box tabele). Pri kreiranju supstitucione s-tabele,
vrednost ulaza x (x=0255) se dobija u dva koraka:
odreivanje inverzne vrednosti ulazne veliine
1
x x
inv
pomou logaritamske
i antilogaritamske tabele, prema prethodno opisanom mehanizmu.
vrednost datog ulaza supstitucione s-tabele se dobija odreivanjem 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
c x x x x x x

+

+

, (2.1.1.4)
gde je: c={63
h
},
Navedeni postupak se moe prikazati i u matrinom obliku:
13

1
1
1
1
1
1
1
1
1
1
1
]
1

1
1
1
1
1
1
1
1
1
1
1
]
1

1
1
1
1
1
1
1
1
1
1
1
]
1

1
1
1
1
1
1
1
1
1
1
1
]
1

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)
Nakon kreiranja s-tabele vri se nelinearna transformacija ulazne poruke, Slika 2.5,
koja je upisana u matrici dimenzija 44 bajta, tako to se svaki bajt ulazne poruke
zameni sa vrednou iz odgovarajueg ulaza iz s-tabele.

a
0, 0
a
0, 1
a
0, 2
a
0, 3
b
0, 0
b
0, 1
b
0, 2
b
0, 3
a
1, 0
a
1, 1
a
1, 3
B
1, 0
b
1, 1
b
1, 3
a
2, 0
a
2, 1
a
2, 2
a
2, 3
B
2, 0
b
2, 1
b
2, 2
b
2, 3
a
3, 0
a
3, 1
a
3, 2
a
3, 3
B
3, 0
b
3, 1
b
3, 2
b
3, 3
14
s-
box
ai, j
bi, j
Slika 2.5: Grafiki prikaz nelinearne transformacije poruke pomou s-tabele
2. Funkcija ShiftRows obavlja operaciju nad elementima u redovima matrice
podataka dobijene nakon nelinearne transformacije pomou s-tabele. Pravilo po
kome se vri promena mesta bajta unutar istog reda matrice je prikazano sledeim
izrazom:
d
r,c
= b
r,[c+h (r,Nc)] mod Nc
(2.1.1.6)
gde je za AES usvojena varijanta Rijndael algoritma : N
c
=4, 0 < r < 4 i h(r,N
c
)=h(r).
Rotacija bajtova unutar istog reda matrice meurezultata je prikazana na Slici 2.6.
Slika 2.6: Grafiki prikaz promene mesta bajtova u redu matrice meurezultata
3. Funkcija MixColumns vri transformaciju elemenata kolone matrice meurezultata
nakon realizacije funkcije ShiftRows. Elementi kolone matrice se posmatraju kao
koeficijenti polinoma, pri emu svaki koeficijent predstavlja elemenat konanog polja
GF(2
8
). Zatim se, tako dobijeni polinomi, mnoe sa konstantnim polinomom
n(x)='03'x
3
+ '01'x
2
+ '01'x + '02' po modulu x
4
+1. Navedeno modularno mnoenje se
moe prikazati i u matrinom obliku:

1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

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: 0c<4.
Nain na koji se vri transformacija kolona matrice je prikazana na Slici 2.7.
15
d0, j
d1, j
d2, j
d3, j
e0, j
e1, j
e2, j
e3, j

c(x)
d
0, 0
D
0, 1
a
0, 2
d
0, 3
e
0, 0
e
0, 1
b
0, 2
e
0, 3
d
1, 0
D
1, 1
d
1, 3
e
1, 0
e
1, 1
e
1, 3
d
2, 0
D
2, 1
a
2, 2
d
2, 3
e
2, 0
e
2, 1
b
2, 2
e
2, 3
d
3, 0
d
3, 1
a
3, 2
d
3, 3
e
3, 0
e
3, 1
b
3, 2
e
3, 3
Slika 2.7: Grafiki prikaz promene mesta bajtova u kolonama matrice meurezultata
4. Funkcija AddRoundKey vri operaciju eksluzivne disjunkcije nad elemenata
matrice, dobijene nakon izvrenja funkcije MixColumn, i matricom odgovarajueg
dela ekspandovanog kljua, Slika 2.8.
e
0,
0
e
0,
1
e
0,
2
e
0,
3
k
0,
0
k
0,
1
k
0,
2
k
0,
3
r
0, 0
r
0, 1
r
0, 2
r
0, 3
e
1,
0
e
1,
1
e
1,
2
e
1,
3

k
1,
0
k
1,
1
k
1,
2
k
1,
3
=
r
1, 0
r
1, 1
r
1, 2
r
1, 3
e
2,
0
e
2,
1
e
2,
2
e
2,
3
k
2,
0
k
2,
1
k
2,
2
k
2,
3
r
2, 0
r
2, 1
r
2, 2
r
2, 3
e
3,
0
e
3,
1
e
3,
2
e
3,
3
k
3,
0
k
3,
1
k
3,
2
k
3,
3
r
3, 0
r
3, 1
r
3, 2
r
3, 3
Slika 2.8: Grafiki prikaz funkcije AddRoundKey
Optimizacija realizacije ifrovanja u AES algoritmu
Tranformacija kolone ulazne matrice kroz jedan ceo ciklus ifrovanja se moe
matematiki prikazati sledeim nizom izraza:

1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

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)

1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

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)
16

1
1
1
1
]
1

1
1
1
1
]
1

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)

[ ]
[ ]
[ ]
[ ]
1
1
1
1
1
1
]
1

1
1
1
1
]
1

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 sledei izraz koji opisuje proces transformacije j-te kolone
( ) 4 0 < j
ulaznog podataka u jednom ciklusu ifrovanja.

[ ]
[ ]
[ ]
[ ]
1
1
1
1
]
1

1
1
1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

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)
Mnoenje matrica moe se prikazati i sledeim izrazom:
[ ] [ ] [ ] [ ]
1
1
1
1
]
1

1
1
1
1
]
1


1
1
1
1
]
1


1
1
1
1
]
1


1
1
1
1
]
1


1
1
1
1
]
1


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 mnoenja s[ j i
a
, ] se dobija odreivanjem vrednosti ulaza j i
a
, supstitucione
s-tabele. Da bi se ubrzao proces mnoenja mogu se kreirati 4 tabele:

[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
1
1
1
1
1
]
1

1
1
1
1
1
]
1

1
1
1
1
1
]
1

1
1
1
1
1
]
1

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 sadri 256 etvorobajtnih rei, tako da je ukupan memorijski
prostor potreban za njihovo skladitenje 4KB. Primenom datih tabela, transformacija
j-te kolone ulaznog podatka u jednom ciklusu ifrovanja se moe predstaviti izrazom:

[ ] [ ] [ ] [ ]
j j j j j j
k a T a T a T a T r
3 , 3 3 2 , 2 2 1 , 1 1 , 0 0
(2.1.1.15)
17
Definiimo funkciju RowByte(W) koja vri rotaciju svakog bajta ulazne rei za jedno
mesto udesno W=b
3
b
2
b
1
b
0
(b
i
, i-ti bajt rei), tako da je izlazna re oblika W=b
2
b
1
b
0
b
3
.
Veza izmeu tabela 2 1 0
, , T T T
i
3
T
se moe prikazati sledeom relacijom:

[ ] [ ]

,
_


a T RotByte a T
i i 1 (2.1.1.16)
Transformacija j-te kolone matrice ulaznog podatka u jednom ciklusu ifrovanja se
moe predstaviti sledeim izrazom:

[ ] [ ] [ ] [ ]

,
_

,
_

,
_


3 , 3 0 2 , 2 0 1 , 1 0 , 0 0 j j j j j j
a T RotByte a T RotByte a T RotByte a T k r
(2.1.
1.17)
Primenom ove formule umesto etiri tabele sa ukupno 1024 etvorobajtnih rei (4KB)
potrebno je kreirati jednu tabelu od 256 rei (1KB), ali ciklus ifrovanja traje neznatno
due, za tri dodatne operacije rotacije bajta unutar rei (funkcija RotByte).
Realizacija deifrovanja u AES algoritmu
Proces deifrovanja poruke je slian procesu ifrovanja. U procesu deifrovanja se
primenjuju etiri razliita tipa funkcija nad elementima matrice meurezultata
dimenzija 44 bajta:
nelinearna zamena bajtova pomou 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 odgovarajuim delom kljua (funkcija
AddRoundKey).
U poslednjem ciklusu deifrovanja se ne obavlja transformacija bajtova unutar iste
kolone (funkcija InvMixColumns).
U procesu deifrovanja se realizuju sledee funkcije:
1. Nelinearna transformacija ulazne matrice dimenzija 44 bajta se vri pomou
inverzne supstitucione s-tabele. U procesu kreiranja inverzne supstitucione s-tabele
vrednost za svaki od ulaza x (x=0..255) se odreuje u dva koraka:
transformacija vrednosti ulaznog bajta x se realizuje odreivanjem vrednosti
svakog bita i unutar bajta (0 i < 8):
( ) ( ) ( ) i mod i mod i mod i i
d x x x x
+ + + 8 7 8 5 8 2 (2.1.1.18)
gde je: d={05
h
},

18
vrednost ulaza x u inverznoj supstitucionoj tabeli se dobija kao rezultat
inverzne transformacije prethodno dobijene vrednosti b=( )
1
x .
2. Funkcija InvShiftRows obavlja operacije nad elementima u redovima matrice
meurezultata, dobijenom nakon prethodno opisane transformacije. Pravilo po kome
se vri promena mestu bajta unutar istog reda matrice se moe prikazati sledeim
izrazom:
d
r, [c+h (r,Nc)] mod Nc
b
r,c
(2.1.1.19)
gde je za AES usvojena varijanta Rijndael algoritma : N
c
=4, 0 < r < 4 i h(r,N
c
)=h(r).
Rotacija bajtova unutar istog reda matrice meurezultata je prikazana na Slici 2.9.
3. Funkcija InvMixColumns vri transformaciju elemenata kolone matrice dobijene
nakon izvrenja funkcije InvShiftRows. Elementi kolone matrice se posmatraju kao
koeficijenti polinoma, pri emu svaki koeficijent predstavlja elemenat konanog polja
GF(2
8
). Zatim se, tako dobijeni polinomi, mnoe sa konstantnim polinomom
p(x)='0B'x
3
+ '0D'x
2
+ '09'x + '0E' po modulu x
4
+1. Navedeno modularno mnoenje se
moe prikazati u matrinom obliku:

1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

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: 0c<4.
Slika 2.9: Grafiki prikaz promene mesta bajtova u redu matrice meurezultata
19
4. Funkcija AddRoundKey vri sabiranje po modulu dva elementa matrice, dobijena
nakon izvrenja funkcije InvMixColumns, sa odgovarajuim delom kljua za
deifrovanje:

1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

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 nain upotrebe bazinog ifarskog algoritma i najee
je kombinacija neke vrste povratne petlje i odreenih jednostavnih operacija.
Operacije koje se primenjuju nad algoritmom su uglavnom jednostavne jer je
bezbednost odreena bazinim ifarskim algoritmom a ne kriptografskim modom.
Blok ifarski sistemi se primenjuju u razliitim 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 najlaki nain primene blok ifarskih sistema -
blok OT se ifruje u blok ST, Slika 2.10. Svaki OT blok se ifruje nezavisno. Sa
kriptoloke strane, ECB mod je najproblematiniji.
Naime, ako kriptoanalitiar poseduje parove OT i ST za nekoliko poruka, mogue je
da tokom konverzacije dve strane formira pravu kodnu knjigu, skup odgovarajuih
parova ST i OT, i bez poznavanja kljua.
U veini realnih situacija: fragmenti poruka tee ponavljanju, razliite poruke imaju
zajednike delove, odreeni raunarski 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 poetku i na kraju poruke, gde se u
dobro definisanim zaglavljima i futnotama mogu nalaziti informacije o poiljaocu,
primaocu, datumu, itd.
20
Formiranje reprezentativne kodne knjige ne samo da omoguava treoj strani pristup
informacijama ve joj dodatno omoguava da moe modifikovati i ponavljati ifrovane
poruke (tzv. block replay problem) bez poznavanja kljua i algoritma, u sluaju da
ima mogunost presretanja ifrovanih poruka izmeu dve strane. Ovi problemi su
inicirali uspostavljanje zavisnosti izmeu susednih blokova ifrata kroz definisanje
novih kriptografskih modova blok ifarskih sistema.
Slika 2.10: Grafiki prikaz rada u ECB modu
2.1.2.2 Mod ulanavanja blokova (CBC Cipher Block Chaining)
Mehanizam ulanavanja povezuje blokove ifrata tako to se rezultat ifrovanja
prethodnih blokova koristi pri ifrovanju tekueg bloka.
Drugim reima, svaki blok se koristi za modifikaciju ifrovanja sledeeg bloka tako da
svaki blok ST zavisi ne samo od tekueg bloka OT ve i od svih prethodnih blokova
OT. Naini na koje se to moe ostvariti su raznovrsni.
Slika 2.11: Grafiki prikaz rada u CBC modu
21

U CBC modu, Slika 2.11, taj uticaj se realizuje tako to se izvrava operacija
ekskluzivno ili (XOR) izmeu 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 sadraj povratnog registra se spregnu operacijom
ekskluzivne disjunkcije i tako dobijeni blok se transformie 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 nain, rezultat ifrovanja svakog bloka zavisi od svih prethodnih blokova.
Proces deifrovanja sledi direktno i odvija se na sledei nain:
1. U povratni registar se smesti inicijalna vrednost.
2. Blok ifrata C deifruje se primenom transformacije
1
E
, tako dobijeni blok
teksta i sadraj 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 deifrovanje.
Matematiki, proces ifrovanja i deifrovanja moe se prikazati na sledei nain,
relacijama (2.1.1.22) i (2.1.1.23), respektivno:

) (
1

i i k i
CT OT E CT

(2.1.1.22)

) (
1 i k i i
CT D CT OT


(2.1.1.23)
CBC mod prouzrokuje da se identini blokovi OT ifruju u razliite ST blokove samo
ako su neki prethodni blokovi razliiti. Dve kompletno identine poruke e se ipak
ifrovati u iste ST.
Ovaj problem se moe reiti tako to se za prvi blok podataka uzima neka sluajna
veliina. Ovaj blok sluajnih podataka se naziva inicijalizacioni vektor (IV). Kada
primalac deifruje ovaj blok, on prosto smeta IV u povratni registar. Tekue vreme
sistema (timestamp) esto predstavlja dobro reenje za IV. Primenom IV, identine
poruke se ifruju u razliite ST.
Primenom IV, eliminisana je mogunost primene block replay metode. tavie, IV ne
mora da bude tajni podatak i moe se preneti otvoreno, zajedno sa ST, uz upotrebu
nekog od mehanizama zatite integriteta.
Meutim, moda ne tako oigledno kao u ECB modu, i u CBC modu postoje
odreeni bezbednosni problemi koji se mogu manifestovati kao odreena mogunost
22
da kriptoanalitiar dodaje odreene blokove na krajeve poruka koje se razmenjuju i u
injenici da veoma duge poruke i dalje nisu imune na pojavljivanje odreenih
identinih oblika iako se vri proces ulanavanja.
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 veliine r bita (r < n veliina bloka), to u CBC modu nije mogue.
Ovim modom se prevazilazi osnovni problem CBC moda - da ifrovanje i prenos
podataka ne mogu poeti sve dok se ne primi kompletan blok podataka. U CFB
modu, podaci se ifruju u manjim jedinicama od aktuelne veliine bloka i ovaj mod se
oznaava kao r-bitni CFB mod, gde je r manje ili jednako od veliine bloka osnovnog
blok ifarskog sistema.
Proces ifrovanja se odvija na sledei nain, Slika 2.12:
1. Otvoreni tekst se podeli u blokove veliine r bita, formira se inicijalni vektor
veliine n bita i smesti u povratni registar. Odabere se K, klju za ifarsku
transformaciju.
2. Formira se izlazni blok, O, tako to se izvri ifarska transformacija kljuem K
tekueg sadraja povratnog registra.
3. Blok ifrata se formira tako to se operacija ekskluzivne disjunkcije izvri nad
tekuim blokom otvorenog teksta i r bita najmanje teine bloka O.
4. Sadraj povratnog registra se pomera za r bita u levo i na mesto r bita
najmanje teine se smeta formirani blok ifrata.
Koraci 2-4 se ponavljaju sve dok ima blokova otvorenog teksta. Deifrovanje se
odvija na slian nain.
1. Formira se inicijalni vektor veliine n bita i smesti u povratni registar. Odabere
se K, klju za ifarsku transformaciju.
2. Formira se izlazni blok, O, tako to se ivri ifarska transformacija kljuem K
tekueg sadraja povratnog registra.
3. Blok otvorenog teksta se formira tako to se operacija ekskluzivne disjunkcije
izvri nad tekuim blokom ifrata i r bita najmanje teine bloka O.
4. Sadraj povratnog registra se pomera za r bita ulevo i na mesto r bita
najmanje teine se smeta tekui blok ifrata.
Inicijalizacioni vektor ima istu ulogu kao i u CBC modu, da sprei pojavljivanje istih
ifrata u sluaju istih poruka ifrovanih jednakim kljuevima. Iz opisa naina
transformacije jasno je da je za ispravno deifrovanje neophodno da je prethodnih
1
1
1

k
n
blokova ifrata ispravno deifrovano.
23
S obzirom da se i u procesu ifrovanja i u procesu deifrovanja koristi ista ifarska
transformacija, to algoritam kojim se formira blok O ne moe biti iz klase algoritama
sa javnim kljuem.
Slika 2.12: Grafiki 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, spreava
propagaciju greke i ima poboljane bezbednosne karakteristike. OFB mod rada
takoe omoguava prenos podataka u jedinicama manjim od veliine bloka.
Transformacija otvorenog teksta se odvija na sledei nain, slika 2.13:
1. Otvoreni tekst se podeli u blokove veliine r bita, formira se inicijalni vektor
veliine n bita i smesti u povratni registar. Odabere se K, klju za ifarsku
transformaciju.
2. Formira se izlazni blok, O, tako to se izvri ifarska transformacija kljuem K
tekueg sadraja povratnog registra .
3. Blok ifrata se formira tako to se operacija ekskluzivne disjunkcije izvri nad
tekuim blokom otvorenog teksta i r bita najmanje teine bloka O.
4. Blok O postaje sadraj povratnog registra.
Koraci 2-4 se ponavljaju sve dok ima blokova otvorenog teksta. Deifrovanje se
odvija na slian nain.
Formira se inicijalni vektor veliine n bita i smesti u povratni registar. Odabere
se K, klju za ifarsku transformaciju.
24


Formira se izlazni blok, O, tako to se ivri ifarska transformacija kljuem K
tekueg sadraja povratnog registra.
Blok otvorenog teksta se formira tako to se operacija ekskluzivne disjunkcije
izvri nad tekuim blokom ifrata i r bita najmanje teine bloka O.
Sadraj povratnog registra zameni se formiranim blokom O.
Koraci 2-4 se izvravaju sve dok ima blokova za deifrovanje.
Prethodno izloeni opis je prema standardu ISO 10116. Postoje takoe i druge
varijacije na ovu temu (npr. FIPS-81) ali se ova izloena verzija smatra, za sada,
najbezbednijom.
Slika 2.13: Grafiki prikaz rada u OFB modu
Pored toga to se radom u ovom modu onemoguava propagacija greke, dobra
osobina ovog moda rada je i to to se vei deo izraunavanja moe izvriti off-line,
nakon ega se vri samo XOR-ovanje izlaza algoritma i jedinica OT.
Detaljna analiza OFB moda rada je pokazala da ovaj mod rada treba koristiti samo u
sluaju da je r jednako duini bloka n. Drugim reima, 64-bitne blok ifarske
algoritme treba koristiti u 64-bitnom OFB modu.
2.1.2.5 Izbor odgovarajueg moda rada blok ifarskog sistema
Jedan od etiri bazina moda rada ECB, CBC, OFB ili CFB pogodan je za skoro
svaku aplikaciju. Koji e se mod koristiti zavisi od korisnikovih specifinih zahteva.
Ako su jednostavnost i brzina najbitniji, ECB mod je pravi izbor, kao najlaki i najbri
mod za korienje blok ifarskih sistema. Meutim, ECB mod je najslabiji sa
bezbednosne take gledita i ne preporuuje se za ifrovanje poruka. Sa druge
strane, ECB mod je veoma dobar za ifrovanje kratkih sluajnih podataka, kao to su
na primer kljuevi, jer se pri tome ne iskazuju prepoznate slabosti ECB moda.
25
Za ifrovanje normalnog OT treba koristiti CBC, CFB ili OFB mod. CBC je generalno
najbolji mod za ifrovanje datoteka. Takoe, ako je aplikacija softverski bazirana,
CBC je skoro uvek najbolje reenje. 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 izmeu terminala i host
raunara. OFB mod rada se najee koristi u sinhronim sistemima visokih brzina
gde se ne tolerie propagacija greaka.
2.1.3 Sekvencijalni ifarski sistemi
Sekvencijalni ifarski sistemi predstavljaju vrlo vanu klasu ifarskih algoritama. Oni
transformiu pojedinane karaktere (najee bite i bajtove otvorenog teksta)
koristei transformaciju koja pored kljua zavisi na odreeni nain i od vremenskog
trenutka u kojem se primenjuje, za razliku od blokovskih ifarskih sistema koji
transformiu blokove otvorenog teksta nepromenljivom transformacijom tokom
ifrovanja cele poruke.
Kao i obino, 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 duina bloka jedan karakter (bit, bajt ili mainska re (word) duine 16,
24 ili 32 bita).
Generalno govorei sekvencijalni ifarski sistem sastoji se od generatora niza kljua
(keystream generator) koji generie niz jedinica kljua k
1
, k
2
, , k
i
, i funkcije f koja
se primenjuje na niz jedinica OT: p
1
, p
2
, , p
i
, proizvodei niz jedinica ST: c
1
, c
2
, ,
c
i
, na bazi sledee relacije:

) , (
i i i
p k f c
(2.1.3.1)
Na drugom kraju komunikacije, primenom inverzne funkcije na parove jedinica ifrata
i jedinica kljua dobijaju se jedinice poslatog OT. Naime:

) , (
1
i i i
c k f p


(2.1.3.2)
jer je funkcija f tako odabrana da je

)) , ( , (
1
i i i i
p k f k f p


(2.1.3.3)
Zbog jednostavnosti obrade za f se najee koristi ekskluzivna disjunkcija (XOR
operacija). Bezbednost nizovnog ifarskog sistema primarno je odreena
kriptolokim kvalitetom generatora niza kljua.
26
2.1.3.1 Klasifikacija sekvencijalnih ifarskih sistema
Klasifikacija sekvencijalnih ifarskih sistema se moe vriti po razliitim kriterijumima,
po nainu na koji se generie niz kljua, po tipu primenjenog algoritma (sa javnim ili
tajnim kljuem), itd. Osnovna je podela po nainu na koji se generie niz kljua. U
tom smislu postoje sistemi sa sluajnim i pseudo-sluajnim nizom.
Sistemi sa sluajnim nizom kod ovih sistema niz kljua se generie na sluajan
nain, tako to se jedinice kljua generiu nezavisno i sluajno. Ako se prema
prethodnim oznakama za funkciju f uzme ekskluzivna disjunkcija, tada se dobija
takozvani one time pad sistem za koji se moe 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 najkrai klju kojim se
postie apsolutna sigurnost. Naime, enon je u svojim radovima pokazao da je
neophodan uslov za apsolutnu bezbednost da entropija kljua bude vea ili jednaka
od entropije poruke. Kako je kod ovog sistema entropija kljua jednaka duini poruke,
ija entropija ne moe biti vea od njene duine, to sledi da je ovo zbilja optimalan
sistem u navedenom smislu.
Nedostatak ovog sistema je u injenici da oba uesnika komunikacije moraju imati
isti niz kljua koji mora biti tajan, to proizvodi, ponekad nepremostive, probleme u
upravljanju kljuevima jer treba obezbediti i dostaviti stranama u komunikaciji velike
koliine kljueva kako bi mogle nesmetano da komuniciraju.
Sistemi sa pseudosluajnim nizom kod ovih sistema se na osnovu inicijalne
vrednosti i dogovorenog algoritma generie niz jedinica kljua. Posedovanjem
identine inicijalne vrednosti, obe strane u komunikaciji su u stanju da produkuju isti
niz jedinica kljua i da ostvare bezbednu komunikaciju. Kako je generisanje jedinica
kljua deterministiko, niz kljua je u potpunosti definisan sa:
Poetnim unutranjim stanjem inicijalna vrednost kojom se definie poetno
stanje generatora kljua,
Funkcijom narednog stanja koja na bazi prethodnog unutranjeg stanja
generie novo unutranje stanje,
Izlaznom funkcijom koja na osnovu unutranjeg stanja generie izlaznu
jedinicu kljua.
Posledica injenice da je niz kljua deterministiki je da je on nuno periodian. Iako
su ovo na izgled injenice koje ovakve sisteme znaajno dezavuiu, stvari ne stoje
tako loe, i ti problemi se mogu sasvim uspeno prevazii. Naime, bezbednost
ovakvih sistema direktno zavisi od veliine inicijalnih podataka i kvaliteta
dogovorenog algoritma. Dobro dizajnirani algoritmi ovog tipa pruaju zatitu koja je
po kvalitetu vrlo blizu apsolutno bezbednim sistemima.
Sekvencijalni ifarski sistemi sa pseudosluajnim nizom se dele u dve velike grupe:
Sinhroni sekvencijalni ifarski sistemi
27
Samosinhroniui sekvencijalni ifarski sistemi
Sinhroni sekvencijalni ifarski sistemi su oni kod kojih se niz kljua generie
nezavisno od otvorenog teksta i ifrata, slika 2.14.
Proces ifrovanja se moe opisati sledeim skupom jednaina:

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



(2.1.3.4)
Gde se poetno stanje,
0
, odreuje na osnovu inicijalne vrednosti k, f je funkcija
sledeeg stanja, g je funkcija koja produkuje niz kljua
i
z
a h izlazna funkcija koja
od otvorenog teksta
i
m
i niza kljua
i
z
formira ifrat
i
c
.
Kod ovih sistema niz kljua se generie nezavisno od niza jedinica poruke. Na obe
strane u komunikaciji se istovremeno generiu nizovi kljua. Uesnici u komunikaciji
su u stanju da razmenjuju poruke sve dotle dok su algoritmi za generisanje niza
kljua sinhronizovani meu sobom.
Ukoliko se desi gubitak ili umetanje jednog ili vie jedinica tokom prenosa ST,
deifrovanje e biti nekorektno. U sluaju takvog dogaaja, generatori niza kljua na
predajnoj i prijemnoj strani moraju se resinhronizovati, pre nego to nastave
komunikaciju.
Sa druge strane, u ovim sitemima se ne propagira greka i svaki pogrean bit u
prenosu ostae i u deifrovanom obliku pogrean, ali ta greka nee uticati ni na
prethodne ni na budue bite za prenos.
Prethodno navedena osobina moe posluiti aktivnom protivniku kao osnova za
razliite vrste pokuaja kompromitovanja ovakvog sistema.
Slika 2.14: Grafiki prikaz rada sinhronih sekvencijalnih ifarskih sistema
28

Samosinhroniui asinhroni sistemi su oni kod kojih je niz kljua dobija u funkciji
inicijalne vrednosti, dogovorenog algoritma i izvesnog konstantnog broja prethodnih
jedinica ifrata, Slika 3.15. Proces ifrovanja se opisuje sledeim skupom jednaina:

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



(2.1.3.5)
Gde je
) , , (
1 0
c c
t

inicijalno stanje, poetno stanje odreuje se na osnovu
inicijalne vrednosti k, f je funkcija sledeeg stanja, g je funkcija koja produkuje niz
kljua
i
z
a h izlazna funkcija koja od otvorenog teksta
i
m
i niza kljua
i
z
formira
ifrat
i
c
. Kod ovih sistema mogue je ostvariti samosinhronizaciju zato to
deifrovanje zavisi samo od fiksnog broja prethodnih jedinica ifrata, tako da je
mogue sinhronizaciju ponovo uspostaviti vraanjem na odreeni broj dobro
primljenih znakova ifrata.
Slika 2.15: Grafiki prikaz rada samosinhroniuih sistema sa pseudo-sluajnim
nizom
Kod ovih sistema propagacija greke je takoe ograniena na fiksiran broj
uzastopnih jedinica a posle toga se preostale jedinice ifrata mogu ispravno
deifrovati.
Sekvencijalni ifarski sistemi imaju veliku ulogu u zatiti masovnih podataka zato to
obezbeuju kvalitetnu zatitu a pri realizaciji obezbeuju veliku brzinu obrade.
Teorija analize i sinteze sekvencijalnih ifarskih sistema sa pseudosluajnim nizom je
veoma razvijena i u glavnom jedna podstie drugu na razvoj.
2.1.3.2 RC4 algoritam
29


RC4 je najkoriteniji 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 poetak izlaznog niza nije odbaen 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 kljua promenljive duine. Ima dva brojaa, i i j,
postavljena na 0. Za generisanje sluajnog bajta koristi se sledei algoritam:
i = (i + 1) mod 256
j = (j + S
i
) mod 256
zamijeni S
i
i S
j
t = (S
i
+ S
j
) mod 256
K = S
t
.
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 bra nego kod DES-a).
Inicijalizacija S-box-ova je takoe lagana.
Prvo se popunjavaju linearno: S
0
= 0, S
1
= 1,..., S
255
= 255.
Zatim se generie drugi 256-bajtni niz kljua, ponavljajui klju koliko je potrebno da
se popuni cijeli niz: K
0
, K
1
,..., K
255
. Indeks j se postavlja na 0. Tada se izvrava
sljedea petlja:
for i = 0:255
j = (j + S
i
+ K
i
) mod 256
zameni S
i
i

S
j
.
Algoritam je imun na diferencijalnu i linearnu kriptoanalizu i krajnje je nelinearan.
Indeks i osigurava da se svaki element menja, a indeks j da se elementi menjaju
sluajno.
2.1.4 Komparativna analiza blok i sekvencijalnih ifarskih sistema
Iako su blok i sekvencijalni ifarski sistemi veoma razliiti, blok sistemi se mogu
implementirati kao sekvencijalni sistemi i obrnuto. Razlike se najvie iskazuju u
implementaciji ovih sistema. Naime, sekvencijalni ifarski sistemi koji ifruju i
deifruju svaku jedinicu OT nisu previe pogodni za softverske implementacije. Oni
su pogodni za ifrovanje i deifrovanje podataka u realnom vremenu, i to posebno
ako su realizovani u hardveru.
Sa druge strane, blok ifarski sistemi su laki za implementaciju u softveru zato to
esto izbegavaju vremenski zahtevne bitske manipulacije i zato to rade nad
podacima u raunarski podeljenim blokovima. Postoje neki specifini momenti gde
ifrovanje jedinica OT moe biti od interesa i u raunarskim sistemima, kao na primer
30
ifrovanje veze izmeu tastature i procesora, ali i u tom sluaju blok koji se ifruje
treba da bude najmanje irine magistrale podataka.
U savremenom razvoju kriptologije svedoci smo sve intenzivnijeg korienja 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 zatitu finansijskih,
poslovnih i dravnih raunarskih mrea uglavnom se podrava itav skup najvie
korienih blok i sekvencijalnih algoritama (de facto standardnih algoritama).
2.2 Asimetrini kriptografski algoritmi
Asimetrini kriptografski algoritmi predstavljaju jedno od najveih dostignua
kriptologije druge polovine dvadesetog veka. Otkriveni su u procesu reavanja
problema vezanih za zatitu tajnosti i distribuciju kljueva koji je esto bio aktuelan u
primenama simetrinih kriptografskh algoritama.
Naime, u asimetrinim ifarskim sistemima se koriste razliiti kljuevi za ifrovanje i
deifrovanje, tzv. javni i tajni klju, tako da klju za ifrovanje moe imati svako a
samo posednik kljua za deifrovanje moe deifrovati poruku.
Meutim, visoka raunarska zahtevnost ovih algoritama utie na performanse
sistema u kojima se primenjuju, tako da se ne preporuuje primena za zatitu tajnosti
informacija u sistemima sa velikim protokom informacija.
Ovo naravno ne dezavuie automatski ove algoritme jer nain na koji je uz korienje
ovakvih algoritama mogue ostvariti funkcije integriteta, autentinosti i neporicanja
ima nesumnjivu prednost nad tradicionalnim tehnikama.
U literaturi je opisano vie algoritama sa javnim kljuem ali sa stanovita kvaliteta,
otpornosti na razne vrste napada, efikasnost i lakou implementacije te
rasprostranjenost, nisu svi podjednako dobri. U tom smislu se kao prirodni izbor
namee RSA algoritam koji vie od dvadeset godina odoleva svim teorijskim i
tehnolokim napadima.
Opis i nain upotrebe ovog algoritma propisani su u standardu PKCS#1. Pored RSA
algoritma mogue 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 korienjem RSA
asimetrinog algoritma i najee se koristi za konstrukciju digitalnog koverta i
digitalnog potpisa.
31
U sluaju digitalnog koverta, sadraj poruke se prvo ifruje odreenim simetrinim
algoritmom (kao to su DES, 3-DES, RC2, RC4, IDEA, AES, ili neki namenski
privatni algoritmi). Zatim se tajni klju primenjenog simetrinog algoritma koji je
upotrebljen za ifrovanje date poruke ifruje RSA algoritmom upotrebom javnog
kljua korisnika kome je data poruka namenjena (RSA public key operacija).
Tako ifrovan sadraj poruke i tajni klju kojim je ta poruka ifrovana zajedno
predstavljaju digitalni koverat.
Postupak ifrovanja i deifrovanja putem tehnologije digitalnog koverta je prikazan na
slikama 2.16 i 2.17, respektivno.
Slika 2.16: Digitalna envelopa ifrovanje
32
Slika 2.17: Digitalna envelopa deifrovanje
U sluaju digitalnog potpisa, Slika 2.18, sadraj koji treba da se potpie, 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 koristei privatni klju potpisnika poruke (RSA private key operacija), klju
A. ifrovani otisak poruke predstavlja digitalni potpis date poruke, S, i postaje njen
pridrueni deo.
Kada ovakva poruka stigne do primaoca kojem je namenjena izvrava se postupak
verifikacije digitalnog potpisa. Ovaj postupak se sastoji od deifrovanja otiska
dobijene poruke primenom RSA algoritma uz upotrebu javnog kljua poiljaoca
poruke, klju B. Po deifrovanju digitalnog potpisa primalac poruke izvri isti
message digest postupak nad dobijenom porukom, M1.
Ako je dobijeni otisak poruke, H1, identian sa deifrovanom vrednou otiska,
verifikacija je uspela, u protivnom verifikacija je negativna.
Ukoliko je verifikacija uspela, primalac poruke je siguran u sledee:
Autentinost poiljaoca jer je uspeno deifrovao otisak poruke primenom
RSA algoritma sa javnim kljuem datog poiljaoca,
Integritet poslate poruke ako su izraunati i deifrovani otisci date poruke
identini zakljuuje se da poruka na prenosnom putu nije menjana, i
Nemogunost da poiljalac naknadno porekne da je tu poruku poslao jer je
njegov digitalni potpis uspeno verifikovan i ukoliko je potpisnik koristio privatni
klju generisan na smart kartici.
33
Slika 2.18: Procedura digitalnog potpisa i verifikacije
Da bi dati primalac bio u mogunosti da prima poruke od datog poiljaoca i sprovede
proces verifikacije digitalnog potpisa mora imati mogunost pristupa javnom kljuu
poiljaoca. Pristup i distribucija javnih kljueva se mogu organizovati na razliite
naine a najee se realizuju u procesu utvrivanja identiteta putem razmene
digitalnih certifikata.
PKCS#1 standardom se pored bezbednosnih mehanizama definie i unutranja
struktura validnih poruka ime se omoguava dodatni mehanizam verifikacije
ispravnosti poruka. Naime, svaka poruka koja ima naruenu strukturu se smatra
neispravnom i odbacuje se.
Treba posebno naglasiti da je trenutno aktuelan i vaei PKCS#1 standard verzije
2.1 i da su njime znaajno izmenjene preporuke date u PKCS#1 standardu verzije
1.5, koje se odnose na format bloka podataka koji podlee operacijama ifrovanja i
potpisivanja. Razlog za ovakve drastine promene lei u injenici da prema verziji 1.5
pri formiranju bloka za ifrovanje postoji niz bita na poetku bloka koji je uvek isti.
To se moe iskoristiti da se bez poznavanja tajnih informacija, samo uz poznavanje
ifrata doe do otvorenog teksta. Ovde treba naglasiti da ovim nije kompromitovana
bezbednost samog RSA algoritma ve je, grubo govorei, nain njegove upotrebe
bio takav da je pod odreenim uslovima dolazilo do oticanja informacija.
U verziji 2.1 ovog standarda blok podataka koji se ifruje prethodno se kodira OAEP
(Optimal Assymetric Encryption Padding) metodom koja ima dobre bezbednosne
karakteristike tako da ak ni dva identina bloka podataka posle kodiranja ovim
metodom ne daju isti rezultat.
34
Time su izbegnute slabosti detektovane u verziji 1.5. PKCS#1 standard verzije 2.1 je
neophodno primeniti u mehanizmima zatite u specijalizovanim raunarskim
mreama i informacionim sistemima.
2.2.2 RSA algoritam
RSA algoritam je prvi put publikovan 1978. godine. Naziv je dobio po prvim slovima
prezimena autora algoritma (R.L.Rivest, A.Shamir, L.Adleman). Teorijska osnova
algoritma za realizaciju ifrovanja i deifrovanja poruka prikazana je u sledeim
teoremama.
Teorema 1: Linearna kongruencija

( ) m b ax mod
(2.2.2.1)
ima reenje ako i samo ako je NZD(a,m)b (NZD-najvei zajedniki delilac), i u tom
sluaju, ako je
0
x
jedno reenje kongruencije, onda je opte reenje

,
_

d
m
x x mod
0
(2.2.2.2)
gde je
( ) m a NZD d ,
.
Posledica 1a: Ako su brojevi a i m relativno prosti, tj.
( ) 1 , m a NZD
, onda linearna
kongruencija
( ) m b ax mod
ima tano jedno nekongruentno reenje po modulu m.
Teorema 2: (Kineska teorema o ostacima) Ako su
k
n n n , , ,
2 1

po parovima
relativno prosti celi brojevi, tada sistem kongruencija:
( )
1 1
modn a x
( )
2 2
modn a x
. . . (2.2.2.3)

( )
k k
n a x mod
ima jedinstveno reenje po modulu
k
n n n n
2 1

.
Teorema 3: (Ojlerova teorema (L.Euler)) Ako su a i n uzajamno prosti brojevi, onda
je:

( )
( ) n a
n
mod 1

(2.2.2.4)
gde je sa
( ) n
oznaen broj prirodnih brojeva, ne veih od n, uzajamno prostih sa
n.
Posledica 3a: (Fermaova teorema (P. Fermat)) Ako je p prost broj i NZD(a,p)=1,
onda je
35
( ) p a
p
mod 1
1

.
(2.2.2.5)
Posledica 3b: Ako je n proizvod prostih pozitivnih brojeva p, q (n=pq) i NZD(a,n)=1,
onda je

( ) ( )
( ) n a
q p
mod 1
1 1


. (2.2.2.6)
Teorema 4: Neka je proizvod n=pq prirodan broj gde su p i q prosti pozitivni brojevi.
Neka je e prirodan broj takav da je
( ) ( ) 1 1 1 < < q p e
i neka su brojevi e i proizvod
( ) ( ) 1 1 q p
relativno proste veliine. Tada postoji prirodan broj d takav da je:
( ) ( ) ( ) 1 1 mod
1


q p e d (2.2.2.7)
i za svaki prirodan broj a, 0 a < n vai:

( ) n a a
d e
mod

(2.2.2.8)
Dokaz:
Kako su brojevi e i proizvod brojeva
( ) ( ) 1 1 q p
relativno proste veliine tada se
moe, na osnovu teoreme 2, zakljuiti da postoji prirodan broj d takav da je
ispunjeno:

( ) ( ) ( ) 1 1 mod 1 q p d e
(2.2.2.9)
Dati proizvod se moe predstaviti na sledei nain:


( ) ( ) 1 1 1 + q p A d e
(2.2.2.10)
gde je A prirodan broj.
Moe se dokazati da za proizvoljan broj a vai
( ) n a a
d e
mod

.
Neka su a i n relativno prosti brojevi (NZD(a,n)=1), tada je prema Ojlerovoj teoremi
(2.2.2.4):

( ) ( )
( )
( ) ( )
( )
( )
( ) n a
n a
n a a
n a a
A
A q p
q p A d e
mod
mod 1
mod ) (
mod
1 1
1 1 1


+
(2.2.2.11)
Neka je NZD(a,n)>1 i 0 a < n. Tada je, s obzirom na oblik broja n, NZD(a,n)=p ili je
NZD(a,n)=q. Ako se pretpostavi da je NZD(a,n)=p, tada je, prema Fermaovoj teoremi
(2.2.2.5):
) mod( ) mod( p 0 p a a
d e

(2.2.2.12)
36


( ) ( )
( ) ( )
( )
) mod(
) mod( 1
) mod( ) (
) mod(
) 1
1 1
1 1 1
q a a
q a a
q a a a
q a a
d e
p A d e
p A q d e
q p A d e



+
(2.2.2.13)
Kako su p i q prosti brojevi, prema kineskoj teoremi o ostacima (2.2.2.3), sistem
kongruencija:
( ) p X a
d e
mod

(2.2.2.14)
( ) q X a
d e
mod

ima jedinstveno reenje X koje je manje od n=pq. Prema prethodnom a je jedno


takvo reenje pa prema tome i jedino. Na isti nain se postupa u sluaju da je
NZD(a,n)=q. Prema prethodno navedenom, pokazuje se da je u bilo kom sluaju
zadovoljeno ( ) ) mod(n a a
d e

.
Algoritam za transformaciju poruka baziran na navedenoj teoremi odvija se na
sledei nain.
Neka je M poruka koju je potrebno transformisati.
Prvi korak u realizaciji algoritma je odabir prostih pozitivnih brojeva p, q i
odreivanje vrednosti njihovog proizvoda n=pq.
U sledeem koraku bira se prirodan broj e,
( ) ( ) 1 1 1 < < q p e
takav da je
( ) ( ) ( ) 1 1 1 , q p e NZD
.
Nakon odabira vrednosti za e se izraunava broj d takav da je
( ) ( ) ( ) 1 1 mod
1


q p e d .
Proces transformacije poruka odvija se na sledei nain. Ako se sa M oznai
numeriki ekvivalent poruke M i napie u obliku M=M
1
M
2
M
k
gde je 0 M
i
< n, i=1,
2, , k; tada se za svako M
i
, i=1, 2, , k izrauna:
) mod(n M C
e
i i
(2.2.2.15)
Poruka C=C
1
C
2
C
k
predstavlja transformisani oblik poruke M i u datom obliku se
poruka M prenosi primaocu komunikacionim kanalima. Primalac rekonstruie poruku
tako to znajui vrednosti d, p i q izraunava:
) mod(n M C
i
d
i
(2.2.2.16)
i ulanavanjem formira originalnu poruku M=M
1
M
2
M
k
. Korektnost navedenog
naina transformacije i rekonstrukcije poruka direktna je posledica teoreme 4.
Ureeni par (e,n) je javni klju a ureena trojka (d,p,q) je tajni klju RSA algoritma.
37
Po bezbednosnoj klasifikaciji prethodni algoritam spada u klasu raunski bezbednih
sistema. Sigurnost ovog algoritma bazira se na nepoznavanju efikasnog algoritma za
faktorizaciju prirodnih brojeva i direktno zavisi od veliine broja n (koja se moe
izraavati brojem cifara u dekadnom ili binarnom zapisu).
Pored asimetrinog kriptografskog algoritma, u asimetrinim sistemima je od
izuzetne vanosti izbor odgovarajueg algoritma za generisanje asimetrinog para
kljueva. U sluaju da je asimetrini algoritam RSA algoritam, generisanje kljueva
se odnosi na generisanje velikih sluajnih prostih brojeva. U tom smislu, takoe su
veoma znaajni algoritmi za proveru da li su izgenerisani kljuevi prosti brojevi.
Testovi da li je odgovarajui broj prost generalno se mogu podeliti na dva tipa:
Verovatnosni testovi,
Testovi za dokazivanje da je dati broj prost.
Testovi prve grupe su generalno takvi da, kao rezultat, daju podatak da li je broj
sloen ili se ponaa kao prost. U prvom sluaju broj je sigurno sloen, i kao takav ne
moe biti prost, a u drugom sluaju postoji verovatnoa da se ponaa kao prost ali da
nije takav. U ovu grupu testova spadaju Fermaov, Solovej-Strasenov i Miler-Rabinov
test.
Testovi druge grupe predstavljaju metode kojim se moe dokazati da je broj prost.
Generalno ove metode su raunarski veoma zahtevne. U ovu grupu testova spadaju
Poklingtonov test, test Jakobijevih suma i test zasnovan na eliptikim krivim.
U ovom generikom modelu predlae se Miler-Rabinov test koji se odvija prema
sledeoj proceduri (
n
je broj koji se proverava da li je prost):
1. Stavimo m n
k
2 1 gde je t neparan broj
2. Izaberimo sluajno broj
. 1 0 , < n a a
3.
n a b
m
mod
4. Ako je
n b mod 1
tada je
n
prost i kraj.
5. Od 0 i do 1 k radi
Ako je
n b mod 1
tada je
n
prost i kraj,
inae
n b b mod
2


6.
n
je sloen i kraj
Moe se pokazati da je verovatnoa greke ovog algoritma, verovatnoa da se broj
proglasi prostim kada on to nije, jednaka
4
1
. Nezavisnim izborom razliitih vrednosti
za a i sukcesivnim ponavljanjem testa greka se moe uiniti proizvoljno malom.
Ovaj test je bolji od Fermaovog i Solovej-Strasenovog u smislu da je kod njega broj
lanih prostih brojeva najmanji.
38
2.3 Message digest algoritmi
Takozvane jednokorane hash ili message digest funkcije H(M) izvravaju se nad
porukom M proizvoljne duine, proizvodei hash vrednost h=H(M) fiksne duine m.
Hash funkcije treba da zadovolje sledee karakteristike:
Za datu poruku M, treba da je relativno jednostavno izgenerisati h,
Za dato h, treba da je izuzetno teko izraunati M tako da je H(M)=h,
Za dato M, treba da je izuzetno teko nai drugu poruku M takvu da je
ispunjeno H(M)=H(M).
Algoritam MD5 zadovoljava gore navedene karakteristike i predstavlja jedan od
najee korienih hash algoritama. Pored toga ovaj algoritam je specificiran za
korienje u okviru standarda PKCS#1. Algoritam MD5 produkuje 128-bitnu hash
vrednost. Pored ovog algoritma, kao to je vee reeno, mogua je opcija korienja
SHA-1 hash algoritma koji produkuje 160-bitnu hash vrednost. U nastavku je kao
primer dat kratak opis MD5 i SHA-1 algoritma.
Meutim, u poslednjih par godina se dolo do saznanja da poemnuti hash algoritmi,
posebno MD5, imaju prilino velike slabosti i da se vie ne preporuuju za korienje.
Umesto tog algoritma, predlae se korienje novih SHA algoritama: SHA-224, SHA-
256, SHA-384 i SHA-512.
2.3.1 MD5 message digest algoritam
Nakon odreenog inicijalnog procesiranja, MD5 algoritam procesira ulaznu poruku u
blokovima od 512 bita, podeljenim u 16 podblokova duine 32 bita. Naime, prvo se
poruka proiruje na taj nain da se dobije poruka koja je po duini tano 64 bita kraa
od odgovarajueg multipla od 512 bita.
Proirivanje je vrlo jednostavno, prvo se na kraj poruke doda jedan bit jedinice,
praen zahtevanim brojem nula. Zatim se 64-bitna reprezentacija duine poruke
prikljui rezultatu. Ova dva koraka slue u cilju formiranja poruke ija je duina tano
multipl od 512 bita, to se zahteva u algoritmu, obezbeujui pri tome da razliite
poruke nee izgledati isto nakon pomenutog proirivanja. Izlaz algoritma predstavlja
skup od 4 32-bitna bloka, spojena tako da jednoznano formiraju 128-bitnu hash
vrednost.
Algoritam se sastoji od sledeih koraka:
Prvo se poruka obradi tako da je njena duina tano multipl od 512 bita,
Zatim se inicijalizuju 4 32-bitne promenljive (tzv. promenljive ulanavanja):
A=0x01234567
B=0x89abcdef
39
C=0xfedcba98
D=0x76543210
Zatim poinje glavna petlja algoritma koja se izvrava za sve blokove duine
512 bita date poruke. etiri inicijalne promenljive se kopiraju u promenljive a,
b, b i d. Glavna petlja se sastoji od 4 faze koje su veoma sline. Svaka faza
koristi razliitu operaciju 16 puta, koja se sastoji od primene odreene
nelinearne funkcije nad tri od etiri promenljive a, b, c ili d. Zatim se tako
dobijeni rezultat dodaje etvrtoj promenljivoj, podbloku poruke i jednoj
konstanti. Dobijeni rezultat se rotira ulevo promenljivi broj bita i dodaje se
jednoj od etiri promenljive a, b, c ili d. Na kraju rezultat zamenjuje jednu od
promenljivih a, b, c ili d. Videti Slike 2.19 i 2.20.
Postoje etiri nelinearne funkcije, po jedna se koristi u svakoj operaciji:
F(X,Y,Z) = (X ^ Y) v (( 1 X) ^ Z)
G(X,Y,Z) = (X ^ Z)v (Y ^ (1 Z)
H(X,Y,Z) = X Y Z
I(X,Y,Z) = Y (X v (1 Z ))
gde navedeni funkcijski znaci predstavljaju ( - XOR funkcija, ^ - AND funkcija, v -
OR funkcija, i 1 - NOT funkcija).
Slika 2.19: Glavna petlja MD5 algoritma
40


1 2 3 4

B B
C C
D D
+
+
+
+













a

b

c

d


<<< S
+ + + +
M
j
t
i
Slika 2.20: Jedna operacija MD5 algoritma
Ako M
j
predstavlja j-ti podblok poruke, j=0, , 15, a <<< s predstavlja funkciju
cirkularnog iftovanja za s bita, tada se pomenute etiri operacije mogu predstaviti na
sledei nain:
FF(a,b,c,d,M
j
,s,t
i
) oznaava: a = b + ((a + F(b,c,d) + M
j
+ t
i
) <<< s)
GG(a,b,c,d,M
j
,s,t
i
) oznaava: a = b + ((a + G(b,c,d) + M
j
+ t
i
) <<< s)
HH(a,b,c,d,M
j
,s,t
i
) oznaava: a = b + ((a + H(b,c,d) + M
j
+ t
i
) <<< s)
II(a,b,c,d,M
j
,s,t
i
) oznaava: a = b + ((a + I(b,c,d) + M
j
+ t
i
) <<< s)
Nakon prethodno opisanog postupka, a, b, c i d se dodaju na A, B, C i D,
respektivno, i algoritam nastavlja sa narednim blokom podataka. Krajnji rezultat se
formira konkatenacijom od dobijenih A, B, C i D.
2.3.2 SHA-1 algoritam
SHA-1 algoritam takoe procesira ulaznu poruku u blokovima od 512 bita,
podeljenim u 16 podblokova duine 32 bita.
Prvo se poruka proiruje na isti nain kao i u MD5 algoritmu, tako da se dobije
poruka koja je po duini tano 64 bita kraa od odgovarajueg multipla od 512 bita.
Naime, prvo se na kraj poruke doda jedan bit jedinice, praen zahtevanim brojem
nula. Zatim se 64-bitna reprezentacija duine poruke prikljui rezultatu.
Izlaz algoritma predstavlja skup od 5 32-bitna bloka, spojena tako da jednoznano
formiraju 160-bitnu hash vrednost.
Algoritam se sastoji od sledeih koraka:
41
Prvo se poruka obradi tako da je njena duina tano multipl od 512 bita
Zatim se inicijalizuju 5 32-bitne promenljive (tzv. promenljive ulanavanja)
A=0x67452301
B=0xefcdab89
C=0x98badcfe
D=0x10325476
E=0xc3d2elf0
Zatim poinje glavna petlja algoritma koja se izvrava za sve blokove duine
512 bita date poruke.
5 inicijalnih promenljivih se kopira u promenljive a, b, c, d i e.
Glavna petlja se sastoji od 4 faze koje su veoma sline. Svaka faza koristi
razliitu operaciju 20 puta, koja se sastoji od primene odreene nelinearne
funkcije nad tri od pet promenljivih a, b, c, d ili e. Zatim se tako dobijeni
rezultat procesira slino kao i u MD5 algoritmu.
Nakon prethodno opisanog postupka nad prvim blokom podataka, izraunate
vrednosti promenljivih a, b, c, d i e se dodaju na A, B, C. D i E, respektivno, i
algoritam nastavlja sa narednim blokom podataka.
Krajnji rezultat se formira konkatenacijom od dobijenih A, B, C, D i E.
Blok poruke se transformie od 16 32-bitnih rei (M0, ..., M15) u 80 32-bitnih rei
(W0, , W79) prema sledeem:
Wt=Mt za t=0 do 15
Wt=(Wt-3 Wt-8 Wt-14 Wt-16) <<< 1, za t=16 do 79
Glavna petlja se moe opisati na sledei nain:
Za t=0 do 79
if 0 i 19 then
f := (b and c) or ((not b) and d)
k := 0x5A827999
else if 20 i 39
f := b xor c xor d
k := 0x6ED9EBA1
else if 40 i 59
f := (b and c) or (b and d) or (c and d)
k := 0x8F1BBCDC
42
else if 60 i 79
f := b xor c xor d
k := 0xCA62C1D6
end
TEMP=(a<<<5)+F(b,c,d)+e+Wt+Kt
e=d
d=c
c=b<<<30
b=a
a=TEMP
3.4 Primena kriptografskih algoritama u informacionim
sistemima
U prethodnom tekstu bilo je rei o kriptografskim tehnikama koje se mogu koristiti pri
dizajniranju i realizaciji sistema za zatitu informacija. Kriptografske tehnike koje se
koriste smo svrstali u dve grupe, simetrine i asimetrine kriptografske sisteme. Sa
stanovita bezbednosnih usluga jasno je da se uz manje ili vee probleme pri
realizaciji u svakom od ovih sistema moe realizovati veina osnovnih bezbednosnih
servisa.
U obe vrste sistema neosporno se moe postii poverljivost podataka. injenica je
da simetrini sistemi na bazi sluajnog i pseudosluajnog niza pruaju vii nivo
bezbednosti od asimetrinih sistema pri istim duinama kljueva. Takoe, asimetrini
sistemi su znatno sporiji od simetrinih sistema i neophodni su im kljuevi znatno
vee duine. Sa druge strane kod simetrinih sistema u sluaju intenzivnog
saobraaja javlja se problem distribucije kljueva.
to se tie utvrivanja autentinosti i identiteta subjekta u komunikaciji to se izuzetno
kvalitetno realizuje u asimetrinim sistemima korienjem tehnike digitalnog potpisa
uz upotrebu digitalnih certifikata. U simetrinim sistemima takoe se mogu realizovati
sistemi za autentikaciju, najpoznatiji je Kerberos, ali sa stanovita logike samog
procesa autentifikacije tu postoji jedna nepremostiva tekoa. Naime u takvim
sistemima uvek postoji trea strana od poverenja koja aktivno uestvuje u procesu
autentikacije, te kao takva predstavlja potencijalni izvor opasnosti.
to se tie zatite integriteta podataka u oba sistema se pomenuti servis relativno
lako realizuje a kao kriterijum se uzima uspeno deifrovanje (struktura i sadraj
poruke).
Kod realizacije servisa neporicanja kod simetrinih sistema se javlja problem
postojanja aktivne tree strane od poverenja koja u spornim situacijama vri
arbitrau. Prednost asimetrinih sistema u ovom sluaju je u tome to je subjekt sam
43
u stanju da prui dokaze uea drugog entiteta u transakciji ukoliko su ostali
bezbednosni mehanizmi sistema adekvatni (pasivna trea strana od poverenja).
Iz prethodnog izlaganja prirodno proistiu zakljuci o koncepciji sistema zatite u
savremenim informacionim sistemima i raunarskim mreama. Najjednostavnije i
najloginije je formirati sistem koji koristi dobre strane i jednih i drugih kriptografskih
algoritama, pogotovu to su oni po svojim dobrim osobinama komplementarni.
Prema tome najefikasniji pristup u koncipiranju savremenih sistema zatite je
formiranje hibridnog sistema koji koristi dobre osobine i jednih i drugih sistema, pa
tako za utvrivanje autentinosti, zatite integriteta i obezbeenje neporicanja treba
koristiti asimetrine sisteme a za zatitu tajnosti podataka simetrine kriptografske
algoritme.
Od algoritama sa javnim kljuem prirodan izbor bi bio RSA algoritam zbog svoje
robusnosti i injenice da se isti algoritam koristi i za ifrovanje i za potpisivanje
poruka. Rasprostranjenost ovog algoritma u primenama uinila ga je vaeim de
facto standardom u toj klasi.
44