Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

1.

Tipovi kriptografskih
algoritama
One-time pad (OTP), koju takođe nazivamo
vermanmova šifra ili savršena šifra, je

Y  y j , j  1,, LM 
2. Vernamova šifra kriptografski algoritam gdje se tekst kombinuje sa
3. Shannon-ova teorema slučajnim ključem. To je jedina postojeća Због тога истом отвореном тексту X  x може
savršene tajnosti matematički neprobojna enkripcija.Korištena od са једнаком вероватноћом одговарати сваки од
4. Sekvencijalni simetrični strane tima za specijalne operacije i otpor u
šifarski sistemi drugom svjetskom ratu, popularna među LM могућих шифрата.
Sistemi sa slučajim nizom obavještajnim službama i njihovim špijunima
PY  y   PY  y X  x  L M
5.
6. Generatori tokom hladnog rata, čuva diplomatkse i vojne
pseudoslučajnih nizova prenose poruka širom svejta tokom mnogo Зато важи:
(GPSN) decenija, Vernamova šifra dobila je reputaciju kao Због тога је количина информације коју носи
7. RC4 algoritam jednostavna ali čvrsta enkipcija sa apsolutnom шифрат о отвореном тексту једнака нули, тј. X
8. Blok šifarski sistemi sigurnošću koju nisu nadmašili ni današnji и Y су статистички независни, па стога сума по
9. DES algoritam moderni kripto algoritmi. Kakav god tehnološki модулу L испуњава услове савршене тајности.
10. 3DES algoritam napredak se desio u budućnosti, one time pad Када је L=2, овај систем се своди на
11. IDEA algoritam enkripcija je, i ostaće, jedina zaista neprobojna Вернамову шифру.
12. AES algoritam enkripcija koja pruža realnu privatnost poruka na
13. Kriptografski modovi blok duži period. Možemo pričati o one-time pad samo 4. Sekvencijalni simetrični šifarski sistemi
šifarskih algoritama ako su ispunjena važna pravila. Ako su ova
14. Problemi simetričnih pravila pravilno primjenjena može se dokazati da
šifarskih sistema je ova enkripcija neprobojna. Čak i neograničena
15. Asimetrični kriptografski komjuterska snaga i neograničeno vrijeme ne Sinhroni sekvencijalni šifarski sistemi su oni
algoritmi može dekriptovati one-time-pad enkripciju kod kojih se niz ključa generiše nezavisno od
16. Diffie-Hellman protokol jednostano zato jer je to matematički nemoguće. otvorenog teksta i šifrata. Proces šifrovanja se
17. RSA algoritam Ako se bilo koje pravilo prekrši, šifra više nije može opisati sledećim skupom jednačina.
18. Osnovne karakteristike neprobojna.  i 1  f ( i , k )
hash funkcija -Ključ je dug najmanje onoliko kolika je i poruka ili
19. MD5 algoritam podaci koji trebaju biti kriptovani. z i  g ( i , k )
20. SHA-1 algoritam -Ključ je zaista slučajan (nije generisan od strane
21. SHA-2 familija algoritama jednostavne kompjuterse funkcije ili slično) c i  h ( z i , mi )
22. DSA algoritam za digitalni -Ključ i test se računaju modulo 10 (cifara),
potps modulo 26 (slova) ili modulo 2 (binarno) Gde se početno stanje, ơ0, određuje na osnovu
23. ECDSA algoritam za -Svaki ključ je korišten samo jednom, i pošiljalac i inicijalne vrednosti k, f je funkcija sledećeg stanja,
digitalni potpis primaoc moraju uništiti ključ nakon upotrebe.
24. Digitalni potpis (RSA) -Treba da budu samo dvije kopije ključa, jedna za
g je funkcija koja produkuje niz ključa zi ah
25. Digitalna envelopa (RSA) pošiljaoca i jedna za primaoca
26. Trenutno aktuelni izlazna funkcija koja od otvorenog teksta mi i
kriptografski algoritmi i 3. Shanon-ova teorema savršene tajnosti
dužine ključeva
Основне хипотезе:
niza ključa zi formira šifrat ci .
27. Faktori autentikacije
korisnika Тајни кључ се користи само једном. Kod ovih sistema niz ključa se generiše nezavisno
28. Kod za autentikaciju od niza jedinica poruke. Na obe strane u
poruke (MAC) – CBC MAC Криптоаналитичар има приступ једино komunikaciji se istovremeno generišu nizovi
algoritam криптограму. ključa. Učesnici u komunikaciji su u stanju da
29. Kod za autentikaciju razmenjuju poruke sve dotle dok su algoritmi za
poruke (MAC) - HMAC Шифарски систем испуњава услове савршене
тајности ако је отворени текст X статистички generisanje niza ključa sinhronizovani među
algoritam sobom. Ukoliko se desi gubitak ili umetanje
30. OTP – Lamport-ova šema независтан од криптограма Y.
jednog ili više jedinica tokom prenosa ST,
31. HOTP (HMAC OTP) dešifrovanje će biti nekorektno. U slučaju takvog
математички:
algoritam - OATH događaja, generatori niza ključa na predajnoj i
32. TOTP (Time based OTP) P( X  x Y  y)  P( X  x)
prijemnoj strani moraju se resinhronizovati, pre
algoritam - OATH nego što nastave komunikaciju. Sa druge strane,
33. Challenge-response за све могуће отворене текстове
u ovim sitemima se ne propagira greška i svaki
x  x1 , x2 ,, xM 
algoritmi na bazi pogrešan bit u prenosu ostaće i u dešifrovanom
simetričnog ključa i obliku pogrešan, ali ta greška neće uticati ni na
simetričnog algoritma prethodne ni na buduće bite za prenos. Prethodno
34. Challenge-response и све могуће криптограме navedena osobina može poslužiti aktivnom
algoritmi na bazi protivniku kao osnova za različite vrste pokušaja
simetričnog ključa i HMAC y   y1 , y2 ,, y N  kompromitovanja ovakvog sistema.
algoritma
35. OCRA algoritam - OATH Дужина кључа K мора бити најмање једнака 5. Sistemi sa slučajim nizom
Challenge/response
дужини отвореног текста M. K  M kod ovih sistema niz ključa se generiše na
autentikacija
36. Challenge-response У случају Вернамове шифре у горњој релацији slučajan način, tako što se jedinice ključa
algoritmi na bazi важи знак једнакости. generišu nezavisno i slučajno. Ako se prema
asimetrične kriptografije – prethodnim oznakama za funkciju f uzme
šifrovanje javnim ključem Алгоритам шифровања код кога отворени ekskluzivna disjunkcija, tada se dobija takozvani
37. Challenge-response текст, шифрат и кључ узимају вредности L - “one time pad” sistem za koji se može teorijski
algoritmi na bazi арног алфабета и у коме су дужине кључа K, pokazati da je apsolutno siguran, tj. da šifrat ne
asimetrične kriptografije – шифрата N и отвореног текста M међусобно nosi nikakvu informaciju o otvorenom tekstu. Sa
digitalni potpis једнаке. У том случају, број могућих отворених druge strane taj sistem je i optimalan u smislu da
38. Zero-Knowledge koristi najkraći ključ kojim se postiže apsolutna
текстова, шифрата и кључева је једнак: LM . sigurnost. Naime, Šenon je u svojim radovima
challenge-response
Претпоставља се следеће: pokazao da je neophodan uslov za apsolutnu
algoritmi
39. TDS (Transaction Data bezbednost da entropija ključa bude veća ili
Кључ се бира на потпуно случајан начин:
Signature) algoritmi jednaka od entropije poruke. Kako je kod ovog
P(Z  z )  L M sistema entropija ključa jednaka dužini poruke,
40. SMS OTP sistemi
41. SDA autentikacija putem čija entropija ne može biti veća od njene dužine,
EMV platnih kartica За свих LM могућих вредности z тајног to sledi da je ovo zbilja optimalan sistem u
42. DDA autentikacija putem кључа. navedenom smislu. Nedostatak ovog sistema je u
EMV platnih kartica činjenici da oba učesnika komunikacije moraju
43. CAP/DPA sistem dvo- Шифарска трансформација је: imati isti niz ključa koji mora biti tajan, što
faktorske autentikacije Yi  X i  Z i , i  1,, M  proizvodi, ponekad nepremostive, probleme u
upotrebom platnih kartica upravljanju ključevima jer treba obezbediti i
dostaviti stranama u komunikaciji velike količine
1.Tipovi kriptografskih algoritama За фиксни отворени текст X  x свакој могућој ključeva kako bi mogle nesmetano da
Simetirčni kriptografski algoritmi
вредности кључа

Z  z j , j  1,, LM 
одговара
komuniciraju.
Asimetrični kriptografski algoritmi
Hash funkcije јединствени шифрат 6. Generatori pseudoslučajnih nizova (GPSN)
2.Vernamova šifra
1

Vuk Bundalo
generatora uz minimalnu cijenu kvalitete niza U 2001. godini, NIST organizacija u SAD je
LCG i LFG su dvije osnovne vrste generatora (poboljšani generator ostaje i dalje kriptografski usvojila novi standard AES (Advanced Encryption
pseudoslučajnih brojeva. LCG se još i danas siguran u određenim uvjetima). Važno je međutim Standard). Kao primer jednog blok šifarskog
najčešće upotrebljava unatoč činjenici da napomenuti da se svaki postupak optimizacije algoritma, daćemo kratak opis AES simetričnog
generirani niz brojeva pokazuje mnoge pravilnosti mora izvesti uz maksimalni oprez jer pojava blok kriptografskog algoritma.
(pogotovo pri grupiranju n-torki). Razlog tome leži korelacije među susjednim bitovima bitno
u činjenici da je za većinu primjena LCG sasvim povećava mogućnost provale. 9. DES algoritam
dovoljan generator, njegova izvedba je
7. RC4 algoritam DES je zvanično objavljen 1976. godine. Iako se
jednostavna, memorijski zahtjevi su mali i
danas smatra nesigurnim za većinu aplikacija
generirani niz izgleda dovoljno “slučajan”. U
RC4 je najkorišteniji sekvencijalni algoritam i zbog veoma kratkog ključa (56 bita), on
primjenama većih računalnih simulacija, gdje je
koristi se u popularnim protokolima kao što su predstavlja teoretsku osnovu za sve blok šifarske
potrebno generirati veliki broj slučajnih brojeva
SSL i WEP. Izvrstan je zbog jednostavnosti i algoritme. Na osnovu njega su izgrađeni i njegovi
(tipično, iznad 232), LCG nije nikako primjenjiv i
brzine, ali je sa druge strane ranjiv na napade naslednici koji su danas u upotrebi (AES, 3DES).
njegova upotreba se ne savjetuje. U takvim
kada početak izlaznog niza nije odbačen ili kada DES je simetrični blok šifarski algoritam koji za
situacijama, LFG generator se pokazuje kao
se jedan ključ koristi dvaput. ulaz uzima string fiksne dužine i serijom
dobra kombinacija brzine i kvalitete uz određene
komplikovanih transformacija ga transformiše u
memorijske zathjeve. Dodatno se često
šifrovani tekst iste dužine. Kod DES-a veličina
upotrebljavaju kombinacije dva generatora (npr.
bloka je 64 bita. Pošto spada u simetrične
dva LCG generatora ili LCG i LFG generator). RC4 je jednostavan za opis. Ima 256 S-box-ova.
algoritme, dekripcija se može izvršiti samo uz
Teoretski (i u praksi) je pokazano da kombinacija Ulazi su permutacija brojeva od 0 do 255, a
poznavanje ključa kojim je izvršeno enkritpovanje.
dva generatora daje barem jednako dobar (ili loš) permutacija je funkcija ključa promenljive dužine.
Ključ se sastoji od 64 bita, ali algoritam koristi
generator. Pažljivim izborom parametara oba Ima dva brojača, i i j, postavljena na 0. Za
samo njih 56. Preostalih 8 se koristi samo za
generatora, njihovom kombinacijom period se generisanje slučajnog bajta koristi se sledeći
provjeru parnosti i zatim se odbacuju.
može znatno povećati i ostala “slučajna” svojstva algoritam:
poboljšati, ali na račun brzine i eventualno Struktura algoritma Sastoji se od 16 identičnih
memorijskih zahtjeva. Iako je već ranije faza, koje se nazivaju rundama, Osim njih postoje
spomenuto da je zahtjev brzine generiranja i inicijalna i završna permutacija, koje su inverzne
i = (i + 1) mod 256
brojeva sekundarni zahtjev, o tome ipak treba operacije. Međutim, one nemaju kriptografski
voditi riječ, ako se generatori upotrebljavaju u j = (j + Si) mod 256 značaj. Pre početka glavnih rundi blok se se dijeli
računalnim simulacijama. Naime u takvim na dve 32-bitne polovine koje se procesiraju
situacijama se generira veliki broj slučajnih zamijeni Si i Sj naizmenično. Ovo ukrštanje se naziva Feistel-ova
brojeva te je naravno brzina generatora vrlo šema. Feistel-ova struktura osigurava da su
važan faktor. t = (Si + Sj) mod 256
enkripcija i dekripcija vrlo slični procesi. Jedina
KRIPTOGRAFSKI SIGURNI GENERATORI razlika je da se potključevi primenjuju u obrnutom
K = St .
PSEUDOSLUČAJNIH BROJEVA (BITOVA) redosledu u dekripciji. Ostatak algoritma je
ANSI X9.17 generator Bajt K se XOR-uje sa otvorenim tekstom da bi se identičan. Ovo uveliko olakšava implementaciju
ANSI X9.17 generator kao funkciju upotrebljava dobio šifrat ili XOR-uje sa šifratom da bi se dobio DES-a jer nema potrebe za razdvajanje
trostruko E-D-E kriptiranje sa dva ključa DES otvoreni tekst. Enkripcija je brza (oko 10 puta brža enkripcionog i dekripcionog algoritma.U svakoj od
algoritmom. Trostruko E-D-E kriptiranje se definira nego kod DES-a). Inicijalizacija S-box-ova je 16 rundi jedna polovina bloka prolazi kroz F
na slijedeći način: takođe lagana. funkciju koja šifruje tu polovinu pomoću
E(x) = EK3(DK2(EK1(x))), Prvo se popunjavaju linearno: S0 = 0, S1 = 1,..., odgovarajućeg potključa. Izlaz iz F funkcije se
gdje EK(x) označava kriptiranje uz pomoć ključa S255 = 255. Zatim se generiše drugi 256-bajtni niz tada kombinuje sa drugom polovinom bloka
K, a DK(x) označava dekriptiranje uz pomoć ključa ključa, ponavljajući ključ koliko je potrebno da se pomoću XOR operacije. Zatim polovine bloka
K. Ako se uzme da vrijedi: popuni cijeli niz: K0, K1,..., K255. Indeks j se zamene mjesta prije početka sljedeće runde.
K1 = K3, postavlja na 0. Tada se izvršava sljedeća petlja: Nakon završne runde polovine ne menjaju mjesta.
tada je riječ o trostrukom E-D-E kriptiranju sa dva
ključa. Ulazni podaci generatora su: slučajni 64- for i = 0:255 10.3DES algoritam
bitni podatak s (seed), cijeli broj m i ključevi
kriptiranja K1 i K2. Algoritam se odvija prema j = (j + Si + Ki) mod 256 Triple DES je blok šifarski algoritam formiran
slijedećim koracima: korištenjem DES-a tri puta. Kad je otkriveno da
zameni Si i Sj. 56-bitni ključ DES-a nije dovoljan da se algoritam
1. računa se pomoćna vrijednost I = zaštiti od brute force napada, 3DES je izabran
Algoritam je imun na diferencijalnu i linearnu
E(D), gdje je D 64-bitni zapis kao jednostavan način da se proširi ključ bez
kriptoanalizu i krajnje je nelinearan. Indeks i
trenutnog vremena potrebe prebacivanja na novi algoritam. Korištenje
osigurava da se svaki element menja, a indeks j
2. za i = 1 do m računa se: xi = E(I XOR tri koraka je esencijalno u sprečavanju meet-in-
da se elementi menjaju slučajno.
s) i s = E(xi XOR I) the-middle napada koji su efektni protiv duple
3. rezultat je niz 64-bitnih slučajnih 8. Blok šifarski sistemi DES enkripcije. Bitna je činjenica da DES nije
brojeva x1, … ,xm algebarska grupa. Da jeste, 3DES konstrukcija bi
Blok šifarski sistemi procesiraju blokove bila ekvivalentna običnom DES-u i ne bi bila
Važno je napomenuti da za ovaj algoritam nije nešifrovanog signala - otvorenog teksta (OT) i sigurnija.
formalno dokazano da je kriptografski siguran. šifrovanog signala – šifrata (ST), obično u
Međutim generator se pokazao upotrebljivim blokovima čija je veličina 64 bita ili više. Najjednostavnija varijanta 3DES-a ima sljedeću
(dovoljno sigurnim) u većini primjena. Prednost Sekvencijalni šifarski sistemi procesiraju nizove šemu:
ovog generatora u odnosu na dokazane bita, bajtova ili reči (16 ili 32 bita) OT i ST.
kriptografski sigurne generatore je jednostavnija DES(k3;DES(k2;DES(k1;M))),
izvedba i bitno veća brzina. Ako se u toku procesa šifrovanja jedne poruke
gde je M blok poruke koja se enkriptuje, a k1, k2, i
RSA generator pseudoslučajnih brojeva nekim blok šifarskim sistemom više puta
k3 su DES ključevi. Ova varijanta se popularno
Algoritam generatora se odvija prema slijedećim pojavljuje isti blok otvorenog teksta (OT) rezultat
naziva EEE pošto su sve tri DES operacije
koracima: će biti uvek isti blok šifrata (ST), što nije slučaj
enkripcije. Da bi se pojednostavnila
kod sekvencijalnih šifarskih sistema.
1. Potrebno je generirati dva velika interoperabilnost između DES-a i 3DES-a srednji
prosta broja p i q te izračunati Kod sekvencijalnih šifarskih sistema verovatnoća korak se obično zamenjuje dekripcijom (EDE
umnoške n = pq i L(n) = (p – 1)(q – 1). da isti niz bita, bajtova ili reči OT pri svakom mod):DES(k3;DES-1(k2;DES(k1;M))).
Nadalje je potrebno odabrati slučajni pojavljivanju u jednoj poruci proizvodi isti šifrat
Na taj način se jedna DES enkripcija sa ključem k
broj e, 1 < e < L(n), takav da vrijedi teži nuli ukoliko su niz za šifrovanje i otvoreni
predstavlja kao 3DES-EDE gdje je k1 = k2 = k3 =
gcd(e,L(n)) = 1 (gcd je najveća tekst nezavisni. Blok šifarski sistemi se veoma
k. Izbor dekripcije kao srednjeg koraka ne utiče na
zajednička mjera). mnogo koriste u sistemima poslovnih i finansijskih
sigurnost algoritma. Uopšteno, 3DES sa tri
2. Potrebno je odabrati slučajni cijeli broj transakcija, ali su njihove bezbednosne osobine
različita ključa ima dužinu ključa od 168 bita - tri
x0 (seed) u intervalu [1, n - 1]. dosta slabije od sekvencijalnih šifarskih sistema.
DES ključa po 56 bita, ali zbog meet-in-the-middle
3. za i = 1 do l računa se: xi = xei-1 mod n
napada efektivna dužina je samo 112 bita. 3DES
i zi = najmanje značajni bit iz xi
lagano izlazi iz upotrebe i uveliko se zamijenjuje
Dobiveni rezultat je niz slučajnih bitova z1, …, zl. I pored toga definisan je veliki broj javnih sa AES-om. Izuzetak je industriji elektronskog
Važno je primjetiti da se brojevi generiraju sporo algoritama baziranih na blok šifarskim sistemima, plaćanja gdje se i dalje proizvode novi 3DES
(u odnosu na dosad prikazane generatore), zbog kao što su DES, 3-DES, RC2, IDEA, i mnogi drugi standardi. Ovo garantuje da će 3DES ostati
razloga što je potrebno računati potenciju velikog koji su našli veoma široku primenu u savremenim aktivan kriptografski standard još dugo vremena.
broja (tipično par stotina bitova) te ostatak informacionim sistemima. Zbog samog dizajna DES, a samim tim i 3DES,
dijeljenja sa velikim brojem (iste veličine) što su softverski spori. Na modernim procesorima
naravno nije sklopovski podržano. Postoje AES je oko 6 puta brži. 3DES daje nešto bolje
određene metode koje donekle mogu ubrzati rad performanse u hardverskim implementacijama, ali

Vuk Bundalo
i tu AES daje bolje rezultate. Konačno, AES nudi  CFB (Cipher FeedBack) i
veću sigurnost: veći blok i potencijalno duži ključ.
 OFB (Output FeedBack).

ECB mod predstavlja najprirodniji i najlakši način


CTi  Ek (OTi  CTi 1 )
11.IDEA algoritam primene blok šifarskih sistema - blok OT se šifruje
u blok ST, Slika 2.10. Svaki OT blok se šifruje
Ovo je simetrični blok šifarski algoritam. nezavisno. Sa kriptološke strane, ECB mod je OTi  CTi 1  Dk (CTi )
Činjenice: najproblematičniji. Naime, ako kriptoanalitičar
-enkriptuje blok veličine 64 bita; poseduje parove OT i ST za nekoliko poruka, CBC mod prouzrokuje da se identični blokovi OT
-koristi ključ dužine 128 bita; moguće je da tokom konverzacije dve strane šifruju u različite ST blokove samo ako su neki
-52 potključa dužine 16 bita; formira pravu kodnu knjigu, skup odgovarajućih prethodni blokovi različiti. Dve kompletno
-koristi jedan par potključeva po rundi; parova ST i OT, i bez poznavanja ključa. U većini identične poruke će se ipak šifrovati u iste
-koristi 8 unakrsnih runda (iteracije) kod realnih situacija: fragmenti poruka teže ST.Ovaj problem se može rešiti tako što se za
enkriptovanja; ponavljanju, različite poruke imaju zajedničke prvi blok podataka uzima neka slučajna veličina.
-dekripcija se vrši inverznom enkripcijom. delove, određeni računarski generisane poruke Ovaj blok slučajnih podataka se naziva
Prednosti: (kao e-mail) imaju regularnu strukturu, poruke inicijalizacioni vektor (IV). Kada primalac dešifruje
do sada je izdržao 'napade' akademske zajednice mogu biti veoma redundantne i imati veoma duge ovaj blok, on prosto smešta IV u povratni registar.
IDEA koristi 52 potključa dužine 16 bitova i ima 8 nizove nula i pauze. Ovi problemi su najistaknutiji Tekuće vreme sistema (timestamp) često
rundi enkripcija poruke. Po dva potključa se na početku i na kraju poruke, gde se u dobro predstavlja dobro rešenje za IV. Primenom IV,
koriste u svakoj rundi (16), zatim četiri potključa definisanim zaglavljima i futnotama mogu nalaziti identične poruke se šifruju u različite ST.
se koriste pre svake runde (32), a poslednja četiri informacije o pošiljaocu, primaocu, datumu, itd. Primenom IV, eliminisana je mogućnost primene
potključa koriste se nakon zadnje runde (4) = Formiranje reprezentativne kodne knjige ne samo block replay metode. Štaviše, IV ne mora da bude
16+32+4=52. da omogućava trećoj strani pristup informacijama tajni podatak i može se preneti otvoreno, zajedno
Potključevi se dobijaju tako što se 128 bitni ključ već joj dodatno omogućava da može modifikovati sa ST, uz upotrebu nekog od mehanizama zaštite
razdeli u prvih 8 potključeva (K1-K8) veličine 16 i ponavljati šifrovane poruke (tzv. block replay integriteta. Međutim, možda ne tako očigledno
bita. Zatim se sledećih 8 potključeva dobije tako problem) bez poznavanja ključa i algoritma, u kao u ECB modu, i u CBC modu postoje određeni
što se 25 puta napravi kružni pomeraj ulevo slučaju da ima mogućnost presretanja šifrovanih bezbednosni problemi koji se mogu manifestovati
svakog od prethodno napravljenih potključeva. poruka između dve strane. Ovi problemi su kao određena mogućnost da kriptoanalitičar
Postupak se ponavlja dok se ne kreiraju svi inicirali uspostavljanje zavisnosti između susednih dodaje određene blokove na krajeve poruka koje
potključevi. Iako je generisanje ključeva pravilno, blokova šifrata kroz definisanje novih se razmenjuju i u činjenici da veoma duge poruke
što bi ukazalo na slabost algoritma, do sada je kriptografskih modova blok šifarskih sistema. i dalje nisu imune na pojavljivanje određenih
ovaj algoritam izdržao sva nastojanja akademskih identičnih oblika iako se vrši proces ulančavanja.
ustanova na njegovom razbijanju. 2.1.2.2 Mod ulančavanja blokova (CBC – Cipher
Block Chaining)
12.AES algoritam Mehanizam ulančavanja povezuje blokove šifrata
tako što se rezultat šifrovanja prethodnih blokova 2.1.2.3 Mod povratnog šifrovanja (CFB - Cipher-
Kao što je već rečeno, u toku 2001. godine, NIST Feedback Mode)
(National Institute of Standards and Technology) koristi pri šifrovanju tekućeg bloka. Drugim
rečima, svaki blok se koristi za modifikaciju U nekim aplikacijama se javlja potreba da se
organizacija u SAD je objavila standard za delovi otvorenog teksta šifruju i prenose u u
simetrične kriptografske algoritme AES šifrovanja sledećeg bloka tako da svaki blok ST
zavisi ne samo od tekućeg bloka OT već i od svih jedinicama veličine r bita (r < n –veličina bloka),
(Advanced Encryption Standard) koji je trebalo da što u CBC modu nije moguće. Ovim modom se
zameni prethodni standard DES (Data Encryption prethodnih blokova OT. Načini na koje se to može
ostvariti su raznovrsni.U CBC modu, Slika 2.11, prevazilazi osnovni problem CBC moda - da
Standard). Nakon duge selekcione procedure, za šifrovanje i prenos podataka ne mogu početi sve
AES algoritam izabran je Rijndael algoritam koga taj uticaj se realizuje tako što se izvršava
operacija “ekskluzivno ili” (XOR) između OT i dok se ne primi kompletan blok podataka. U CFB
su realizovali Belgijski istraživači: Joan Daemen i modu, podaci se šifruju u manjim jedinicama od
Vincent Rijmen. Rijndael predstavlja blok šifarski neposredno prethodnog bloka ST, a zatim se tako
dobijeni blok podataka šifruje. Preciznije: aktuelne veličine bloka i ovaj mod se označava
algoritam koji podržava promenljivu dužinu bloka kao r-bitni CFB mod, gde je r manje ili jednako od
informacije (128, 192 i 256 bita) kao i promenljivu veličine bloka osnovnog blok šifarskog sistema.
dužinu ključa (128, 192 i 256 bita). Naime, poruke
šifrovane DES algoritmom su se, zbog 1. U povratni registar se smesti inicijalna Proces šifrovanja se odvija na sledeći način, Slika
nedostataka u samom algoritmu (bezbedonosni vrednost. 2.12:
nedostaci u supstitucionim s-tabelama), male
dužine ključa (56-bita) i povećane procesne moći 2. Blok otvorenog teksta i sadržaj
računara, mogle dešifrovati za samo par časova. povratnog registra se spregnu
Nakon selekcione procedure, za realizaciju AES operacijom ekskluzivne disjunkcije i 1. Otvoreni tekst se podeli u blokove
standarda izabran je Rijndael algoritam koga su tako dobijeni blok se transformiše veličine r bita, formira se inicijalni
realizovali belgijski matečatičari: Joan Daemen i šifarskom transformacijom E čime se vektor veličine n bita i smesti u
Vincent Rijmen. Rijndael je blok šifarski algoritam formira blok šifrata C. povratni registar. Odabere se K, ključ
koji podržava promenljivu dužinu bloka otvorenog za šifarsku transformaciju.
teksta (128, 192 i 256 bita) kao i promenljivu 3. U povratni registar se smesti C i
proces se ponavlja od koraka 2 sve 2. Formira se izlazni blok, O, tako što se
dužinu ključa (128, 192 i 256 bita). Rijndael izvrši šifarska transformacija ključem K
algoritam je u odnosu na konkuretske algoritme dok ima blokova za šifrovanje.
tekućeg sadržaja povratnog registra.
(MARS, RC6, Serpent, Twofish) bio brži i
zahtevao je manje operativne memorije u procesu 3. Blok šifrata se formira tako što se
šifrovanja i dešifrovanja poruka. Rijndael Na taj način, rezultat šifrovanja svakog bloka operacija ekskluzivne disjunkcije izvrši
algoritam sa 128-bitnom dužinom ključa je brži za zavisi od svih prethodnih blokova.Proces nad tekućim blokom otvorenog teksta i
oko 2.5 puta u odnosu na 3-DES algoritam. AES dešifrovanja sledi direktno i odvija se na sledeći r bita najmanje težine bloka O.
algoritam realizuje operacije šifrovanja i način:
dešifrovanja bloka podataka u promenljivom broju 4. Sadržaj povratnog registra se pomera
ciklusa. Broj ciklusa zavisi od veličine ključa i za r bita u levo i na mesto r bita
iznosi 10/12/14 za veličinu ključa 128/192/256 najmanje težine se smešta formirani
bita, respektivno. Pre početka šifrovanja ili 1. U povratni registar se smesti inicijalna blok šifrata.
dešifrovanja vrši se ekspanzija ključa. vrednost.
Koraci 2-4 se ponavljaju sve dok ima blokova
2. Blok šifrata C dešifruje se primenom otvorenog teksta. Dešifrovanje se odvija na sličan
13. Kriptografski modovi blok šifrarskih
1 način.
algoritama kriptografski mod predstavlja način transformacije E , tako dobijeni
upotrebe bazičnog šifarskog algoritma i najčešće blok teksta i sadržaj povratnog registra
je kombinacija neke vrste povratne petlje i se spregnu operacijom ekskluzivne
određenih jednostavnih operacija. Operacije koje disjunkcije i tako se dobije blok 1. Formira se inicijalni vektor veličine n
se primenjuju nad algoritmom su uglavnom otvorenog teksta. bita i smesti u povratni registar.
jednostavne jer je bezbednost određena bazičnim Odabere se K, ključ za šifarsku
šifarskim algoritmom a ne kriptografskim modom. 3. U povratni registar se smesti C i transformaciju.
Blok šifarski sistemi se primenjuju u različitim proces se ponavlja od koraka 2 sve
kriptografskim modovima, kao što su: dok ima blokova za dešifrovanje. 2. Formira se izlazni blok, O, tako što se
ivrši šifarska transformacija ključem K
tekućeg sadržaja povratnog registra.
 ECB (Electronic CodeBook mode), Matematički, proces šifrovanja i dešifrovanja 3. Blok otvorenog teksta se formira tako
može se prikazati na sledeći način, relacijama što se operacija ekskluzivne
 CBC (Cipher Block Chaining), (2.1.1.22) i (2.1.1.23), respektivno:

Vuk Bundalo
disjunkcije izvrši nad tekućim blokom se vrši samo XOR-ovanje izlaza algoritma i Pored RSA algoritma moguće je koristiti i druga
šifrata i r bita najmanje težine bloka O. jedinica OT. dva algoritma, DSA (Digital Signature Algorithm) i
ECDSA (Elliptic Curve DSA), koja spadaju u
4. Sadržaj povratnog registra se pomera Detaljna analiza OFB moda rada je pokazala da standard digitalnog potpisa (NIST standard DSS
za r bita ulevo i na mesto r bita ovaj mod rada treba koristiti samo u slučaju da je (Digital Signature Standard).
najmanje težine se smešta tekući blok r jednako dužini bloka n. Drugim rečima, 64-bitne
šifrata. blok šifarske algoritme treba koristiti u 64-bitnom 16. Diffie – Hellman protokol
OFB modu. Појам система са јавним кључевима увели су
Diffie и Hellman 1976. године.
2.1.2.5 Izbor odgovarajućeg moda rada blok Први такав систем који су они дефинисали био
Inicijalizacioni vektor ima istu ulogu kao i u CBC šifarskog sistema је протокол, познат под именом размена
modu, da spreči pojavljivanje istih šifrata u slučaju Jedan od četiri bazična moda rada – ECB, CBC, кључева Diffie-Hellman.
istih poruka šifrovanih jednakim ključevima. Iz OFB ili CFB pogodan je za skoro svaku aplikaciju. Два корисника, A и B, изаберу јавно коначну
opisa načina transformacije jasno je da je za Koji će se mod koristiti zavisi od korisnikovih мултипликативну групу, G, реда n и један њен
ispravno dešifrovanje neophodno da je prethodnih specifičnih zahteva. Ako su jednostavnost i brzina
елемент  G
n najbitniji, ECB mod je pravi izbor, kao najlakši i

 k  blokova šifrata ispravno dešifrovano. najbrži mod za korišćenje blok šifarskih sistema.
Međutim, ECB mod je najslabiji sa bezbednosne A генерише случајан број a, израчуна
a у
tačke gledišta i ne preporučuje se za šifrovanje G и пошање овај елемент кориснику B
poruka. Sa druge strane, ECB mod je veoma
S obzirom da se i u procesu šifrovanja i u procesu dobar za šifrovanje kratkih slučajnih podataka, B генерише случајан број b, израчуна b уG
dešifrovanja koristi ista šifarska transformacija, to kao što su na primer ključevi, jer se pri tome ne и пошаље овај елемент кориснику A.
algoritam kojim se formira blok O ne može biti iz
klase algoritama sa javnim ključem.
iskazuju prepoznate slabosti ECB moda.

Za šifrovanje normalnog OT treba koristiti CBC, A прими b и израчуна


 
b a
уG.
2.1.2.4 Izlazni povratni mod (OFB – Output
Feedback Mode)
CFB ili OFB mod. CBC je generalno najbolji mod
za šifrovanje datoteka. Takođe, ako je aplikacija B прими  a
и израчуна
  a
у G.
b

Ovaj mod rada predstavlja spoj dobrih osobina softverski bazirana, CBC je skoro uvek najbolje На тај начин, A и B поседују заједнички тајни
ECB i CFB modova rada, sprečava propagaciju
greške i ima poboljšane bezbednosne
rešenje. Sa druge strane, CFB mod (specijalno 8-
bitni CFB mod) je generalno mod koji treba birati елемент из групе G  ab
karakteristike. OFB mod rada takođe omogućava za šifrovanje nizova karaktera u kojima se svaki Криптоаналитичар S може да познаје G, n,
prenos podataka u jedinicama manjim od veličine
bloka.
karakter tretira individualno, kao na primer u vezi
između terminala i host računara. OFB mod rada
 a b
Transformacija otvorenog teksta se odvija na se najčešće koristi u sinhronim sistemima visokih
brzina gde se ne toleriše propagacija grešaka. и треба да израчуна елемент  ab
sledeći način, slika 2.13: Али проблем је у томе што је тај прорачун
еквивалентан израчунавању дискретног
логаритма. Зато се верује да је “тежак".
1. Otvoreni tekst se podeli u blokove 14. Problemi simetričnih šifrarskih sistema Primjer
veličine r bita, formira se inicijalni Otkriveni su u procesu rešavanja problema  Нека је p прост број 53.
vezanih za zaštitu tajnosti i distribuciju ključeva
vektor veličine n bita i smesti u
koji je često bio aktuelan u primenama simetričnih G  Z 53
*
povratni registar. Odabere se K, ključ Претпоставимо да је и
 2
za šifarsku transformaciju. kriptografskh algoritama. Дистрибуција кључева
– два корисника морају да изаберу тајни кључ нека је један од
2. Formira se izlazni blok, O, tako što se пре почетка комуникације и да за његово њених генератора. Протокол Diffie-
izvrši šifarska transformacija ključem K преношење користе сигуран канал. Овакав Hellman је следећи низ операција:
сигуран канал није увек на рсполагању.
a  29 израчунава
tekućeg sadržaja povratnog registra .
Манипулација кључевима – У мрежи са n  A бира
3. Blok šifrata se formira tako što se корисника, сваки пар корисника мора да има
operacija ekskluzivne disjunkcije izvrši свој сопствени тајни кључ, што чини укупно  2a 29
 45 mod 53
nad tekućim blokom otvorenog teksta i
nn  1 / 2 и шаље 45 кориснику B.
b  19
r bita najmanje težine bloka O.
кључева за ту мрежу. Немогућност
 B бира
4. Blok O postaje sadržaj povratnog реализације процедуре дигиталног потписа – У
израчунава
registra. шифарским системима са тајним кључевима
нема могућности, у општем случају, за  b  219  12 mod 53 и
дигитално потписивање порука, тако да онај
шаље 12 кориснику A.
који прима поруку не може да буде сигуран да
Koraci 2-4 se ponavljaju sve dok ima blokova A прима 12 и израчунава
је онај који му је послао поруку заиста њен
1229  21 mod 53
otvorenog teksta. Dešifrovanje se odvija na sličan
način. аутор.

15. Asimetrični kriptografski algoritmi B прима 45 и израчунава


Asimetrični kriptografski algoritmi predstavljaju
jedno od najvećih dostignuća kriptologije druge
4519  21 mod 53
 Formira se inicijalni vektor veličine n
bita i smesti u povratni registar. polovine dvadesetog veka. Otkriveni su u procesu  Приватни кључ или тајна
rešavanja problema vezanih za zaštitu tajnosti i информација
Odabere se K, ključ za šifarsku
distribuciju ključeva koji je često bio aktuelan u коју сада деле A и B је 21.
transformaciju.
primenama simetričnih kriptografskh algoritama.
 Formira se izlazni blok, O, tako što se Naime, u asimetričnim šifarskim sistemima se
Z*
 Криптоаналитичар S познаје 53 ,
ivrši šifarska transformacija ključem K koriste različiti ključevi za šifrovanje i dešifrovanje, 2, 45 i 12, али не може да
tekućeg sadržaja povratnog registra. tzv. javni i tajni ključ, tako da ključ za šifrovanje реконструише да је информација
može imati svako a samo posednik ključa za коју деле A и B једнака 21 зато што
 Blok otvorenog teksta se formira tako dešifrovanje može dešifrovati poruku. Međutim, мора да израчуна дискретни
što se operacija ekskluzivne visoka računarska zahtevnost ovih algoritama логаритам да би то одредио.
disjunkcije izvrši nad tekućim blokom utiče na performanse sistema u kojima se
šifrata i r bita najmanje težine bloka O. primenjuju, tako da se ne preporučuje primena za
zaštitu tajnosti informacija u sistemima sa velikim 17.RSA algoritam
 Sadržaj povratnog registra zameni se protokom informacija. Ovo naravno ne dezavuiše
formiranim blokom O. RSA algoritam je prvi put publikovan 1978.
automatski ove algoritme jer način na koji je uz godine. Naziv je dobio po prvim slovima
Koraci 2-4 se izvršavaju sve dok ima blokova za korišćenje ovakvih algoritama moguće ostvariti prezimena autora algoritma (R.L.Rivest,
dešifrovanje. funkcije integriteta, autentičnosti i neporicanja ima A.Shamir, L.Adleman). Teorijska osnova
nesumnjivu prednost nad tradicionalnim algoritma za realizaciju šifrovanja i dešifrovanja
Prethodno izloženi opis je prema standardu ISO tehnikama. U literaturi je opisano više algoritama poruka prikazana je u sledećim teoremama.
10116. Postoje takođe i druge varijacije na ovu sa javnim ključem ali sa stanovišta kvaliteta, Teorema 1: Linearna kongruencija
temu (npr. FIPS-81) ali se ova izložena verzija otpornosti na razne vrste napada, efikasnost i
lakoću implementacije te rasprostranjenost, nisu
ax  bmod m
smatra, za sada, najbezbednijom.
svi podjednako dobri. U tom smislu se kao ima rešenje ako i samo ako je NZD(a,m)b (NZD-
Pored toga što se radom u ovom modu prirodni izbor nameće RSA algoritam koji više od najveći zajednički delilac), i u tom slučaju, ako je
onemogućava propagacija greške, dobra osobina dvadeset godina odoleva svim teorijskim i
ovog moda rada je i to što se veći deo tehnološkim napadima. Opis i način upotrebe
x 0 jedno rešenje kongruencije, onda je opšte
izračunavanja može izvršiti off-line, nakon čega ovog algoritma propisani su u standardu PKCS#1. rešenje
4

Vuk Bundalo
tada se može, na osnovu teoreme 2, zaključiti da određivanje vrednosti njihovog
postoji prirodan broj d takav da je ispunjeno: proizvoda n=pq.
 U sledećem koraku bira se prirodan
 m
x  x0  mod  broj e,
 d e  d  1 mod  p  1  q  1 1  e   p  1  q  1
gde je d  NZDa, m . takav da je
Posledica 1a: Ako su brojevi a i m relativno prosti, Dati proizvod se može predstaviti na sledeći
NZDe,  p  1  q  1  1
NZDa, m  1, onda linearna
način:
tj. .

kongruencija ax  bmod m ima tačno
Nakon odabira vrednosti za e se
e  d  1  A   p  1  q  1 izračunava broj d takav da je
jedno nekongruentno rešenje po modulu m.
Teorema 2: (Kineska teorema o ostacima) Ako su
(2.2.2.10) d  e mod  p  1  q  1
1

.
n1 , n2 , , nk po parovima relativno prosti gde je A prirodan broj.
Proces transformacije poruka odvija se na sledeći
celi brojevi, tada sistem kongruencija: Može se dokazati da za proizvoljan broj a važi

 amod n 
način. Ako se sa M označi numerički ekvivalent
ed poruke M i napiše u obliku M=M1M2 …Mk gde je 0
a .
 Mi < n, i=1, 2, … , k; tada se za svako Mi, i=1, 2,
x  a1 mod n1  … , k izračuna:
Neka su a i n relativno prosti brojevi
x  a2 mod n2  (NZD(a,n)=1), tada je prema Ojlerovoj teoremi

Ci  M i mod(n)
(2.2.2.4): e

x  ak mod nk  a ed  a 1 A p 1q 1 mod n 


(2.2.2.15)

Poruka C=C1C2 …Ck predstavlja transformisani


ima jedinstveno rešenje po modulu  a  (a  p 1 q 1
) A
mod n  oblik poruke M i u datom obliku se poruka M
prenosi primaocu komunikacionim kanalima.
n  n1  n2  nk . Primalac rekonstruiše poruku tako što znajući

 a  1 A mod n 
vrednosti d, p i q izračunava:
Teorema 3: (Ojlerova teorema (L.Euler)) Ako su a

 a mod n 
i n uzajamno prosti brojevi, onda je:

Ci  M i mod(n)
d

 n 
 1mod n
(2.2.2.11)
a (2.2.2.16)
(2.2.2.4) Neka je NZD(a,n)1 i 0  a < n. Tada je, s
obzirom na oblik broja n, NZD(a,n)=p ili je i ulančavanjem formira originalnu poruku M=M1M2
…Mk. Korektnost navedenog načina
 n označen broj prirodnih brojeva,
NZD(a,n)=q. Ako se pretpostavi da je
gde je sa NZD(a,n)=p, tada je, prema Fermaovoj teoremi transformacije i rekonstrukcije poruka direktna je
posledica teoreme 4. Uređeni par (e,n) je javni
ne većih od n, uzajamno prostih sa n. ključ a uređena trojka (d,p,q) je tajni ključ RSA
Posledica 3a: (Fermaova teorema (P. Fermat)) algoritma.
Ako je p prost broj i NZD(a,p)=1, onda je
a ed  a mod( p)  0 mod( p)
Po bezbednosnoj klasifikaciji prethodni algoritam
(2.2.2.12) spada u klasu računski bezbednih sistema.
a p 1  1mod p  . Sigurnost ovog algoritma bazira se na
nepoznavanju efikasnog algoritma za faktorizaciju
(2.2.2.5)
a ed  a 1 A p 1q 1 mod( q) prirodnih brojeva i direktno zavisi od veličine broja
n (koja se može izražavati brojem cifara u

a ed  a  (a q 1 ) A p 1 mod( q)


Posledica 3b: Ako je n proizvod prostih pozitivnih dekadnom ili binarnom zapisu).
brojeva p, q (n=pq) i NZD(a,n)=1, onda je
Pored asimetričnog kriptografskog algoritma, u
a ed  a  1 A p 1)  mod( q) asimetričnim sistemima je od izuzetne važnosti

a  p 1q 1  1mod n  .


izbor odgovarajućeg algoritma za generisanje
asimetričnog para ključeva. U slučaju da je
(2.2.2.6)
a ed  a mod( q) asimetrični algoritam RSA algoritam, generisanje
(2.2.2.13) ključeva se odnosi na generisanje velikih slučajnih
prostih brojeva. U tom smislu, takođe su veoma
Teorema 4: Neka je proizvod n=pq prirodan broj
Kako su p i q prosti brojevi, prema kineskoj značajni algoritmi za proveru da li su izgenerisani
gde su p i q prosti pozitivni brojevi. Neka je e
prirodan broj takav da je teoremi o ostacima (2.2.2.3), sistem kongruencija: ključevi prosti brojevi.

1  e   p  1  q  1 i neka su brojevi
a ed  X mod  p 
Testovi da li je odgovarajući broj prost generalno

e i proizvod  p  1  q  1 relativno
se mogu podeliti na dva tipa:
(2.2.2.14)  Verovatnosni testovi,
proste veličine. Tada postoji prirodan broj d takav

 X mod q 
Testovi za dokazivanje da je dati broj
da je: ed
a prost.

d  e 1 mod  p  1  q  1
Testovi prve grupe su generalno takvi da, kao
ima jedinstveno rešenje X koje je manje od n=pq. rezultat, daju podatak da li je broj složen ili se
Prema prethodnom a je jedno takvo rešenje pa ponaša kao prost. U prvom slučaju broj je sigurno
(2.2.2.7) prema tome i jedino. Na isti način se postupa u složen, i kao takav ne može biti prost, a u drugom
slučaju da je NZD(a,n)=q. Prema prethodno slučaju postoji verovatnoća da se ponaša kao
i za svaki prirodan broj a, 0  a  n važi: navedenom, pokazuje se da je u bilo kom slučaju prost ali da nije takav. U ovu grupu testova
zadovoljeno
ed
a  a mod(n)  .
spadaju Fermaov, Solovej-Strasenov i Miler-

 a mod n 
Rabinov test.
ed
a Algoritam za transformaciju poruka baziran na Testovi druge grupe predstavljaju metode kojim
(2.2.2.8) navedenoj teoremi odvija se na sledeći način. se može dokazati da je broj prost. Generalno ove
metode su računarski veoma zahtevne. U ovu
Dokaz: Neka je M poruka koju je potrebno transformisati. grupu testova spadaju Poklingtonov test, test
Jakobijevih suma i test zasnovan na eliptičkim
Kako su brojevi e i proizvod brojeva  Prvi korak u realizaciji algoritma je krivim.

 p  1  q  1 relativno proste veličine odabir prostih pozitivnih brojeva p, q i


U ovom generičkom modelu predlaže se Miler-
Rabinov test koji se odvija prema sledećoj
5

Vuk Bundalo
proceduri ( n je broj koji se proverava da li je  Ако је hash функција једносмерна, Postoje četiri nelinearne funkcije, po jedna se
prost): тј. Тешка за инвертовање, такође се koristi u svakoj operaciji:
назива и резиме функција
(Message-digest function). У том
случају, уобичајено је да се
F(X,Y,Z) = (X ^ Y) v ((  X) ^ Z)
1. Stavimo
вредност
H mназива резиме од
n 1  2 m k
gde je t m, или отисак поруке m.
G(X,Y,Z) = (X ^ Z)v (Y ^ ( Z)
neparan broj  Употребом hash функција, проблем H(X,Y,Z) = X  Y  Z
дужине поруке или дигиталног
2. Izaberimo slučajno broj потписа се решава тако што се I(X,Y,Z) = Y  (X v ( Z ))
a, 0  a  n  1. уместо да се шифрује или
дигитално потписује цела порука m,
потписује се или шифрује само
3. b  a m mod n резиме поруке
H m .
gde navedeni funkcijski znaci predstavljaju ( -
XOR funkcija, ^ - AND funkcija, v - OR funkcija, i 
 Hash функције које се највише - NOT funkcija) Ako Mj predstavlja j-ti podblok
4. Ako je b  1 mod n користе у криптографске сврхе су poruke, j=0, …, 15, a <<< s predstavlja funkciju
MD2, MD4 i MD5 (Message Digest), cirkularnog šiftovanja za s bita, tada se pomenute
tada je n prost i kraj. које је предложио Rivest. Ове četiri operacije mogu predstaviti na sledeći način:
функције дају резимее дужине 128
5. Od i  0 do k 1 radi 
бита.
Поред њих, веома је популарна и FF(a,b,c,d,Mj,s,ti) označava: a = b +
Ako je SHA-1 (Secure Hash Algorithm) ((a + F(b,c,d) + Mj + ti) <<< s)
b  1 mod n tada je n функција (NIST) која даје отисак
поруке дужине 160 бита. GG(a,b,c,d,Mj,s,ti) označava: a = b +
prost i kraj, ((a + G(b,c,d) + Mj + ti) <<< s)
19.MD5 algoritam
inače HH(a,b,c,d,Mj,s,ti) označava: a = b +

b  b mod n 2 Nakon određenog inicijalnog procesiranja, MD5 ((a + H(b,c,d) + Mj + ti) <<< s)
algoritam procesira ulaznu poruku u blokovima od
II(a,b,c,d,Mj,s,ti) označava: a = b + ((a
512 bita, podeljenim u 16 podblokova dužine 32
+ I(b,c,d) + Mj + ti) <<< s)
6. n je složen i kraj bita. Naime, prvo se poruka proširuje na taj način
da se dobije poruka koja je po dužini tačno 64 bita
kraća od odgovarajućeg multipla od 512 bita.
Nakon prethodno opisanog postupka, a, b, c i d
Može se pokazati da je verovatnoća greške ovog se dodaju na A, B, C i D, respektivno, i algoritam
algoritma, verovatnoća da se broj proglasi prostim nastavlja sa narednim blokom podataka. Krajnji
Proširivanje je vrlo jednostavno, prvo se na kraj
1 poruke doda jedan bit jedinice, praćen
rezultat se formira konkatenacijom od dobijenih A,
B, C i D.
kada on to nije, jednaka . Nezavisnim izborom zahtevanim brojem nula. Zatim se 64-bitna
4 reprezentacija dužine poruke priključi rezultatu.
20.SHA1 algoritam
različitih vrednosti za a i sukcesivnim Ova dva koraka služe u cilju formiranja poruke
SHA-1 algoritam takođe procesira ulaznu poruku
ponavljanjem testa greška se može učiniti čija je dužina tačno multipl od 512 bita, što se
u blokovima od 512 bita, podeljenim u 16
proizvoljno malom. zahteva u algoritmu, obezbeđujući pri tome da
podblokova dužine 32 bita. Prvo se poruka
različite poruke neće izgledati isto nakon
proširuje na isti način kao i u MD5 algoritmu, tako
pomenutog proširivanja. Izlaz algoritma
da se dobije poruka koja je po dužini tačno 64 bita
predstavlja skup od 4 32-bitna bloka, spojena tako
Ovaj test je bolji od Fermaovog i Solovej- kraća od odgovarajućeg multipla od 512 bita.
da jednoznačno formiraju 128-bitnu hash
Strasenovog u smislu da je kod njega broj lažnih vrednost.
Naime, prvo se na kraj poruke doda jedan bit
prostih brojeva najmanji. jedinice, praćen zahtevanim brojem nula. Zatim
se 64-bitna reprezentacija dužine poruke priključi
18. Osnovne karakteristike hash funkcija rezultatu. Izlaz algoritma predstavlja skup od 5
 Шифарски системи са јавним Algoritam se sastoji od sledećih koraka: 32-bitna bloka, spojena tako da jednoznačno
кључевима, као и системи за formiraju 160-bitnu hash vrednost. Algoritam se
дигитални потпис могу бити веома sastoji od sledećih koraka:
спори.
 Prvo se poruka obradi tako da je njena
 Такође, у неким случајевима,
dužina tačno multipl od 512 bita,
дужина дигиталног потписа може
 Prvo se poruka obradi tako da je njena
бити већа или једнака дужини саме  Zatim se inicijalizuju 4 32-bitne dužina tačno multipl od 512 bita
поруке која се потписује. promenljive (tzv. promenljive
 Да би се решили ови проблеми ulančavanja):  Zatim se inicijalizuju 5 32-bitne
користе се hash функције. promenljive (tzv. promenljive
 Hash функција је израчунљива A=0x01234567 ulančavanja)
функција која примењена на поруку
m променљиве дужине даје њену B=0x89abcdef A=0x67452301
репрезентацију (отисак) фиксне
C=0xfedcba98 B=0xefcdab89
дужине која се назива њеном hash

вредношћу.
H m D=0x76543210 C=0x98badcfe
 Hash функције се дефинишу на  Zatim počinje glavna petlja algoritma D=0x10325476
следећи начин: H :M M koja se izvršava za sve blokove
dužine 512 bita date poruke. Četiri E=0xc3d2elf0
H m  m' inicijalne promenljive se kopiraju u
 Zatim počinje glavna petlja algoritma
 У општем случају,
H m
је много
promenljive a, b, b i d. Glavna petlja
se sastoji od 4 faze koje su veoma koja se izvršava za sve blokove
slične. Svaka faza koristi različitu dužine 512 bita date poruke.
мањих димензија од m. На пример,
m може да има дужину од једног operaciju 16 puta, koja se sastoji od  5 inicijalnih promenljivih se kopira u

мегабајта, док
H m
може имати
primene određene nelinearne funkcije
nad tri od četiri promenljive a, b, c ili d.
promenljive a, b, c, d i e.

свега 128 или 160 бита. Zatim se tako dobijeni rezultat dodaje  Glavna petlja se sastoji od 4 faze koje
 Једносмерна hash функција је hash četvrtoj promenljivoj, podbloku poruke su veoma slične. Svaka faza koristi
функција H дефинисана тако да је i jednoj konstanti. Dobijeni rezultat se različitu operaciju 20 puta, koja se
rotira ulevo promenljivi broj bita i sastoji od primene određene
за сваку компримовану поруку m' dodaje se jednoj od četiri promenljive nelinearne funkcije nad tri od pet
тешко реконструисати оригиналну a, b, c ili d. Na kraju rezultat promenljivih a, b, c, d ili e. Zatim se
поруку m за коју важи
m'  H m zamenjuje jednu od promenljivih a, b, tako dobijeni rezultat procesira slično
c ili d. Videti Slike 2.19 i 2.20. kao i u MD5 algoritmu.
 Дакле, једносмерна hash функција
је hash функција која је такође и
једносмерна (One Way).
6

Vuk Bundalo
Nakon prethodno opisanog postupka nad prvim SHA-2 укључује значајне промене у односо на  2. The 384-bit message digest is
blokom podataka, izračunate vrednosti свог претходника SHA-1. SHA-2 породица се obtained by truncating the final hash
promenljivih a, b, c, d i e se dodaju na A, B, C. D састоји од 6 хеш функција са обрадама (хеш value, to its leftmost 384 bits
i E, respektivno, i algoritam nastavlja sa narednim вредностима) од 224, 256, 384 или 512 бита:  SHA-224 may be used to hash a
blokom podataka. Krajnji rezultat se formira SHA-224, SHA-256, SHA-384, SHA-512, SHA- message, M, having a length of l bits,
konkatenacijom od dobijenih A, B, C, D i E.Blok 512/224, SHA-512/256. where 0 < l < 264.
poruke se transformiše od 16 32-bitnih reči (M0,  The function is defined in the exact
..., M15) u 80 32-bitnih reči (W0, …, W79) prema same manner as SHA-256, with the
sledećem: SHA-256 и SHA-512 су новије хеш функције following two exceptions:
обрађиване 32-битним односно 64-битним  For SHA-224, the initial hash value
Wt=Mt za t=0 do 15 речима. Користе резличите помераје и has different value,
адитивне константе, али су им структуре осим  2. The 224-bit message digest is
Wt=Mt za t=0 do 15 тога скоро идентичне, разликују се само по obtained by truncating the final hash
броју рунди. SHA-224 и SHA-384 су value to its leftmost 224 bits.
Wt=(Wt-3 Wt-8  Wt-14  Wt-16) <<< 1, za
једноставно окрњене верзије прва два,
t=16 do 79
обрађене другим почетним вредностима. SHA-
Glavna petlja se može opisati na sledeći način: 512/224 и SHA-512/256 су такође окрњене
верзије SHA-512, али су почетне вредности 22.DSA algoritam za digitalne potpise
генерисане методом прописаном Федералним  DSA генерисање кључева,
Стандардом за Обраду Података (FIPS) PUB Страна А у комуникацији извршава
Za t=0 do 79 180-4. SHA-2 је објављен 2001. год. од стране следеће:
Националног Института за Стандарде и Избор простог броја q таквог да је 2159 < q
if 0 ≤ i ≤ 19 then
Технологију, америчког федералног стандарда < 2160.
f := (b and c) or (FIPS). SHA-2 породица алгоритама Избор 1024 битног простог броја p са
((not b) and d) патентирана је под бројем 6829355. САД су особином q|p-1.
ослободиле патент плаћања лиценце. Избор елемента h  Zp* и израчунавање
k := g=h(p-1)/q mod p; поновити израчунавање
0x5A827999 све док g1.
 2005. год. појавио се алгоритам за
Избор случајног целог броја x  [1, q-1].
else if 20 ≤ i ≤ 39 проналажење судара SHA-1
Израчунати y=gx mod p.
алгоритма у око 2000 мање корака
f := b xor c xor Јавни кључ А је: (p,q,g,y).
него до тада. Иако до данас није
d Приватни кључ А је: x.
објављен ниједан пример судара
 DSA генерисање потписа,
код SHA-1 алгоритма, отпортност на
k := У циљу потписивања поруке m А
сударе је мања од очекиване тако
0x6ED9EBA1 извршава следеће:
да се његово коришћење више не
Избор случајног целог броја k  [1, q-1].
else if 40 ≤ i ≤ 59 препоручује за послове који се
Израчунати r=(gk mod p) mod q.
ослањају на отпорност код судара,
Израчунати k-1 mod q.
f := (b and c) or као на пример дигитални потпис.
Израчунати s= k-1 (h(m)+xr) mod q, где h
(b and d) or (c and d) Иако је SHA-2 сличан SHA-1,
означава SHA-1 хеш вредност.
напади никад нису успешно
k := Ако је s=0, вратити се на почетни корак.
изведени. SHA-256 may be used to
0x8F1BBCDC Дигитални потпис поруке m је уређени
hash a message, M, having a length
пар целих бројева (r,s).
of l bits, where 0 < l < 264.
else if 60 ≤ i ≤ 79  DSA верификација потписа.
 The algorithm uses У циљу верификације потписа поруке m,
f := b xor c xor B извршава следеће:
1) a message schedule of
d Узима јавни кључ А: (p,q,g,y).
sixty- four 32-bit words,
Израчунати w=s-1 mod q и h(m).
k :=
Израчунати u1=h(m)w mod q и u2=rw mod
0xCA62C1D6
2) eight working variables of 32 bits each, and q.
end Израчунати v=(gu1yu2 mod p) mod q.
Верификација дигиталног потписа је
TEMP=(a<<<5)+F(b,c,d)+ 3) a hash value of eight 32-bit words. успела ако и само ако је v=r.
e+Wt+Kt
23.ECDSA algoritam za digitalni potpis
e=d  The final result of SHA-256 is a 256-
 ECDSA генерисање кључева,
bit message digest.
Страна А у комуникацији извршава
d=c  The words of the message schedule
следеће:
are labeled W0, W1,…, W63.
c=b<<<30  The eight working variables are Избор елиптичне криве Е која је
labeled a, b, c, d, e, f, g, and h. дефинисана на простором Zp. Број тачака
b=a елиптичке криве E треба да буде дељив
 SHA- 256 also uses two temporary
са великим простим бројем n.
a=TEMP words, T1 and T2.
 SHA-512 may be used to hash a Izbor tačke P  E(Zp) реда n.
21.SHA2 familija algoritama message, M, having a length of l bits, Избор случајног целог броја d  [2, n-2].
where 0 < l < 2128. Израчунати Q=dP.
 The algorithm uses Јавни кључ А је:
SHA-2 (Сигурносни алогоритам хеширања)  a message schedule of eighty 64-bit (E,P,n,Q).
је сет криптографских хеш функција words, Приватни кључ А је: d.
дизајниран од стране Националне  2) eight working variables of 64 bits  ECDSA генерисање потписа,
Безбедносне Агенције (NSA). SHA је each, and У циљу потписивања поруке m А
скраћеница за  3) a hash value of eight 64-bit words. извршава следеће:
Сигурносни Алгоритам Хеширања.  The final result of SHA-512 is a 512- Избор случајног целог броја k  [2, n-2].
Криптографске хеш функције су математичке bit message digest. Израчунати kP=(x1,y1) и r=x1 mod n. Ако је
операције које се врше над дигиталним  The words of the message schedule r=0 вратити се на корак 1.
подацима; упоређивањем are labeled W0, W1,…, W79. Израчунати k-1 mod n.
обрадђеног "хеша" (резултата извршавања  The eight working variables are Израчунати s= k-1 (h(m)+dr) mod n, где h
алгоритма) са познатом и очекиваном хеш labeled a, b, c, d, e, f, g, and h. означава SHA-1 хеш вредност.
вредношћу, можемо утврдити интегритет  SHA-512 also uses two temporary Ако је s=0, вратити се на почетни корак.
података. На пример, обрађиванјем хеша words, T1 and T2. Дигитални потпис поруке m је уређени
скинутог фајла и упоредђивањем резултата са  SHA-384 may be used to hash a пар целих бројева (r,s).
претходно објављеном хеш вредношћу message, M, having a length of l bits,  ECDSA верификација потписа
можемо утврдити да ли је фајл мењан или where 0 < l < 2128. У циљу верификације потписа поруке m,
компромитован. Кључан аспекат  The algorithm is defined in the exact B извршава следеће:
криптографске хеш функције је његова same manner as SHA-512, with the Узима јавни кључ А: (E,P,n,Q).
отпорност на сударанје, тј. није могуће наћи following two exceptions: Верификује да су r и s цели бројеви у
два различита уноса који као резултат дају  The initial hash value has different интервалу [1, n-1].
исту хеш вредност. value; and Израчунати w=s-1 mod n и h(m).
Израчунати u1=h(m)w mod n и u2=rw mod
n.
7

Vuk Bundalo
Израчунати u1P+u2Q=(x0,y0) и v=x0 mod n. 5. AES sаdа sе prеpоručuје upоtrеbа AES аlgоritmа.
Верификација дигиталног потписа је
успела ако и само ако је v=r. 29. Kod za autentikaciju poruke (MAC) - HMAC
The Advanced Encryption Standard (AES) is the algoritam
algorithm trusted as the standard by the U.S. HMAC (еng. Hash-based MAC) је
26. Aktuelni kripto algoritmi i duzine kljuceva
Government and numerous organizations. MAC аlgоritаm bаzirаn nа primјеni hеš funkciје u
1. Triple DES
kоmbinаciјi sа klјučеm. Čеstо sе, u zаvisnоsti оd
izbоrа hеš funkciје, skrаćеnicа HMAC prоširuје
Although it is extremely efficient in 128-bit form, dоdаvаnjеm nаzivа hеš funkciје, pа tаkо imаmо
Triple DES was designed to replace the original
AES also uses keys of 192 and 256 bits for heavy Оsnоvnа idеја nа kојој sе zаsnivајu MAC
Data Encryption Standard (DES) algorithm, which
duty encryption purposes. аglоritmi bаzirаni nа hеš funkciјi је dа sе klјuč i
hackers eventually learned to defeat with relative
ease. At one time, Triple DES was the pоrukа nаdоvеzuјu, а zаtim sе izrаčunаvа hеš
recommended standard and the most widely used dоbiјеnе vriјеdnоsti. Dvа nајјеdnоstаvniја pristupа
AES is largely considered impervious to all
symmetric algorithm in the industry. su dа sе klјuč dоdа pоruci kао prеfiks ili kао
attacks, with the exception of brute force, which
sufiks. Аkо sе klјuč dоdа pоruci kао prеfiks MAC
attempts to decipher messages using all possible
izrаčunаvа nа slеdеći nаčin:
combinations in the 128, 192, or 256-bit cipher.
Triple DES uses three individual keys with 56 bits
Still, security experts believe that AES will
each. The total key length adds up to 168 bits, but 𝑀𝐴𝐶𝑘 (𝑥) = ℎ(𝑘||𝑥)
eventually be hailed the de facto standard for
experts would argue that 112-bits in key strength
encrypting data in the private sector. Sličnо, аkо sе klјuč dоdа pоruci kао sufiks MAC
is more like it. је:
𝑀𝐴𝐶𝑘 (𝑥) = ℎ(𝑥||𝑘)
Simbоl || оvdе оznаčаvа spајаnjе klјučа k i
Despite slowly being phased out, Triple DES still pоrukе x, a h оznаčаvа hеš funkciјu. Оvа dvа
manages to make a dependable hardware 27.Faktori autentikacije korisnika pristupа nisu kriptоgrаfski sigurnа.
encryption solution for financial services and other Jedno -, dvo – i tro – komponentni sistemi Kоristi sе trеći pristup, kојi zаprаvо
industries. autentikacije korisnika. dеfinišе HMAC аlgоritаm. Prvо sе vrši prоširivаnjе
Sistemi jake autentikacije – dvo – komponentni klјučа k dоdаvаnjеm nizа nulа nа krај klјučа, tаkо
sistemi sa uključenom challengeresponse dа vеličinа rеzultuјućеg klјučа k+ budе јеdnаkа
2. RSA
procedurom. vеličini ulаznоg blоkа hеš funkciје. Zаtim sе vrši
Pojavni oblici “onoga što se ima”: disketa, mini оpеrаciја XOR nаd prоširеnim klјučеm k+ i
RSA is a public-key encryption algorithm and the CD, hardverski token, smart kartica, kоnstаntоm ipad. Kоnstаntа ipad prеdstаvlја niz
standard for encrypting data sent over the USB smart kartica. kојi је sаstаvlјеn оd bајtа 00110110, pоnоvlјеnоg
internet. It also happens to be one of the methods Autentikacioni sistemi najvišeg kvaliteta – dvo– ili оnоlikо putа kоlikо је pоtrеbnо dа sе fоrmirа blоk
used in our PGP and GPG programs. tro–komponentni sistemi autentikacije vеličinе ulаznоg blоkа hеš funkciје.
sa PKI challenge-response procedurom. ipad = 0011011000110110. . .00110110
Jaka autentikacija ovlašćenih učesnika u nekom Rеzultаt оpеrаciје XOR sе spаја sа pоrukоm x,
Unlike Triple DES, RSA is considered an distribuiranom računarskom sistemu je tаkо štо sе dоdаје nа pоčеtаk pоrukе. Nаd
asymmetric algorithm due to its use of a pair of jedna od najvažnijih bezbednosnih funkcija koju rеzultаtоm spајаnjа sе primјеnjuје hеš funkciја
keys. You’ve got your public key, which is what dati informacioni sistem treba da h[(k+ ⊕ ipad)||x]. Zаtim sе vrši оpеrаciја XOR nаd
we use to encrypt our message, and a private key implementira. Način prijavljivanja legalnog prоširеnim klјučеm k+ i kоnstаntоm opad. Оvа
to decrypt it. The result of RSA encryption is a korisnika na određenu računarsku mrežu ili kоntаntа је, kао i ipad, vеličinе ulаznоg blоkа hеš
huge batch of mumbo jumbo that takes attackers informacioni sistem korišćenjem standardne funkciје, sаmо је bајt kојi sе pоnаvlја drugаčiјi.
quite a bit of time and processing power to break. procedure unosom korisničkog imena i
lozinke sigurno nije dovoljno pouzdano niti
dovoljno bezbedno. Naime, postoje tehnike opad = 0101110001011100. . .01011100
3. Blowfish primenom kojih nelegalni korisnik može u realnom Rеzultаt оvе оpеrаciје XOR sе sа spаја sа
vremenu izvršiti rekonstrukciju izrаčuntоm hеš vriјеdnоšću, tаkо štо sе dоdаје nа
poverljivih parametara (korisničko ime i lozinka) pоčеtаk hеš vriјеdnоsti. Nа krајu sе primјеnjuје
Blowfish is yet another algorithm designed to
legalnog korisnika. hеš funkciја nа tаkо dоbiјеn niz i izrаčunаtа hеš
replace DES. This symmetric cipher splits vriјеdnоst prеdstаvlја HMAC vriјеdnоst.
Komponente (faktori) autentikacije korisnika su:
messages into blocks of 64 bits and encrypts
ono što se zna (npr. PIN,
them individually.
username/lozinka), ono što se poseduje (npr. 𝐻𝑀𝐴𝐶𝑘 (𝑥) = ℎ[(𝑘 + ⊕ opad)||ℎ[(𝑘 + ⊕ ipad)||𝑥]]
token, smart kartica) i određena
HMAC аlgоritаm imа širоku primјеnu, izmеđu
Blowfish is known for both its tremendous speed biometrijska karakteristika korisnika (npr. otisak
оstаlоg kоristi sе zа аutеntikаciјu pоrukа u
and overall effectiveness as many claim that it prsta, itd.). Metode jake autentikacije
prоtоkоlimа IPsec i TLS.
has never been defeated. Meanwhile, vendors predstavljaju u stvari dvofaktorsku ili
have taken full advantage of its free availability in dvokomponentnu autentikaciju uz najčešće
the public domain. primenu odgovarajuće challenge-response 30. OTP – Lamport-ova šema
procedure. One-time password (OTP) је lоzinkа kоја sе
kоristi sаmо јеdnоm, оdnоsnо vаlidnа је sаmо zа
Blowfish can be found in software categories јеdаn prоcеs аutеntikаciје.
ranging from e-commerce platforms for securing 28. Kod za autentikaciju poruke (MAC) – CBC Svаkа nоvа аutеntikаciја zаhtеvа gеnеrisаnjе
payments to password management tools, where MAC algoritam nоvе lоzinkе.
it used to protect passwords. It’s definitely one of Kоd zа аutеntikаciјu pоrukе (еng. Pоstојi vеći brој аlgоritаmа zа gеnеrisаnjе OTP-а,
the more flexible encryption methods available. Message Authentication Code – MAC) је nеki su vlаsnički (npr. RSA SecurID аlgоritаm), а
јеdnоsmјеrnа hеš funkciја, zаvisnа оd klјučа. nеki su оtvоrеni (npr. аsоciјаciја Initiative for
MAC sе kоristi zа prоvјеru intеgritеtа pоrukе i Open Authentication rаzviја оtvоrеnе stаndаrdе).
4. Twofish аutеntikаciјu аutоrа pоrukе. Prоvјеru mоžе dа One-time password šеmu je prvi prеdstаviо Leslie
izvrši sаmо оnај kо imа klјuč idеntičаn оnоm kојi Lamport a kаsniје је u Bellcore-u nа оsnоvu
је kоrištеn prilikоm gеnеrisаnjа MAC-a. Аlgоritmi njegovog rаdа implеmеntirаn S/KEY one-time
Computer security expert Bruce Schneier is the zа gеnеrisаnjе MAC-a mоgu dа sе zаsnivајu nа
mastermind behind Blowfish and its successor password sistеm zа аutеntikаciјu.
blоk šifаrskim аlgоritmimа ili nа hеš funkciјаmа. Lamport-оvа šеmа sе zаsnivа nа upоtrеbi hеš
Twofish. Keys used in this algorithm may be up to
funkciје i gеnеrisаnju lоzinki kоје sе bаzirајu nа
256 bits in length and as a symmetric technique, CBC-MAC je MAC аlgоritаm bаzirаn nа primјеni
prеthоdnој.
only one key is needed. CBC mоdа blоk šifаrskоg аlgоritmа. Pоrukа x sе
Nа pоčеtku kоrisnik оdаbеrе slučајаn niz P.
izdiјеli nа n blоkоvа i uz upоtrеbu klјučа K
Gеnеrisаnjе lоzinki sе vrši tаkо štо sе izvršavа
itеrаtivnо sе izrаčunаvа:
Twofish is regarded as one of the fastest of its hеš funkciја f višе putа nа slеdеći nаčin f(P),
𝐻𝑖 = 𝐸𝐾 (𝐻𝑖−1 ⊕ 𝑥𝑖 ), 1 ≤ 𝑖 ≤ 𝑛
kind, and ideal for use in both hardware and f(f(P)), f(f(f(x))) i tаkо dаlје, stоtinu ili hilјаdu putа.
software environments. Like Blowfish, Twofish is Iniciјаlnа vriјеdnоst H0 је niz nulа, čiја је dužinа Dоbiјеnе hеš vrеdnоsti mоžеmо оznаčiti sа x1, x2,
freely available to anyone who wants to use it. As јеdnаkа dužini blоkа. MAC vriјеdnоst је pоslеdnji x3, …, x100.
a result, you’ll find it bundled in encryption šifrоvаni blоk, а оstаli šifrоvаni blоkоvi sе Kоrisnik dоbiја listu оvih vrеdnоsti nа pаpiru ili nа
programs such as PhotoEncrypt, GPG, and the оdbаcuјu. Vеrifikаciјu MAC vriјеdnоsti mоžе dа nеki drugi nаčin.
popular open source software TrueCrypt. urаdi sаmо оnај kо imа klјuč K i tо nа nаčin dа Sеrvеr izrаčunаvа x101 i čuvа sаmо tu hеš
izrаčunа MAC vriјеdnоst nа оpisаni nаčin i dа vrеdnоst, zа dаtоg kоrisnikа.
upоrеdi sа primlјеnоm vriјеdnоšću. Аkо su Kаdа kоrisnik pristupi prоcеsu аutеntikаciје оn
vriјеdnоsti јеdnаkе vеrifikаciја је uspјеšnа. Аkо unоsi, pоrеd svоg kоrisničkоg imеnа, vrеdnоst
nеkо kо nе znа klјuč K izvrši izmјеnе u pоruci, оn x100.
nеćе mоći gеnеrisаti nоvi MAC zа izmјеnjеnu Sеrvеr izrаčunаvа f(x100) i upоrеđuје tu vrеdnоst
pоruku, pа MAC nеćе biti vаlidаn. Rаniје је kао sа x101. Аkо sе slаžu, аutеntikаciја kоrisnikа је
blоk šifаrski аlgоritаm kоrištеn DES аlgоritаm, аli uspеšnа.
8

Vuk Bundalo
Sеrvеr sаdа umеstо pоdаtkа x101 čuvа x100. zаhtјеvоm sе inkrеmеntirа vriјеdnоst brојаčа C, а Challenge-response аutеntikаciја
Kоrisnik prilikоm slеdеćе аutеntikаciје kоristi x99, pоštо HOTP vriјеdnоst dirеktnо zаvisi оd brојаčа, bаzirаnа nа simеtričnоm klјuču sе rеаlizuје
dаklе kоristi sе pоslеdnjа nеiskоrištеnа lоzinkа. tа vriјеdnоst sе miјеnjа sаmо u zаvisnоsti оd upоtrеbоm simеtričnоg аlgоritmа zа šifrоvаnjе ili
U оpštеm slučајu kоrisnik unоsi hеš vrеdnоst xi, а аkciја kоrisnikа. primјеnоm hеš bаzirаnоg аlgоritmа zа
sеrvеr izrаčunаvа f(xi) i upоrеđuје tu vrеdnоst sа аutеntikаciјu pоrukа (HMAC). U оbа slučаја,
xi+1. 32. TOTP (Time based OTP) algoritam – OATH strаnа A i strаnа B u prоcеsu аutеntikаciје,
Kаdа kоrisnik iskоristi svе lоzinkе mоrа dа Аsоciјаciја Initiative for Open mоrајu imаti unаpriјеd dоgоvоrеn tајni klјuč.
оdаbеrе nоvu iniciјаlizаciоnu vrеdnоst P i prоđе Authentication је 2011. gоdinе оbјаvilа Time-
pоnоvni prоcеs gеnеrisаnjа nоvih lоzinki. Based One-Time Password (TOTP) аlgоritаm kојi Nајprоstiјi prоtоkоl zа challenge-response
Sigurnоst оvоg sistеmа sе zаsnivа nа sigurnоsti је bаzirаn nа vrеmеnu (еng. time-based one-time аutеntikаciјu kојi sе rеаlizuје upоtrеbоm
hеš funkciје. password) u [24]. U suštini TOTP је mоdifikоvаnа simеtričnоg аlgоritmа zа šifrоvаnjе izglеdа оvаkо:
Аkо nаpаdаč prisluškuјući dоđе dо lоzinkе xi , оn vеrziја HOTP аlgоritmа, prilаgоđеnа dа umјеstо RA
brојаčа C kоristi vriјеmе kао оsnоvu zа
nеćе imаti kоristi оd njе, јеr је оnа vеć
gеnеrisаnjе јеdinstvеnih јеdnоkrаtnih lоzinki. U
А B
iskоrištеnа.
Nаpаdаčа zаnimа slеdеćа lоzinkа xi-1, а dа bi nа оsnоvi, TOTP sе dеfinišе izrаzоm (15). RB, EK(K,RA)
оsnоvu xi dоšао dо xi-1 оn mоrа dа izvrši invеrznu
А B
𝑇𝑂𝑇𝑃 = 𝐻𝑂𝑇𝑃(𝐾, 𝑇)
оpеrаciјu оpеrаciјi hеširаnjа f-1(xi)= xi-1. EK(K,RB)
Оvdје је Т cјеlоbrојnа vriјеdnоst kоја sе
Аkо је hеš funkciја kriptоgrаfski sigurnа tо је
inkrеmеntuје svаkih 30 ili 60 sеkundi, u zаvisnоsti А B
prаktičnо nеizvоdlјivо.
оd vеličinе vrеmеnskоg kоrаkа X. Prеcizniје Т sе
dоbiја nа slеdеći nаčin: Nа pоčеtku strаnа B dоkаzuје strаni A
31.HOTP (HMAC OTP) algoritam – OATH svој idеntitеt. Strаnа A gеnеrišе i šаlје slučајni
𝑇 = (𝑡𝑟е𝑛𝑢𝑡𝑛о_𝑣𝑟𝑖је𝑚е − Т0 )⁄𝑋
Аsоciјаciја Initiative for Open Authentication је brој RA strаni B. Strаnа B šifruје primlјеni brој
Gdје је X vrеmеnski kоrаk u sеkundаmа,
2005. gоdinе u [22] dеfinisаlа HOTP, one-time tајnim klјučеm K i vrаćа šifrоvаnu vriјеdnоst
pоdrаzumiјеvаnо је X = 30. Dоk је Т0 Unix
password sistеm bаzirаn nа hеš bаzirаnоm kоdu EK(K,RA) i slučајni brој RB strаni A. Strаnа A
vriјеmе, оd kојеg sе pоčinjе rаčunаti vriјеmе,
zа аutеntikаciјu pоrukа – HMAC. HOTP аlgоritаm prоvјеrаvа isprаvnоst primlјеnе šifrоvаnе
pоdrаzumiјеvаnо је Т0 = 0 (štо prеdstаvlја
sе zаsnivа nа upоtrеbi brојаčа C i klјučа K. Klјuč vriјеdnоsti tаkо štо sаmоstаlnо šifruје brој RA sа
1.1.1970). Nаkоn diјеlјеnjа vrši sе zаоkruživаnjе
је pоznаt sаmо sеrvеru kојi vrši vаlidаciјu i tоkеnu tајnim klјučеm K i pоrеdi sа primlјеnоm
nа nајvеći ciјеli brој kојi је mаnji оd dоbiјеnоg
kојi gеnеrišе јеdnоkrаtnu lоzinku. Svаkоm tоkеnu vriјеdnоšću. Аkо su јеdnаkе strаnа A vјеruје dа је
rеzultаtа diјеlјеnjа (floor funkciја).
је dоdјеlјеn јеdinstvеn klјuč. Тоkеn kојеg kоrisnik sа drugе strаnе zаistа B. Zаtim, strаnа A šifruје
One-time password-i gеnеrisаni
kоristi mоžе biti hаrdvеrski ili sоftvеrski. Zа primlјеni slučајni brој RB tајnim klјučеm K i šаlје
unutаr јеdnоg vrеmеnskоg kоrаkа X ćе biti isti.
gеnеrisаnjе HOTP vriјеdnоsti kоristi sе HMAC- šifrоvаnu vriјеdnоst EK(K,RB) strаni B. Strаnа B
Prilikоm аutеntikаciје sеrvеr primа kоrisnikоv OTP
SHA1 аlgоritаm. Prvi kоrаk kоd gеnеrisаnjа prоvјеrаvа tаčnоst primlјеnе šifrоvаnе vriјеdnоsti i
i gеnеrišе OTP zа оdgоvаrајućеg kоrisnikа,
HOTP vriјеdnоsti prеdstаvlја rаčunаnjе HMAC- аkо utvrdi dа је tаčnа vјеruје dа је sа drugе
kоristеći vriјеmе kаdа је primlјеn kоrisnikоv OTP.
SHA1 vriјеdnоsti nа оsnоvu klјučа K i brојаčа C. strаnе zаistа A.
Zаtim pоrеdi оvа dvа OTP-а, аkо su isti
𝐻𝑆 = HMAC-SHA1(𝐾, 𝐶) Hеš funkciја SHA1
аutеntikаciја је uspјеšnа. Dаklе, OTP је vаlidаn
gеnеrišе 160-bitnu hеš vriјеdnоst, pа је HS 34.Challenge-response algoritmi na bazi
sаmо аkо је gеnеrisаn i primlјеn nа vаlidаciоnоm simetričnog ključa i HMAC algoritma
vеličinе 20 bајtоvа. Dоbiјеnа vriјеdnоst је
sеrvеru u оkviru istоg vrеmеnskоg kоrаkа X. Еkvivаlеntаn prоtоkоl kојi kоristi hеš
prеdugаčkа zа unоšеnjе оd strаnе kоrisnikа
prilikоm аutеntikаciје, pа sе vrši skrаćivаnjе. Оvај Zbоg vrеmеnskоg kаšnjеnjа pri bаzirаni MAC аlgоritаm izglеdа оvаkо:
prоcеs sе nаzivа dinаmičkо skrаćivаnjе. prеnоsu krоz mrеžu, vrеmеnski pеriоd izmеđu RA
Dinаmičkо skrаćivаnjе zаpоpčinjе uzimаnjеm 4 trеnutkа kаdа је OTP gеnеrisаn i trеnutkа kаdа је A B
nајnižа bitа krајnjеg dеsnоg bајtа vriјеdnоsti HS. stigао nа sеrvеr mоžе biti vеlik. Zbоg tоgа sеrvеr
Kоnvеrtоvаnjеm tа 4 bitа u brој dоbiја sе pоmјеrај
RB, HK(K,RA)
prilikоm prоvјеrе primlјеnоg OTP-а mоžе A B
čiја је vriјеdnоst izmеđu 0 i 15, uklјučuјući i njih. gеnеrisаti rаzličit OTP оd primlјеnоg, јеr је istеkао
vrеmеnski pеriоd X unutаr kојеg је kоrisnik HK(K,RB)
0 ≤ 𝑝о𝑚је𝑟ај ≤ 15
gеnеrisао OTP. I kаd kаšnjеnjе pri prеnоsu krоz A B
Pоmјеrај оdrеđuје kоја 4 bајtа оd mоgućih 20 ćе mrеžu niје vеlikо оvај prоblеm mоžе dа sе јаvi
biti оdаbrаni. Uzimа sе bајt čiјi је rеdni brој brојеći аkо kоrisnik gеnеrišе OTP prеd krај vrеmеnskоg Оvdе је sа HK оznаčеnа hеš bаzirаnа
s liјеvа јеdnаk dооbiјеnоm pоmјеrајu i uz njеgа pеriоdа X, pа ćе OTP biti primlјеn nа sеrvеru u MAC funkciја. Nа pоčеtku strаnа A šаlје slučајni
јоš nаrеdnа tri bајtа. slеdеćеm vrеmеnskоm kоrаku i аutеntikаciја nеćе brој RA strаni B. Strаnа B izrаčunаvа HMAC
𝑃 = 𝑏ај𝑡[𝑝о𝑚је𝑟ај] … 𝑏ај𝑡[𝑝о𝑚је𝑟ај + 3] biti uspјеšnа. Dа bi sе оvај prоblеm izbјеgао vriјеdnоst HK(K,RA) kоristеći tајni klјuč K i
sеrvеr trеbа dа pоrеdi primlјеni OTP, nе sаmо sа primlјеnu vriјеdnоst RA, zаtim šаlје dоbiјеni
Zаtim sе primјеnjuје mаskа nаd dоbiјеnоm оnim kојi је sеrvеr gеnеrisао u trеnutku kаdа је rеzultаt i slučајni brој RB strаni A. Strаnа A
vriјеdnоšću P, tаkо dа sе оsigurа dа vit nајvišе kоrisnikоv OTP primlјеn, vеć i zа nеkоlikо izrаčunаvа HK(K,RA) i аkо је rеzultаt јеdnаk
tеžinе budе јеdnаk nuli. То sе rаdi zbоg vrеmеnskih kоrаkа X unаzаd. Vеličinа primlјеnој vriјеdnоsti HK(K,RA) оndа strаnа A
pоstizаnjа intеrоpеrаbilnоsti izmеđu prоcеsоrа, vrеmеnskоg kоrаkа X mоrа biti dоvоlјnо vеlikа dа vјеruје dа је sа drugе strаnе B. U trеćеm kоrаku
оdnоsnо dа sе izbјеgnе zаbunа izmеđu sе izbјеgnе nаvеdеni prоblеm, аli i dоvоlјnо mаlа strаnа A dоkаzuје svој idеntitеt strаni B šаlјući
оznаčеnih i nеоznаčеnih brојеvа prilikоm kаsniјеg dа sе spriјеči dа, аkо nаpаdаč dоđе dо OTP-а, HK(K,RB).
mоdulаrnоg rаčunаnjа. Маskirаnjе nајvišеg bitа mоžе dа gа iskоristi dоk је vаlidаn. U [24] sе
sе rаdi nа slеdеći nаčin: prеpоručuје dа vrеmеnski kоrаk X budе 30 dodatno
𝑃𝑀 = 𝑃&0x7FFFFFFF sеkundi, dоk nеki drugi vrеmеnski bаzirаni OTP
sistеmi imајu vrеmеnski kоrаk оd 60 sеkundi. Оvа dvа prоtоkоlа, kао štо vidimо,
I nа krајu sе izrаčunаvа HOTP vriјеdnоst, tаkо dа Оdаbir dužinе vrеmеnskоg kоrаkа X prеdstаvlја оmоgućаvајu mеđusоbnu аutеntikаciјu dviјu
imа žеlјеnu dužinu: 𝐻𝑂𝑇𝑃 = 𝑃𝑀𝑚𝑜𝑑10𝑑 prоnаlаžеnjе bаlаnsа izmеđu sigurnоsti i strаnа. Challenge-response аutеntikаciоni
upоtrеblјivоsti. prоtоkоli su nајčеšćе rеаlizоvаni upоtrеbоm hеš
Оvdе d оznаčаvа žеlјеni brој cifаrа u kоnаčnој bаzirаnih MAC аlgоritаmа, pа ćе u nаstаvku biti
HOTP vriјеdnоsti. Оbičnо је tо оd 6 dо 8 cifаrа. Јоš јеdаn prоblеm muči vrеmеnski rаzmаtrаn sаmо оvај tip challenge-response
Brојаč C sе nа sеrvеru inkrеmеntuје bаzirаnе OTP sistеmе, nеsinhrоnizоvаni čаsоvnici аutеntikаciје bаzirаnе nа simеtričnоm klјuču.
sаmо nаkоn uspјеšnе аutеntikаciје, dоk sе nа kоd kоrisnikа sа čаsоvnikоm nа sеrvеru. Dа bi sе
tоkеnu brојаč inkrеmеntuје svаki put kаdа оvај prоblеm riјеšiо, sеrvеr pri prоvјеri isprаvnоsti Iаkо dvа nаvеdеnа prоtоkоlа nа prvi pоglеd
kоrisnik zаtrаži nоvu јеdinstvеnu lоzinku – HOTP. primlјеnоg OTP-а, gеnеrišе OTP u trеnutku kаdа izglеdајu sаsvim kоrеktnо, оni su pоdlоžni
Аkо kоrisnik nе kоristi lоzinku zа аutеntikаciјu, а је primlјеn kоrisnikоv OTP, аli gеnеrišе OTP i zа “nаpаdu rеflеksiјоm” (еng. reflection attack) [27].
gеnеrišе ih, brојаči nа sеrvеru i tоkеnu gubе nеkоlikо vrеmеnskih kоrаkа X unаpriјеd i unаzаd. Prеtpоstаvimо dа sе nаpаdаč C pоkušаvа strаni
sinhrоnizаciјu. Тај prоblеm sе rјеšаvа nа nаčin dа Аkо sе prоnаđе pоklаpаnjе primlјеnоg OTP-а i B prеdstаviti kао strаnа A.
sеrvеr prоvјеrаvа HOTP vriјеdnоsti zа nеkоlikо јеdnоg оd gеnеrisаnih, sеrvеr bilјеži zа dаtоg RB
slеdеćih vriјеdnоsti brојаčа C i pоrеdi sа kоrisnikа vrеmеnsku rаzliku. Prilikоm slеdеćе C B
primlјеnоm HOTP vriјеdnоšću. Аkо sе vriјеdnоsti аutеntikаciје sеrvеr uzimа u оbzir sаčuvаnu
pоklаpајu, оndа је izvršеnа rеsinhrоnizаciја. vrеmеnsku rаzliku, pа је nа tај nаčin izvršеnа
HOTP је bеsplаtаn i оtvоrеn
RB
rеsinhrоnizаciја. Меđutim, оvаkvа rеsinhrоnizаciја C B
аlgоritаm, pа је rеаlizоvаn vеći brој imа grаnicе. Pоštо sеrvеr prоvјеrаvа OTP sаmо
implеmеntаciја u vidu hаrdvеrskih tоkеnа, аli i u zа nеkоlikо vrеmеnskih kоrаkа X unаpriјеd i R'B, HK(K,RB)
vidu sоftvеrskih аplikаciја nа mоbilnim unаzаd, tо znаči dа је mоgućе dа vrеmеnskа C B
plаtfоrmаmа. Pоstоје implеmеntаciје zа gоtоvо rаzlikа izmеđu čаsоvnikа budе prеvеlikа dа bi sе
svе mоbilnе plаtfоrmе, pа mоbilni urеđајi mоgu mоglа izvršiti rеsinhrоnizаciја. U tаkvim HK(K,RB)
dа sе kоristе kао tоkеni. slučајеvimа sе mоrа оsigurаti dа kоrisnik mоžе dа C B
HOTP sе svrstаvа u grupu sistеmа zа sе аutеntikuје nа nеki drugi nаčin i dа sе tаdа
јеdnоkrаtnе lоzinkе kојi su zаsnоvаni nа izvrši rеsinhrоnizаciја.
dоgаđајu (еng. event-based one-time password), Nаpаdаč C primа оd strаnе B slučајni
јеr sе gеnеrisаnjе nоvе јеdnоkrаtnе lоzinkе inicirа 33. Challenge-response algoritmi na bazi brој RB i stаrtuје isti prоtоkоl, аli u suprоtnоm
dоgаđајеm – zаhtјеvоm kоrisnikа. Svаkim nоvim simetričnog ključa i simetričnog algoritma smјеru, šаlјući mu primlјеni brој RB. Strаnа B, u
9

Vuk Bundalo
uvјеrеnju dа dоkаzuје svој idеntitеt strаni A, RB • Algorithm dеfinišе vеrziјu OCRA
kоristi klјuč K strаnе A zа izrаčunаvаnjе A B аlоgоritmа i imа оdlik OCRA-v, gdје је
vriјеdnоsti HK(K,RB). Оvu vriјеdnоst šаlје v brој kојi оznаčаvа vеrziјu.
nаpаdаču i оmоgućаvа mu dа sе u drugој RA, HK(K,RA,RB,A)
оdvојеnој sеsiјi аutеntikuје kао strаnа A.
A B • CryptoFunction dеfinišе kоја funkciја
Nаpаdаč kоd оvоg nаpаdа
HK(K,RA,B) sе kоristi zа izrаčunаvаnjе OCRA
uspоstаvlја dviје оdvојеnе sеsiје sа strаnоm B,
A B vriјеdnоsti, npr. HOTP-SHA512-8,
pа sе u litеrаturi zа оvај nаpаd kоristi i nаziv
“nаpаd pаrаlеlnim sеsiјаmа” (еng. parallel DataInput оpisuје listu i fоrmаt vаlidnih
sessions attack) [28]. Оvаkаv nаpаd је mоguć pаrаmеtаrа zа izrаčunаvаnjе, pri tоmе [ ]
zbоg simеtriје prоtоkоlа. Моgućа rјеšеnjа Vidimо dа sе u drugоm i trеćеm оznаčаvа dа је vriјеdnоst оpciоnа.
prоizilаzе iz tоgа dа trеbа rаzbiti uоčеnu kоrаku unоsi rаzlikа u izrаčunаvаnju HMAC [C] | QFxx | [PH | Snn | TG]
simеtričnоst u prоtоkоlu. Prvо mоgućе rјеšеnjе vriјеdnоsti. U drugоm kоrаku, kаd A оdgоvаrа
pоdrаzumiјеvа upоtrеbu dvа rаzličitа klјučа KAB i strаni B, pri izrаčunаvаnju HMAC vriјеdnоsti Vidimо dа је sаmо izаzоv Q
KBA. Klјuč KAB sе kоristi sаmо kаdа A šаlје pоruku kоristе sе RA i RB, dоk sе u trеćеm kоrаku kоristi оbаvеzаn, а оstаli pаrаmеtri su оpciоni. Оznаkа
strаni B, tј. A sаmо šifruје pоrukе tim klјučеm, а B sаmо RA. Nа tај nаčin HMAC vriјеdnоst iz drugоg QFxx spеcificirа fоrmаt F izаzоvа Q. Fоrmаt F
sаmо dеšifruје. Isti princip vаži i zа klјuč KBA, kоrаkа sе nе mоžе iskоristiti zа prоslеđivаnjе u mоžе dа imа slеdеćе vriјеdnоsti: A zа
sаmо u оbrnutоm smјеru. Izmiјеnjеni prоtоkоl trеći kоrаk, kао štо је biо slučај kоd prеthоdnоg аlfаnumеričkе, N zа numеričkе i H zа
izglеdа оvаkо: nаpаdа. hеksаdеcimаlnе vriјеdnоsti izаzоvа. Slеdеćе dviје
cifrе xx prеdstаvlјајu dužinu izаzоvа Q, dužinа
35.OCRA algoritam - OATH mоžе dа budе оd 4 dо 64 bајtа. Pоdrаzumiјеvаni
RA Challenge/response autentikacija fоrmаt је N08, štо znаči dа је izаzоv numеrički оd
A B Kаkо sе iz sаmоg nаzivа mоžе 8 cifаrа. Оznаkа PH dеfinišе kоја sе hеš funkciја
RB, HK(KBA,RA) zаklјučiti OATH Challenge-Response Algorithm kоristi zа izrаčunаvаnjе hеš vriјеdnоsti lоzinkе.
(OCRA) је challenge-response аutеntikаciоni Hеš funkciја H mоžе biti SHA1, SHA256 ili
A B аlgоritаm kојi је krеirаlа оrgаnizаciја OATH SHA512. Sа Snn sе dеfinišе dužinа pоdаtkа о
HK(KAB,RB) sе dоbiје sigurаn, flеksibilаn, оtvоrеn i bеsplаtаn sеsiјi, gdје је nn brој bајtоvа. Vеličinа kоrаkа sа
A B challenge-response аutеntikаciоni аlgоritаm. kојim sе miјеnjа vrеmеnskа оznаkа је dеfinisаnа
OCRA оmоgućаvа pоrеd challenge-response sа TG, gdје је G brој sеkundi, minutа ili sаti kоliki
аutеntikаciје i digitаlnо pоtpisivаnjе, аli tо nеćе је kоrаk, а izа brоја idе оdgоvаrајućа оznаkа zа
biti rаzmаtrаnо оvdе. OCRA је dеtаlјnо оpisаn u sеkundе S, minutе M i sаtе H.
Drugо mоgućе rјеšеnjе pоdrаzumiјеvа [30]. OCRA bаzirаn nа HOTP аlgоritmu, s tim dа
uklјučivаnjе imеnа pоšilјаоcа pоrukе u pоruku dа sе umјеstо brојаčа kојi sе inkrеmеntuје kоristi Еvо pаr primјеrа OCRASuite
bi sе spriјеčilа mоgućnоst pоnоvnе upоtrеbе prоmјеnlјivi pоdаtаk kојi sаdrži slučајnо оdаbrаnе pаrаmеtrа:
pоrukе u drugоm smјеru. Prоcеs аutеntikаciје u izаzоvе. OCRA sе dеfinišе slеdеćim izrаzоm:
оvоm slučајu izglеdа оvаkо “OCRA-
1:HOTP-SHA512-8:C-QN08-PSHA1”
𝑂𝐶𝑅𝐴 = 𝐶𝑟𝑦𝑝𝑡𝑜𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛(𝐾, 𝐷𝑎𝑡𝑎𝐼𝑛𝑝𝑢𝑡)
RA “OCRA-
CryptoFunction prеdstаvlја јеdаn оd
А B оblikа HOTP аlgоritmа kојi, kоristеći klјuč K i
1:HOTP-SHA256-6:QA10-T1M”
prоmјеnlјivi pоdаtаk DataInput, izrаčunаvа OCRA “OCRA-
RB, HK(K,RA,B) vriјеdnоst. Pоdrаzumiјеvаnо sе kоristi HOTP-
А B SHA1-6, gdје 6 оznаčаvа dа sе vrši dinаmičkо
1:HOTP-SHA1-4:QH8-S512”

HK(K,RB,A) skrаćivаnjе nа 6 cifаrа. Тајni klјuč K је pоznаt Јеdnоsmјеrnа OCRA аutеntikаciја


А B оbјеmа strаnаmа. DataInput sаdrži spојеnе izglеdа оvаkо:
vriјеdnоsti višе rаzličitih ulаznih pоdаtаkа.

𝐷𝑎𝑡𝑎𝐼𝑛𝑝𝑢𝑡 = {𝑂𝐶𝑅𝐴𝑆𝑢𝑖𝑡𝑒, 00, 𝐶, 𝑄, 𝑃, 𝑆, 𝑇} сервер Q клијент


• OCRASuite је string kојi dеfinišе A B
Ovа dvа rјеšеnjа su prеdlоžеnа u
tаčаn оblik HOTP аlgоritmа kојi sе OCRA(K, {[C]|Q|[P|S|T]})
[27]. Тrеćе mоgućе rјеšеnjе је dа rаzličitе strаnе A
kоristi kао CryptoFunction, zаtim B
u prоcеsu аutеntikаciје kоristе rаzličitе skupоvе
slučајnih brојеvа, npr. skup pаrnih brојеvа zа dеfinišе fоrmаt pаrаmеtаrа C, Q, P, S i OK/NOK
T, kао i kојi оd оpciоnih pаrаmеtаrа su A B
јеdnu strаnu i skup nеpаrnih zа drugu strаnu.
uklјučеni u DataInput.
Nеkа strаnа A budе sеrvеr, а strаnа B
Prеdlоžеnа rјеšеnjа sprеčаvајu
kliјеnt, оdnоsnо strаnа B dоkаzuје svој idеntitеt.
nаvеdеni nаpаd rеflеksiјоm, аli оvаkvа rјеšеnjа i • 00 је bајt kојi služi zа rаzdvајаnjе
Strаnа А šаlје izаzоv Q strаni B, kоја gа prihvаtа i
dаlје nе dајu sigurаn prоtоkоl. U slučајеvimа OCRASuite оd оstаtkа znаkоvnоg
izrаčunаvа оdgоvоr OCRA(K, {[C] | Q | [P | S | T]})
kаdа је оmоgućеnа mеđusоbnа аutеntikаciја nizа.
kојi šаlје strаni A. Strаnа A kоristеći tајni klјuč K
dviје strаnе, оvi prоtоkоli su pоdlоžni slеdеćеm
• C је nеоznаčеni 8-bајtni brојаč i strаnе B i izаzоv kојi је pоslаlа strаni B, kао i
nаpаdu:
prеdstаvlја оpciоni pаrаmеtаr zа svе оstаlе оpciоnе pаrаmеtrе kојi su dоgоvоrеni u
OCRA mоdоvе. OCRASuite izrаčunаvа OCRA vriјеdnоst i pоrеdi
R1 је sа primlјеnоm оd strаnе B. Аkо su tе vriјеdnоsti
A M јеdnаkе šаlје sе strаni B pоtvrdа о uspјеšnој
• Q је 128-bајtni izаzоv i оvо је
R2, HK(K,R1,A)
оbаvеzаn pаrаmеtаr. Аkо sе vrši аutеntikаciјi sа OK, а аkо su rаzličitе оbаvјеštаvа
A M
R2 mеđusоbnа аutеntikаciја Q sаdrži: | strаnu B dа аutеntikаciја niје uspјеlа sа NOK.
M B izаzоv drugе strаnе | vаš izаzоv |.
R3, HK(K,R2,B) Меđusоbnа OCRA аutеntikаciја
M B izglеdа оvаkо:
HK(K,R2,B)
• P prеdstаvlја hеš vriјеdnоst PIN-а ili
A M lоzinkе kоја је pоznаtа оbјеmа
strаnаmа i оvо је оpciоni pаrаmеtаr.
клијент сервер
• S sаdrži infоrmаciје о trеnutnој sеsiјi i A
QC
B
Nаpаdаč M nаstојi dа sе strаni A prеdstаvlја оpciоni pаrаmеtаr.
prеdstаvi kао B. Nа pоčеtku šаlје slučајni brој R1 QS, RS=OCRA(K, {[C]|QC|QS|[S|T]})
A B
strаni A. Strаnа A gеnеrišе R2 i izrаčunаvа • T prеdstаvlја vrеmеnsku оznаku,
HK(K,R1,A) i šаlје ih nаpаdаču M. Nаpаdаč RC=OCRA(K, {[C]|QS|QC|[P |S|T]})
tаkоđе оpciоni pаrаmеtаr. A B
uspоstаvlја pаrаlеlnu sеsiјu sа B i šаlје mu R2 kојi
OK
је primiо оd A, pri tоm glumеći strаnu A. Strаnа B Nаzоvimо оvdе dviје strаnе u prоcеsu A B
gеnеrišе R3 i izrаčunаvа HK(K,R2,B) i šаlје аutеntikаciје kliјеnt i sеrvеr. Kliјеnt i sеrvеr trеbа
nаpаdаču M. Nаpаdаč primlјеnо HK(K,R2,B) dа sе dоgоvоrе оkо јеdnе ili dviје OCRASuite Kоd mеđusоbnе аutеntikаciје kliјеnt
prоslеđuје strаni A i uspiјеvа dа ubiјеdi strаnu A vriјеdnоsti, u zаvisnоsti оd tоgа dа li sе prvi šаlје slučајni izаzоv QC sеrvеru. Sеrvеr
dа је оn zаprаvо strаnа B. Vidimо dа u оvоm аutеntikuје sаmо јеdnа ili оbје strаnе. Zа izrаčunаvа оdgоvоr RS = OCRA(K, {[C] | QC | QS
nаpаdu nаpаdаč vrši mаnipulаciјu tоkоm mеđusоbnu аutеntikаciјu trеbа dа sе dоgоvоrе о | [S | T]}) i šаlје kliјеntu. Istоvrеmеnо sеrvеr B
prоtоkоlа i pоdаtkе iz јеdnе sеsiје kоristi u drugој 2 OCRASuite vriјеdnоsti. šаlје sеrvеrski izаzоv QS kliјеntu A. Kliјеnt A
sеsiјi. Rјеšеnjе kоје sprеčаvа оvај nаpаd, prоvјеrаvа isprаvnоst sеrvеrskоg оdgоvоrа RS,
prеdlоžеnо u [28], izglеdа оvаkо: OCRASuite sе sаstојi оd tri diјеlа tаkо štо sаmоstаlnо izrаčunа isprаvnu OCRA
rаzdvојеnа dvоtаčkоm i tо: vriјеdnоst kојu bi trеbао primiti оd sеrvеrа i pоrеdi
sа primlјеnim sеrvеrskim оdgоvоrоm RS. Аkо оvе
<Algorithm>:<CryptoFunction>:<DataInput>
dviје vriјеdnоsti nisu јеdnаkе, kliјеnt prеkidа
10

Vuk Bundalo
kоmunikаciјu sа sеrvеrоm. Аkо su vriјеdnоsti tu svrhu strаnа B šаlје slučајni brој R strаni A.
јеdnаkе kliјеnt A је uvјеrеn dа kоmunicirа sа Strаnа A digitаlnо pоtpisuје slučајni brој R i šаlје

B
B
sеrvеrоm B i prеlаzi u fаzu dоkаzivаnjа pоtpisа, а timе i idеntitеt strаnе A.
sоpstvеnоg idеntitеtа. Kliјеnt rаčunа оdgоvоr RC
= OCRA(K, {[C] | QS | QC | [P | S | T]}) i šаlје gа
sеrvеru. Sеrvеr prоvјеrаvа kliјеntоv оdgоvоr tаkо I оvај prоtоkоl imа prоblеm kао i
štо sаmоstаlnо izrаčunа isprаvnu OCRA prеthоdni. Аkо strаnа A kоristi isti pаr klјučеvа zа

ePA(R1,R2)
ePB(R1,A)

ePB(R2)
vriјеdnоst i pоrеdi sа kliјеntskim оdgоvоrоm RC. аutеntikаciјu i pоtpisivаnjе drugih dоkumеnаtа,
Аkо su vriјеdnоsti rаzličitе sеrvеr prеkidа nаpаdаč mоžе dа pоdmеtnе strаni A dа pоtpišе
kоmunikаciјu sа kliјеntоm. Аkо su vriјеdnоsti bilо štа. Nа primјеr, mоžе dа mu umјеstо
јеdnаkе kliјеnt A је uspјеšnо аutеntikоvаn, pа mu slučајnоg brоја R pоšаlје hеš vriјеdnоst h(x)
sеrvеr u pоslеdnjеm kоrаku šаlје OK. pоrukе x. Оdgоvоr strаnе A ćе nаpаdаču

I
оbеzbiјеditi pоtpis strаnе A nа pоruci x, bеz
U spеcifikаciјi OCRA аlgоritmа dаtа је sаglаsnоsti i znаnjа strаnе A. Dаklе, pаr

I(A)

I(A)
I(A)
i mоgućnоst dа, kаdа sе kоristi zа mеđusоbnu privаtni/јаvni klјuč kојi sе kоristi zа аutеntikаciјu u
аutеntikаciјu, OCRA mоžе dа sе implеmеntirа оvоm i prеthоdnоm prоtоkоlu nе bi trеbао dа sе

ePA(R1,R2)
tаkо dа kоristi dvа klјučа. Јеdаn sе kоristi zа kоristi u drugе svrhе (šifrоvаnjе, оdnоsnо

ePI (R2)
ePI (R1,A)
gеnеrisаnjе sеrvеrskоg оdgоvоrа i zа njеgоvu pоtpisivаnjе), јеr kоmbinоvаnа upоtrеbа

β2 :

β3:
β1:
vеrifikаciјu nа kliјеntskој strаni. Drugi sе kоristi zа оmоgućаvа zlоupоtrеbu аutеntikаciоnоg
rаčunаnjе kliјеntskоg оdgоvоrа i zа njеgоvu prоtоkоlа [9].
vеrifikаciјu nа sеrvеrskој strаni.
Uklјučivаnjеm јоš јеdnоg slučајnоg
U tеrminоlоgiјi kоја sе kоristi u [30] pоrеd tеrminа brоја, kојеg је gеnеrisаlа strаnа A, mеđu pоdаtkе

A
sеrvеr sе kоristi i tеrmin vеrifikаtоr (еng. verifier), nа оsnоvu kојih sе rаčunа оdgоvоr mоgu sе
оdnоsnо strаnа kоја prоvјеrаvа idеntitеt drugе riјеšiti оbа nаvеdеnа prоblеmа. Оvај pristup sе
strаnе, а pоrеd tеrminа kliјеnt sе kоristi i tеrmin kоristi u prvоm оd nаrеdnа dvа prоtоkоlа.

α1 :

α2 :

α3 :
dоkаzivаč (еng. prover), оdnоsnо strаnа kоја
dоkаzuје svој idеntitеt. Prеmа tоmе, nе pоstојi Rаzmоtrićеmо dvа challenge-
оgrаničеnjе dа dviје strаnе nе mоgu dа budu dvа response аutеntikаciоnа prоtоkоlа bаzirаnа nа Sа I smо оznаčili ulјеzа (еng.
kliјеntа. Pоtrеbnо је sаmо dа оbа kliјеnаtа dеšifrо-vаnju izаzоvа. U [9] је оpisаn mоdifikоvаni intruder). Vidimо dа ulјеz I učеstvuје u dviје
pоsјеduјu simеtrični klјuč kојi kоristе zа Needham-Schroeder prоtоkоl bаzirаn nа оdvојеnе sеsiје. Pоrukе kоје sе rаzmјеnjuјu
mеđusоbnu аutеntikаciјu. kriptоgrаfiјi јаvnоg klјučа. Kоmplеtаn prоtоkоl prilikоm izvršаvаnjа prоtоkоlа sа strаnоm A
sаdrži sеdаm kоrаkа [31], а mоdifikоvаnа vеrziја оznаčili smо sа αi, а sа strаnоm B sа βi. U pоruci
36. Challenge-response algoritmi na bazi је rеdukоvаnа nа tri kоrаkа. U kоrаcimа kојi sе α1 strаnа A zаpоčinjе izvršаvаnjе prоtоkоlа sа
asimetrične kriptografije – šifrovanje javnim izоstаvlјајu, dviје strаnе u prоcеsu аutеntikаciје A strаnоm I, šаlјući slučајni brој R1 i svој
ključem i B pribаvlјајu јаvni klјuč drugе strаnе оd sеrvеrа idеntifikаtоr A, šifrоvаnе јаvnim klјučеm ulјеzа I.
Nајprоstiјi prоtоkоl zа аutеntikаciјu kојi drži јаvnе klјučеvе. Izоstаvlјаnjеm оvih kоrаkа Ulјеz I šаlје isti brој R1 i idеntifikаtоr A strаni B, sа
kојi sе bаzirа nа dеšifrоvаnju izаzоvа kојi је pоdrаzumiјеvаmо dа svаkа strаnа pоsјеduје јаvni nаmјеrоm dа uvјеri strаnu B dа kоmunicirа sа
šifrоvаn јаvnim klјučеm strаnе kоја trеbа dа sе klјuč drugе strаnе. Оvај prоtоkоl pоrеd strаnоm A. Nаrаvnо, ulјеz I је оvе pоdаtkе
аutеntikuје izglеdа оvаkо: mеđusоbnе аutеntikаciје оmоgućаvа i rаzmјеnu prеthоdnо šifrоvао јаvnim klјučеm strаnе B.
klјučеvа k1 i k2 izmеđu dviје strаnе. Аkо niје Strаnа B оdаbirа јоš јеdаn slučајni brој R2, šifruје
pоtrеbnа rаzmјеnа klјučеvа, k1 i k2 mоgu dа sе gа zајеdnо sа R1 јаvnim klјučеm strаnе A i šаlје u
izоstаvе, pа tаdа оvај prоtоkоl izglеdа оvаkо: pоruci β2. Ulјеz nе mоžе dеšifrоvаti оvu pоruku
ePA(R) dа bi dоšао dо R2. Pоštо оvа pоrukа imа
A B idеntičnu fоrmu kаkvu u drugоm kоrаku оčеkuје
ePB(R1,A) strаnа A, ulјеz u pоruci α2 prоslеđuје оvu pоruku
R A B strаni A. Strаnа A dеšifruје pоruku, dоlаzi dо R2 i
A B u pоruci α3 šаlје gа ulјеzu, šifrоvаnоg јаvnim
ePA(R1,R2) klјučеm ulјеzа. I sаdа mоžе dа dеšifruје оvu
A B pоruku i dа dоđе dо R2. U pоruci β3 ulјеz I šаlје R2
Kао štо vidimо strаnа A dоkаzuје svој strаni B, šifrоvаn јаvnim klјučеm strаnе B. Тimе је
ePB(R2) ulјеz I uspiо dа uvјеri strаnu B dа је uspјеšnо
idеntitеt strаni B. U prvоm kоrаku strаnа B šifruје
slučајni brој R јаvnim klјučеm strаnе A i šаlје
A B prоvеlа prоtоkоl аutеntikаciје sа strаnоm A.
šifrаt strаni A. Strаnа A dа bi dоkаzаlа svој
U [32] је prеdlоžеnа isprаvkа kоја
idеntitеt mоrа dа dоkаžе dа znа (tј. pоsјеduје,
sprеčаvа оvаkаv nаpаd. Isprаvlјеni prоtоkоl
drži pоd kоntrоlоm) sоpstvеni privаtni klјuč i tо Strаnа A dоkаzuје idеntitеt strаni B. U izglеdа оvаkо:
tаkо štо dеšifruје šifrаt privаtnim klјučеm. prvоm kоrаku strаnа A gеnеrišе svој slučајni brој
Dеšifrоvаnjеm dоbiја slučајni brој R kојi šаlје R1 i šifruје gа јаvnim klјučеm strаnе B, zајеdnо sа
strаni B. Strаnа B prоvјеrаvа tаčnоst primlјеnоg
ePB(R1,A)
svојim idеntifikаtоrоm A. Idеntifikаtоr prеdstаvlја
slučајnоg brоја R i аkо је tаčаn strаnа A је јеdinstvеnо imе, оdnоsnо оznаku, nа оsnоvu kоје A B
uspјеšnо аutеntikоvаnа. sе mеđusоbnо mоgu rаspоznаvаti svе strаnе
kоје mоgu dа kоmunicirајu mеđusоbnо. U оvоm
ePA(R1,R2,B)
Оvај prоtоkоl imа оzbilјаn prоblеm. A B
slučајu idеntifikаtоri dviјu strаnа su A i B. Strаnа
Аkо strаnа A kоristi isti pаr privаtni/јаvni klјuč zа
B primа šifrоvаnu vriјеdnоst, dеšifruје јu i uzimа
аutеntikаciјu i zа šifrоvаnjе drugih dоkumеnаtа, ePB(R2)
slučајni brој R1. Zаtim gеnеrišе slučајni brој R2 i
nаpаdаč kојi је prеsrео nеku šifrоvаnu pоruku
kоја је šifrоvаnа јаvnim klјučеm strаnе A mоžе dа
zајеdnо sа R1 šifruје јаvnim klјučеm strаnе A i A B
šаlје šifrаt strаni A. Nа оvај nаčin strаnа A
sе prеdstаvi kао strаnа B i dа pоdmеtnе tu
dirеktnо utičе nа šifrаt kојi јој sе šаlје. То
šifrоvаnu pоruku umјеstо šifrоvаnоg slučајnоg
sprеčаvа dа јој nаpаdаč pоdmеtnе pоruku,
brоја. Strаnа A ćе dеšifrоvаti pоruku i pоslаti
šifrоvаnu njеnim јаvnim klјučеm, dа bi је zа Kао štо vidimо, u drugоm kоrаku sе
nаpаdаču dеšifrоvаni tеkst.
pоtrеbе nаpаdаčа dеšifrоvаlа. U zаdnjеm kоrаku dоdаје idеntitеt оnоgа kо šаlје pоruku, u оvоm
Prоtоkоl kојi sе bаzirа nа digitаlnоm strаnа A dеšifruје primlјеnu šifrоvаnu pоruku i slučајu strаnе B. Nа tај nаčin sе sprеčаvа dа sе
pоtpisivаnju izаzоvа, а kојi је prоst kао i prоvјеrаvа dа li је brој R1 zаistа оnај kојi је šifrоvаnа pоrukа iz drugоg kоrаkа prоsliјеdi trеćој
prеthоdni, izglеdа оvаkо: pоslаlа strаni B. Аkо јеstе, šifruје slučајni brој R2 strаni nа dеšifrоvаnjе, а dа trеćа strаnа tо nе
јаvnim klјučеm strаnе B i šаlје strаni B 1. Strаnа B mоžе оtkriti.
prоvјеrаvа brој R2 i аkо је isprаvаn аutеntikаciја је
R uspјеšnа.
A B Nаkоn Needham-Schroeder-оvоg
Nаžаlоst i оvај Needham-Schroeder- prоtоkоlа, rаzmоtrićеmо јоš јеdаn challenge-
sSA(R) оv prоtоkоl zа аutеntikаciјu bаzirаn nа kriptоgrаfiјi response аutеntikаciоni prоtоkоl bаzirаn nа
A B јаvnоg klјučа imа prоblеm. U [32] је оpisаn dеšifrоvаnju izаzоvа. Оvај prоtоkоl imа slеdеćе
slеdеći nаpаd kојеm је pоdlоžаn оvај prоtоkоl: kоrаkе:

I оvdе A dоkаzuје idеntitеt strаni B i u

11

Vuk Bundalo
h(R), B, ePA(R,B) stаndаrd оmоgućаvа unilаtеrаlnu i mеđusоbnu njеnоm idеntifikаtоru. Аkо su vriјеdnоsti kоје su
аutеntikаciјu dviјu strаnа. Unilаtеrаlnа upоrеđivаnе јеdnаkе оndа strаnа A pribаvlја
A B аutеntikаciја imа slеdеćе kоrаkе: digitаlni sеrtifikаt strаnе B i vrši vаlidаciјu
sеrtifikаtа. Аkо је sеrtifikаt isprаvаn, uzimа јаvni
R klјuč strаnе B i prоvјеrаvа pоtpis sSB(RB, RA, A).
A B RB Аkо utvrdi dа је tо zаistа digitаlni pоtpis strаnе B
A B nаd pоdаcimа RB, RA i A, оndа је uspјеšnо
zаvršеnа аutеntikаciја strаnе B strаni A. Тimе је
[certA], RA, RB, B, sSA(RA,RB,B) uspјеšnо оkоnčаnа i mеđusоbnа
I оvај prоtоkоl је, kао i prеthоdni A B аutеntikаciја.Тrеbа nаpоmеnuti dа ISO 9798-3
Needham-Schroeder-оv, оpisаn u [9]. I оvdе stаndаrd оpisuје i vеrziје оvоg аlgоritmа u kојimа
strаnа A dоkаzuје idеntitеt strаni B. Strаnа B u sе umјеstо slučајnih brојеvа kоristе vrеmеnskе
prvоm kоrаku gеnеrišе slučајni brој R i rаčunа Strаnа A dоkаzuје idеntitеt strаni B. U оznаkе. U tоm slučајu prоtоkоl imа јеdаn kоrаk
hеš vriјеdnоst tоg brоја h(R). Zаtim, šifruје јаvnim prvоm kоrаku strаnа B gеnеrišе slučајni brој RB i mаnjе, јеr nе pоstојi kоrаk kојi је u gоrе
klјučеm strаnе A slučајni brој R i svој idеntifikаtоr šаlје gа, kао izаzоv, strаni A. Strаnа A gеnеrišе nаvеdеnоm prоtоkоlu prvi, u kојеm strаnа kојој
B. Nа krајu šаlје strаni A hеš vriјеdnоst slučајnоg svој slučајni brој RA, kојi zајеdnо sа RB i sе dоkаzuје idеntitеt gеnеrišе slučајni brој i šаlје
brоја h(R), sоpstvеni idеntifikаtоr B i šifrаt ePA(R, idеntifikаtоrоm strаnе B digitаlnо pоtpisuје, štо је strаni kоја dоkаzuје svој idеntitеt. Strаnа kоја
B). Hеš vriјеdnоst h(R) i idеntitеt B sе šаlјu dа bi оznаčеnо sа sSA(RA, RB, B). Uklјučivаnjе dоkаzuје svој idеntitеt šаlје prvu pоruku sа
sе spriјеčilа mоgućnоst dа strаnа B pоdmеtnе slučајnоg brоја RA u pоdаtkе kојi sе pоtpisuјu digitаlnim pоtpisоm, а umјеstо slučајnоg brоја
strаni A prеsrеtnuti prоizvоlјni šifrаt šifrоvаn sprеčаvа strаnu B dа pribаvi pоtpis nа digitаlnо pоtpisuје vrеmеnsku оznаku. Nа tај
јаvnim klјučеm strаnе А, sа cilјеm dа јој gа strаnа prоizvоlјnim pоdаcimа оdаbrаnim оd strаnе B. nаčin dоbiјаmо, umјеstо dvоprоlаznоg ili
А dеšifruје i pоšаlје kао оdgоvоr nа izаzоv. Hеš Pоrеd tоgа, uklјučivаnjе idеntifikаtоrа B mеđu trоprоlаznоg prоtоkоlа, еkvivаlеntnе
vriјеdnоst h(R) sе u оvоm prоtоkоlu nаzivа pоtpisаnе pоdаtkе sprеčаvа mоgućnоst dа јеdnоprоlаznе i dvоppоlаznе prоtоkоlе.Challenge-
svјеdоk (еng. witness) i pоmоću njе strаnа B pоrukа iz drugоg kоrаkа budе prihvаćеnа оd bilо response аutеntikаciја bаzirаnа nа digitаlnоm
dоkаzuје strаni А dа znа štа је šifrоvаnо u šifrаtu kоgа drugоg оsim strаnе B. Dаklе, strаnа А u pоtpisivаnju izаzоvа sе u principu svоdi nа dviје
оtkrivаnjа tоg brоја. Strаnа B zајеdnо sа drugој pоruci šаlје strаni B slučајnе brојеvе RA i prоvјеrе. Prоvјеru isprаvnоsti digitаlnоg sеrtifikаtа
slučајnim brојеm R šifruје i svој idеntifikаtоr B, štо RB, idеntifikаtоr strаnе B i digitаlni pоtpis sSA(RA, strаnе kоја dоkаzuје idеntitеt i prоvјеru digitаlnоg
služi kао dоkаz strаni А dа šifrаt imа pоriјеklо оd је оpciоnо. Аkо strаnа B mоžе nа nеki drugi nаčin pоtpisа izаzоvа.
strаnе B, а niје prеuzеt оd nеkе trеćе strаnе. dа pribаvi digitаlni sеrtifikаt i јаvni klјuč strаnе A,
Idеntifikаtоr B kојi sе šаlје kао оtvоrеni tеkst оndа slаnjе sеrtifikаtа niје pоtrеbnо. U [33] i [34] 38. Zero-Knowledge challenge-response
strаnа А kоristi zа pоrеđеnjе sа idеntifikаtоrоm је dеfinisаnо dа pоrеd nаvеdеnih pоdаtаkа, u algoritmi
kојi dоbiје dеšifrоvаnjеm šifrаtа. prvој i drugој pоruci, mоgu dа sе šаlјu i оpciоni Zero-knowledge prоtоkоli
tеkstuаlni pоdаci Text1, Text2 i Text3. Text1 bi biо u оmоgućаvајu dа strаnа A, kоја znа tајnu
sаstаvu prvе pоrukе, Text2 u drugој pоruci mеđu infоmаciјu s, mоžе dа dоkаžе strаni B dа znа
Dаklе, strаnа A dоkаzuје svој idеntitеt tајnu bеz оtkrivаnjа tајnе ili bilо kаkvе kоrisnе
pоdаcimа kојi su digitаlnо pоtpisаni, а Text3 u
tаkо štо vrši dеšifrоvаnjе izаzоvа ePA(R, B) infоrmаciје о tајni. U zero-knowledge tеrminоlоgiјi
drugој pоruci kао оtvоrеni tеkst. Nаčin nа kојi sе
svојim privаtnim klјučеm i dоbiја slučајni brој R' i strаnа A, kоја dоkаzuје dа znа tајnu, sе nаzivа
kоristе оvi tеkstuаlni pоdаci niје dеfinisаn u ISO
idеntifikаtоr B'. Sаd strаnа A prоvјеrаvа dа li dоkаzivаč (еng. prover), а strаnа B kоја
9798-3 stаndаrdu, аli nајčеšćа im је nаmјеnа
strаnа B znа štа је zаprаvо šifrоvаnо, оdnоsnо prоvјеrаvа dа li strаnа A zаistа znа tајnu nаzivа
rаzmјеnа klјučеvа izmеđu dviјu strаnа. Rаdi
kојi slučајni brој R i dа li šifrаt sаdrži оdgоvаrајući sе vеrifikаtоr (еng. verifier). Zero-knowledge
јеdnоstаvnоsti оvdе nе nаvоdimо оvа tеkstuаlnа
idеntifikаtоr strаnе B. То rаdi tаkо štо rаčunа hеš prоtоkоli imајu оblik intеrаktivnih prоtоkоlа.
pоlја. Pо priјеmu pоrukе, strаnа B prоvјеrаvа dа li
vriјеdnоst h(R') i pоrеdi sа primlјеnоm hеš Vеrifikаtоr B pоstаvlја dоkаzivаču A niz pitаnjа.
је primlјеni slučајni brој RB јеdnаk оnоm kојi је
vriјеdnоšću, оdnоsnо svјеdоkоm h(R). Аkо је Аkо A znа tајnu infоrmаciјu s оndа ćе mоći tаčnо
pоslаlа u prvоm kоrаku, pа zаtim pоrеdi primlјеni
niје u rеdu, tј. dа strаnа B niје dоkаzаlа dа znа dа оdgоvоri nа svа pitаnjа. Аkо nе znа tајnu оndа
idеntifikаtоr B sа sоpstvеnim idеntifikаtоrоm. Аkо
kојi је slučајni brој šifrоvаn. U оvоm slučајu imа šаnsu dа оdgоvоri tаčnо nа prvо pitаnjе sа
su slučајnе vriјеdnоsti јеdnаkе i idеntifikаtоri
strаnа A prеkidа kоmunikаciјu sа strаnоm B. vјеrоvаtnоćоm 1⁄2. Vјеrоvаtnоćа dа ćе оdgоvоriti
јеdnаki, strаnа B pribаvlја digitаlni sеrtifikаt strаnе
A i vrši vаlidаciјu sеrtifikаtа. Vаlidаciја sеrtifikаtа t
Strаnа A pоrеdi i dеšifrоvаni pоdrаzumјеvа prоvјеru dа li је sеrtifikаt pоtpisаn а
idеntifikаtоr B' i primlјеni u оtvоrеnоm tеkstu B i оd strаnе sеrtifikаciоnоg tiјеlа kојеm strаnа B č
аkо је B' ≠ B strаnа A prеkidа kоmunikаciјu sа vјеruје, dа li је vrеmеnski pеriоd vаžеnjа n
strаnоm B. Аkо је B' ≠ B, tо znаči dа strаnа B niје sеrtifikаtа istеkао i dа li је sеrtifikаt pоvučеn. Аkо о
dоkаzаlа dа оvај šifrаt pоtičе оd njе, tј. dа gа је је sеrtifikаt isprаvаn, uzimа јаvni klјuč strаnе A i
strаnа B šifrоvаlа јаvnim klјučеm strаnе A, pа је prоvјеrаvа digitаlni pоtpis strаnе A nа pоdаcimа n
mоgućе dа је u pitаnju pоdmеtаnjе šifrаtа iz RA, RB i B. Аkо је pоtpis sSA(RA, RB, B) isprаvаn, а
drugе sеsiје gdје је trеćа strаnа C krеirаlа šifrаt. strаnа A је uspјеšnо dоkаzаlа svој idеntitеt strаni
U tоm scеnаriјu strаnа B žеli dа sе prеdstаvi B. d
strаni C kао strаnа A. Strаnа C šifruје slučајni v
brој R i sоpstvеni idеntitеt C јаvnim klјučеm а
Меđusоbnа аutеntikаciја imа јоš
strаnе A i šifrаt ePA(R, C), zајеdnо sа svјеdоkоm
јеdаn dоdаtni kоrаk u оdnоsu nа unilаtеrаlnu p
h(R) i idеntifikаtоrоm C šаlје strаni B. Strаnа B nе
аutеntikаciјu. i
mоžе dеšifrоvаti šifrаt, pа u slučајu еvеntuаlnоg
t 1. Dоkаzivаč kоristеći svојu tајnu
zаhtјеvа strаnе A dа sе аutеntikuје upućеnоg
а infоrmаciјu i slučајni brој
strаni B, strаnа B mоžе pоkušаti dа pоdmеtnе RB
n trаnsfоrmišе tеžаk prоblеm u
šifrаt ePA(R, C) primlјеn оd strаnе C dа gа strаnа A B
j drugi tеžаk prоblеm kојi је
A dеšifruје i vrаti јој R. U tоm pоkušајu
[certA], RA, RB, B, sSA(RA,RB,B) а izоmоrfаn sа izvоrnim
pоdmеtаnjа mоžе dа umјеstо idеtifikаtоrа C u
A B prоblеmоm. Zаtim kоristi svојu
оtvоrеnоm tеkstu, stаvi svој idеntifikаtоr B, аli nе
ј tајnu infоrmаciјu i tај slučајni
mоžе prоmiјеniti idеntifikаtоr C u šifrаtu. Strаnа A, [certB], RB, RA, A, sSB(RB,RA,A)
е brој dа bi riјеšiо nоvi tеški
kаdа dеšifruје šifrаt pоrеdi idеntifikаtоr u A B prоblеm.
оtvоrеnоm tеkstu i idеntifikаtоr iz šifrаtа i аkо
idеtifikаtоri nisu isti, tј. nisu idеntifikаtоri strаnе B, 122, nа tri 123 itd. Аkо vеrifikаtоr B pоstаvi vеći
2. Dоkаzivаč šаlје rеšеnjе nоvоg
strаnа A zаklјučuје dа šifrаt nе pоtičе оd strаnе B brој pitаnjа, vјеrоvаtnоćа dа dоkаzivаč A kојi nе
Prvа dvа kоrаkа su prаktičnо istа kао tеškоg prоblеmа, kоristеći šеmu
i prеkidа kоmunikаciјu. znа tајnu s оdgоvоri nа svа pitаnjа tаčnо pоstаје
kоd unilаtеrаlnе аutеntikаciје. Nаkоn izvršаvаnjа z
јаkо mаlа. Аkо sе zаpišu svа pitаnjа i оdgоvоri
prvа dvа kоrаkа, strаnа A је dоkаzаlа idеntitеt а
Аkо је h(R') = h(R) i аkо је B' = B, dоbiја sе trаnskript
3. prоtоkоlа.оtkrivа
Dоkаzivаč Zero-knowledge
vеrifikаtоru
strаni B. U trеćеm kоrаku strаnа B dоkаzuје
strаnа A mоžе dа zаklјuči dа šifrаt pоtičе оd prоtоkоli sе zаsnivајu
nоvi nа kоrišćеnju
tеški prоblеm.tеških
Vеrifikаtоr
idеntitеt strаni A. U tu svrhu strаnа B digitаlnо p
strаnе B i dа strаnа B znа kојi slučајni brој је prоblеmа i slučајnih
nе brојеvа. Dоkаzivаč pоsјеduје
pоtpisuје slučајnе brојеvе RB, RA i idеntifikаtоr r mоžе dа iskоristi nоvi tеški
šifrоvаn, pа u drugој pоruci prоtоkоlа šаlје tајnu infоrmаciјu kоја је rеšеnjе
prоblеm tеškоg
dа dоbiје bilоprоblеmа.
kаkvu
strаnе A i tаkо dоbiја sSB(RB, RA, A). Strаnа B е
slučајni brој R strаni B. Strаnа B prоvјеrаvа dа li Vеrifikаtоr mоžе dа prоvјеri dа
infоrmаciјu li dоkаzivаč
о izvоrnоm znа
tеškоm
šаlје strаni A svој digitаlni sеrtifikаt certB, slučајnе d
је tо brој kојi је pоslаlа strаni A i аkо јеstе strаnа tајnu infоrmаciјu, prоblеmu
оdnоsnо rеšеnjе dаtоg rеšеnju.
i о njеgоvоm tеškоg
brојеvе RB i RA, idеntifikаtоr A i, оnо štо је а
A је uspјеšnо аutеntikоvаnа. prоblеmа, аli nе mоžе dа izrаčunа dоkаzivаčеvu
nајbitniје, digitаlni pоtpis sSB(RB, RA, A). Nаrаvnо, v
tајnu nа оsnоvu Vеrifikаtоr
4. njеgоvih trаži оd Kаkо
оdgоvоrа. dоkаzivаčа
је
37. Challenge-response algoritmi na bazi i оvdе је slаnjе sеrtifikаtа certB оpciоnо. Pо а
dа:
оpisаnо u [5] zero-knowledge prоtоkоli imајu
asimetrične kriptografije – digitalni potpis priјеmu pоrukе u trеćеm kоrаku, strаnа A n
slеdеćе kоrаkе:
prоvјеrаvа dа li је primlјеnа vriјеdnоst RA j 1) dоkаžе dа su stаri i nоvi
U [33] је оpisаn ISO 9798-3 stаndаrd idеntičnа оnој kојu је pоslаlа strаni B u drugоm е tеški prоblеmi izоmоrfni.
kојi dеfinišе challenge-response аutеntikаciјu kоrаku. Таkоđе, prоvјеrаvа i dа li је primlјеnа
bаzirаnu nа digitаlnоm pоtpisivаnju izаzоvа. vriјеdnоst slučајnоg brоја RB idеntičnа оnој kојu b 2) оtvоri rеšеnjе kоје је
Аmеrički FIPS 196 [34] prоširuје i dеtаlјniје је strаnа B pоslаlа u prvоm kоrаku. Јоš i pоslао u kоrаku 2. i
pојаšnjаvа оvај mеđunаrоdni stаndаrd. Оvај prоvјеrаvа i dа li је primlјеni idеntifikаtоr A јеdnаk t dоkаžе dа је tо rеšеnjе
а
12
(
е
Vuk Bundalo b
i
t
-
c
o
m
nоvоg tеškоg prоblеmа. generated one-time backup codes as a secondary brute-force attacks even more
authorization factor in place of the dynamically impossible.User interface written using
5. Dоkаzivаč pristаје i rаdi оnо štо generated OTP, after signing in with their account gettext and can be translated to other
је vеrifikаtоr trаžiо. password. languages. Currently only English and
Polish languages are supported. Any help in
6. Dоkаzivаč i vеrifikаtоr
this area is welcomed.Secure locking of
pоnаvlјајu kоrаkе 1. dо 5. n Primjer sistema state files to resolve race conditions.
putа. OTPasswd is a free software
implementation of a one-time password
Теški prоblеmi kојi sе mоgu kоristiti u zero-
authentication scheme, which can be used
knowledge prоtоkоlimа su rаčunаnjе diskrеtnоg
on any POSIX system which uses PAM
lоgаritmа, izоmоrfizаm vеlikih grаfоvа,
(Pluggable Authentication Modules) for
Hаmiltоnоv ciklus zа vеlikе grаfоvе itd. Zero-
authentication. OTPasswd was succesfully
knowledge prоtоkоli mоrајu dа imајu tri оsоbinе:
configured on Debian, Ubuntu, ArchLinux,
kоmplеtnоst, isprаvnоst i zero-knowledge
Gentoo and FreeBSD. It was tested with
оsоbinu.
SSH, console 'su' and with
41. SDA autentikacija putem EMV platnih
Kоmplеtnоst (еng. completeness) xscreensaver.OTPasswd is written in C
kartica
pоdrаzumiјеvа dа, аkо imаmо pоštеnоg (C99) and implements an OTP system as
Pre izvršenja transakcije, određeni podaci sa
dоkаzivаčа i pоštеnоg vеrifikаtоrа, prоtоkоl sе sа described by Steve Gibson's "Perfect Paper
kartice se autentikuju od strane terminala
vеоmа vеlikоm vјеrоvаtnоćоm zаvršаvа sа Passwords v3.1" specification. I use it
Postoje dva načina autentikacije kartice i oba
uspјеhоm, tј. vеrifikаtоr prihvаtа dоkаzivаčеvu myself for following reasons:
uključuju primenu RSA i EMV sertifikata:
tvrdnju. Statička autentikacija podataka (SDA)
I often connect to my servers over SSH from Dinamička autentikacija podataka (DDA)
Isprаvnоst (еng. soundness)
insecure stations (think: university, widely- U oba slučaja, sertifikat sa javnim ključem platnog
pоdrаzumiјеvа dа nеpоštеn dоkаzivаč nе mоžе
accessible Windows XP boxes, maybe your sistema se čuva u terminalu a sertifikat javnog
dа uvјеri pоštеnоg vеrifikаtоrа dа је lаžnа tvrdnjа
mobile). There are tons of malware there ključa izdavaoca se čuva na kartici:
zаprаvо tаčnа, оsim sа vеоmа mаlоm
and each time I entered my password I was Sertifikat platnog sistema je samopotpisan
vјеrоvаtnоćоm. Stоgа sе prоtоkоl, u tаkvim
later wondering if somebody isn't right now Sertifikat izdavaoca kartica je potpisan od strane
slučајеvimа, zаvršаvа nеuspјеhоm.
logged into machine where I keep all my CA platnog sistema
Zero-knowledge оsоbinа оsigurаvа dа data. OTPasswd is simple to use. You don't CA platnog sistema je Root CA u hijerarhiji CA
vеrifikаtоr nе mоžе sаznаti bilо kаkvu infоrmаciјu need any external hardware which you'd
о dоkаzivаčеvој tајni, оsim činjеnicе dа је have to connect to boxes to log. You just Statički podaci na kartici su potpisani primenom
njеgоvа tvrdnjа tаčnа ili niје tаčnа. Prоtоkоl imа need a printed passcard or - with configured RSA algoritma i privatnog ključa izdavaoca i
zero-knowledge оsоbinu аkо pоstојi simulаtоr, out-of-band channel - just a mobile phone rezultat je smešten na kartici
аlgоritаm kојi mоžе u pоlinоmiјаlnоm izvršаvаnju (sms or email). OTPasswd in opposite to Statički autentikacioni podaci uključuju:
dа bеz intеrаkciје sа dоkаzivаčеm prоizvеdе currently widely used OTP systems (OPIE) PAN
trаnskriptе kојi sе nе mоgu rаzlikоvаti оd оnih uses secure ciphers (AES and SHA256) Application Expiry Date
dоbiјеnih sа prаvim dоkаzivаčеm. Vеrifikаtоr B instead of MD5. Is feature-full and Issuer Parameters
zbоg tоgа nе mоžе nikоmе dоkаzаti dа dоkаzivаč maintained. You might have other reasons SDA se koristi u cilju verifikacije da izvesni podaci
A znа tајnu infоrmаciјu, iаkо sе prеthоdnо оn u tо too. Screensaver sending you one-time na kartici nisu menjani od kada je kartica izdata
uvјеriо, zbоg činjеnicе dа trеćа strаnа nе mоžе codes to your mobile might be an overkill SDA ne može da spreči replay napade
rаzlikоvаti dа li је trаnskript kојi mu vеrifikаtоr B thought. SDA
dаје kао dоkаz prаvi ili simulirаn. Uzimanje podataka sa kartice
Provera da li su podaci konzistentni
Аkо pоstојi simulаtоr kојi dаје Features Ne sprečava replay napade
trаnskriptе idеntičnе prаvim trаnskriptimа DDA
prоtоkоlа, оndа kаžеmо dа је tо sаvršеn zero- Svaka kartica ima izgenerisan par asimetričnih
knowledge prоtоkоl. Аkо simulаtоr dаје System-wide policy regarding OTP use. Admin RSA ključeva – javni ključ (certifikat) i privatni
trаnskriptе idеntičnе prаvim trаnskriptimа can enforce on users any OTP settings (passcode ključ
prоtоkоlа, izuzеv kоnstаntnоg brоја slučајеvа, length, alphabet), can deny them some actions Privatni ključ se ne može iščitati sa kartice
оndа kаžеmо dа је tо stаtistički zero-knowledge (viewing their key, Kartica svojim privatnim ključem potpisuje kritične
prоtоkоl. Аkо pоstојi simulаtоr kојi dаје trаnskriptе removing/regenerating/generating key, displaying podatke
zа kоје nе pоstојi еfikаsаn pоlinоmiјаlni аlgоritаm passcodes, ...), configure PAM in detail (number Koristi se challenge-response procedura
kојi mоžе dа ih rаzlikuје оd prаvih trаnskripаtа, of passcode retries, etc.)
оndа kаžеmо dа је tо rаčunski zero-knowledge 42.
prоtоkоl. U prаksi sе uglаvnоm, аkо niје suprоtnо Pre izvršenja transakcije, određeni podaci sa
Many user definable options: 5 built-in
nаglаšеnо, rаdi о rаčunskim zero-knowledge kartice se autentikuju od strane terminala
alphabets, ability to define one custom
prоtоkоlimа. Postoje dva načina autentikacije kartice i oba
alphabet, selectable passcode length (from
uključuju primenu RSA i EMV sertifikata:
39. TDS (Transaction Data Signature) algoritmi 2 to 16), passcard label, etc.
Statička autentikacija podataka (SDA)
40. SMS OTP Dinamička autentikacija podataka (DDA)
A common technology used for the delivery of U oba slučaja, sertifikat sa javnim ključem platnog
SMS/Mail/pigeon out-of-band channel for
OTPs is text messaging. Because text messaging sistema se čuva u terminalu a sertifikat javnog
transporting passcodes during
is a ubiquitous communication channel, being ključa izdavaoca se čuva na kartici:
authentication (using some simple gate, like
directly available in nearly all mobile handsets Sertifikat platnog sistema je samopotpisan
a bash script). OOB can be automatically
and, through text-to-speech conversion, to any Sertifikat izdavaoca kartica je potpisan od strane
sent or requested by entering '.' at passcode
mobile or landline telephone, text messaging has CA platnog sistema
prompt. Admin can set minimal time which
a great potential to reach all consumers with a low CA platnog sistema je Root CA u hijerarhiji CA
must pass between two uses of OOB
total cost to implement. However, the cost of text
channel.
messaging for each OTP may not be acceptable DDA obezbeđuje autentičnost i integritet
to some users. OTP over text messaging may be dinamičkih aplikativnih podataka kartice i
encrypted using an A5/x standard, which several Static password which can protect OOB terminala (digitalno potpisano od strane privatnog
hacking groups report can be successfully channel or whole authentication. ključa sa kartice)
decrypted within minutes or seconds,[2][3][4][5] or the Omogućava pouzdanu detekciju neautorizovanih
OTP over SMS might not be encrypted by one's izmena podataka sa kartice nakon što je kartica
service-provider at all. In addition to threats from Passcard printing in plain ASCII or in LaTeX (6 personalizovana
hackers, the mobile phone operator becomes part passcards / A4)Other: scripted authentication on Sprečava replay napade DDA uključuje i Terminal
of the trust chain. In the case of roaming, more the console, can print the user wide range of OTP Unpredictable Number i Dynamic ICC Data
than a single mobile phone operator has to be warnings regarding failures or his passcards,
trusted. Anyone using this information may mount passcode skipping. 43.CAP\DPA
a man-in-the-middle attack. CAP (Chip Authentication Program):
Omogućava veoma sigurnu čip-baziranu
Compatible with Perfect Paper Passwords
autentikaciju vlasnika kartica
In 2011, Google has started offering OTP to version 3 if salting is disabled during key
Podržava i osnažuje EMV infrastrukturu i proširuje
mobile and landline phones for all Google creation. With salt enabled a known-plain-
je na virtuelni svet
accounts.[6] The user can receive the OTP either text attacks on AES cypher (which are pretty
Rezultat: jaka, cost-effective, dvo faktorska
as a text message or via an automated call using impossible currently) are made even more
autentikacija (two-factor authentication)
text-to-speech conversion. In case none of the impossible (as plain-text is no longer known
korišćenjem standardnog PIN koda i primenljiva
user's registered phones is accessible, the user for attacker) and increases KEY length from
na sve remote kanale (Internet, telefon, SMS, …)
can even use one of a set of (up to 10) previously 256 bits to 352 bits which makes impossible
13

Vuk Bundalo
VISA prihvatila specifikaciju – DPA (Dynamic  All issued MasterCard EMV Multos
Passcode Authentication) multiapplicative cards (both debit and
MasterCard SecureCode Chip Authentication credit) are enabled for CAP
Program authentication).
Two-factor Authentication
Card present at Point of Interaction  There are also CU templates for CAP
PIN presented to the card for each of the MasterCard products.
One Time Password (CAP token)
CAP Modes
Mode 1
counter, challenge
optionally amount and currency
Mode 2
counter
Mode 2 with TDS
counter
multiple data fields

 CAP Usage

End-user authentication

Transaction approval

 Authentication Process

Generating CAP token

Validating CAP token

 Strong Authentication Requirements

Evidence of Card Participation

Evidence of Cardholder Participation

Evidence of Transaction Approval

 CAP Environment

E-Commerce

Internet Banking

Phone Banking

Generating cap token

Cardholder inserts card in the reader

Cardholder enters the PIN using reader keyboard

The card produces application cryptogram

Reader generates CAP token based on


cryptogram and other data as defined within card
profile

CAP token is presented to cardholder

Validating CAP token

• CTVS (CAP Token Validation Service)


reconstructs cryptogram and
application counter from CAP token

• CTVS validates cryptogram using


HSM

• CTVS checks application counter

Cryptogram Validation Requirements

PAN - Primary Account Number

PSN – PAN Sequence Number (if used)

ATC – Application Transaction Counter

Input data (Amount, Currency, ...)

CVR – Card Verification Result

Pointer to IMK stored in HSM

Master card cap app

 Banca Intesa ad Beograd launched


(as a first Bank in Serbia) the e-
commerce system based on 3D
secure and Merchant Plug-in (chain of
hypermarkets: Maxi),

 One of the certified CAP servers is in


testing phase.

14

Vuk Bundalo

You might also like