You are on page 1of 81

KRIPTOGRAFIJA

Predavanje 6
Asimetrični kriptoalgoritmi
Hesh funkcije
Primjena kriptografije
Sadržaj predavanja 6
 Asimetrični kriptoalgoritmi
 koncept, Diffie-Helman, RSA i ostali algoritmi
 Hesh funkcije
 koncept, MD5, SHA1
 Primjena kriptografije
 digitalni potpis
 PGP
Problem distribucije ključa
 Sa porastom primjene računara (od 60ih godina
računari su postajali napredniji i jeftiniji  dostupni u
firmama za prenos poruka o novcu, osjetljivim
pitanjima...) – porast potrebe za enkripcijom  problem
distribucije ključa
 nemoguć prenos telefonom zbog prisluškivanja
 kuriri (na primjer u bankama, za distribuciju ključeva
između banke i klijenata, primjenjivalo se 70ih godina)
 postalo neisplativo sa povećanjem broja poruka
 problem distribucije ključa mučio je kriptografe oduvijek
(npr. problem je bio izražen i kod Enigme...) – problem koji
je u kriptografiji prevazišao sve ostale!!!
 dugo su postojale pretpostavke da je problem nerješiv
Problem distribucije ključa
 70. godine 20. stoljeća riješen problem distribucije
ključeva  najveće kriptografsko otkriće još od
monoalfabetske supstitucijske šifre
 Whitfield Diffie (MIT)
 Martin Hellman (Stanford University)
 pokušaj da riješe problem distribucije ključa, odnosno
da nađu alternativu fizičkom prenošenju ključeva na
velike udaljenosti
 Ralph Merkle (matematičar)
 2 hiljade godina star aksiom kriptografije: razmjena
ključeva se ne može nikako izbjeći!!!
 Diffie, Hellman i Merkle oborili prethodni aksiom!!!
Problem distribucije ključa
 60-ih godina USA Ministarstvo odbrane osnovalo ARPA
 pronalazak načina povezivanja vojnih računara na velike
udaljenosti  razvijena mreža ARPANet, iz koje je 1982.
proizašao Internet
 krajem 80-ih pristup Internetu dobili su i ljudi koji nisu bili
povezani s državom ili akademskim istraživanjem te je broj
korisnika naglo porastao na milione ljudi širom svijeta
 dok je ARPANet bio još u povojima, Diffie je pretpostavio kako
će jednoga dana i obični ljudi imati vlastite računare koja će
biti povezani i kako će moći razmjenjivati različite poruke
putem te mreže
 Diffie je smatrao da ako ljudi razmjenjuju poruke putem
računarske mreže, imaju pravo osigurati privatnost svojih
poruka šifriranjem  neophodna sigurna razmjena ključeva
 ako je to problem za državu, za obične ljude će biti neostvariva!!!
Problem distribucije ključa
 Pitanje kako dva stranca koja su se upoznala preko
Interneta mogu jedan drugome poslati šifriranu poruku?
 Alice i Bob žele komunicirati slanjem poruka, a Eve želi
neovlašteno otkriti sadržaj
 ako Alice i Bob ne žele da im neko čita poruke, moraju ih
šifrirati, po mogućnosti novim ključem za svaku poruku
 potrebno puno ključeva; Alice i Bob se mogu naći jednom
sedmično i razmijeniti lično mnogo ključeva  sigurna, ali
nepraktična metoda  problem nastaje npr. kada je neko
spriječen da dođe na razmjenu ključeva???  problem
star 2000 godina!!!
Problem distribucije ključa
 Ideja povjerljive komunikacije bez razmjene ključeva
 Alice stavlja pismo u kutiju, zaključava je svojim
katancem i šalje Bobu
 Bob prima kutiju i zatim na nju stavlja svoj katanac i
šalje je nazad ka Alice
 Alice zatim skida svoj katanac i opet prosljeđuje kutiju
ka Bobu (koja je i dalje zaštićena Bobovim katancem)
 Bob na koncu skida svoj katanac i otvara pismo
 tajna poruka se može razmijeniti između ljudi bez
potrebe da se razmijeni ključ!!!
Problem distribucije ključa

 implikacije datog primjera su strahovite  on dokazuje


da se tajna poruka može pouzdano razmijeniti između
dvoje ljudi bez potrebe razmjene ključa  po prvi put
pojavila se nada u to da razmjena ključa u kriptografiji ne
mora biti nešto neizbježno
Problem distribucije ključa
 Ideja povjerljive komunikacije bez razmjene ključeva
 Alice je svojim ključem kriptovala poruku koju je zatim
Bob kriptovao svojim ključem
 Alice zatim skida svoju enkripciju, te vraća Bobu poruku
koju on može dekriptovati svojim ključem
 problem poretka enkripcije i dekripcije (LIFO koncept) tj.
posljednje kriptovanje se prvo dekriptuje, što nije izvodivo
sa kutijom sa katancima (FIFO koncept)
 Diffe-Hellman  ideja asimetričnog ključa
 ključ za enkripciju (javni ključ) i dekripciju (privatni ključ)
različiti
 Bob kriptuje poruku javnim ključem od Alice, a samo je ona
može dekriptovati svojim privatnim ključem
Problem distribucije ključa
 Ideja asimetričnog ključa
 analogija sa kutijom i katancem: svako može zaključati
katanac (javni ključ) ako ga pritisne, a samo onaj ko ima
ključ (privatni ključ) može ga i otključati
 hiljade replika katanaca omogućavaju svima da Alice šalju
privatne poruke, koje samo ona može otključati svojim
ključem
 problem pronalaska metematičke funkcije koja obavlja isti
posao!
 jednosmjerna funkcija  sa funkcijama je nešto lako
učiniti, ali ih je veoma teško vratiti u početno stanje
 faktorizacija brojeva i modularna algebra
 3xmod7=1 pogađanje: x=5 ost.=5, x=4 ost.=4... rj. x=6
x
Diffie-Helman algoritam
 Diffie i Hellman objavili su 1976. godine postupak za
razmjenu tajnog ključa za simetričnu kriptografiju
 postupak se zasniva na bitnoj različitosti složenosti
izračunavanja modularne potencije i izračunavanja
diskretnog logaritma, osim ako se ne poznaje tajni ključ
 dva se sudionika na bilo koji način (npr. objava na
Internetu) unaprijed dogovore o dva velika broja, n i g
 broj g je relativno prost u odnosu na n, a najveći zajednički
djelitelj im je broj 1: nzd(g,n)=1
 najpraktičnije je za n odabrati veliki prosti broj p
 brojevi p i g ne moraju biti tajni, mogu se javno objaviti
 zatim, korisnik 1 (Alice), odabere veliki nasumični prirodni
privatni broj x; korisnik 2 (Bob), odabere na isti način svoj
Diffie-Helman algoritam
 Alice, koja želi uspostaviti komunikaciju s Bobom, šalje
rezultat izračunavanja operacije X=gx(mod p)
 Bob šalje Alice rezultat izračunavanja operacije Y=gy(mod
p)
 Alice zatim izračunava K=Yx(mod p)=(gy)x(mod p) =gxy(mod
p)  ključ koji se može koristiti za šifriranje poruke
 slično, Bob izračunava K=Xy(mod p)=(gx)y(mod p) =gxy(mod
p)  ključ koji je jednak onom kojeg je i Alice izračunala
  kako su ključevi koje su Alice i Bob izračunali jednaki,
oni su zapravo razmjenili simetrični ključ za kriptovanje!!!
 čak i ako neko prisluškuje komunikaciju i sazna vrijednosti
g, p, X i Y, on ne može izračunati ključ K osim ako ne
izračuna diskretni logaritam od X ili Y što je veoma teško!!!
 pri tome, poruka je tajni ključ K!
Diffie-Helman algoritam
 Zadatak 1:
 Neka su javni ključevi Diffie-Helman algoritma p=53 i
g=48, privatni ključ Alice x=36, a Boba, y=40.
Potrebno je odrediti ključ za šifriranje K.
 Rješenje 1:
 X=gx(mod p)=4836(mod 53)=49
 4836=4832+4  4836(mod 53)=42*10(mod 53)=49
 48(mod 53)=48
 482(mod 53)=2304(mod 53)=25(mod 53)
 484(mod 53)=(252(mod 53))(mod 53)=42(mod 53)
 488(mod 53)=(422(mod 53))(mod 53)=15(mod 53)
 4816(mod 53)=(152(mod 53))(mod 53)=13(mod 53)
 4832(mod 53)=(132(mod 53))(mod 53)=10(mod 53)
Diffie-Helman algoritam
 Zadatak 1:
 Neka su javni ključevi Diffie-Helman algoritma p=53 i
g=48, privatni ključ Alice x=36, a Boba, y=40.
Potrebno je odrediti ključ za šifriranje K.
 Rješenje 1:
 Y=gy(mod p)=4840(mod 53)=44
 (Alice) K=Yx(mod p)=4436(mod 53)=49
 (Bob) K=Xy(mod p)=4940(mod 53)=49  tajni ključ
Diffie-Helman algoritam
 Zašto je siguran Diffe-Helman algoritam?
 mnogi sigurnosni sistemi koriste matematičke funkcije
kojima je vrlo teško pronaći inverznu funkciju  šifriranje
poruke je lagano, ali je dešifriranje bez posjedovanja
pravog/tajnog ključa je vrlo teško
 Diffie-Helman-ov problem: neka je dat element g i vrijednosti
gx i gy , koja je vrijednost od gxy?
 Eve koja prisluškuje komunikaciju može doznati gx i gy, ali iz
njih u razumnom vremenu ne može izračunati gxy
 tokom proteklih nekoliko desetljeća mnogo je ljudi pokušalo
riješiti problem, no još uvijek nije objavljeno jednostavno rješenje
 velika složenost proračuna
 do danas jedini poznat način je računanje diskretnih logaritama
(kako pronači x ako je poznato gx), koji spada u tzv. ''teške''
probleme
Diffie-Helman algoritam
 Primjena Diffie-Helman algoritma u mrežnim
protokolima koji omogućuju zaštićenu komunikaciju
 kod autentikacije u mrežama računara
 u IPsec (IP security) protokolu
 skup protokola koji obuhvata mehanizme za zaštitu mrežnog
saobraćaja na 3. OSI sloju, šifriranjem i/ili autentikacijom IP
paketa; uključuje protokole za uspostavu međusobne
autentikacije računara na početku sesije i za dogovor
kriptografskog ključa sesije (ključ sesije je tajni ključ kojim se
šifriraju poruke koje se razmjenjuju tokom trajanja sjednice) –
D-H protokol se koristi za razmjenu ključa sesije
Diffie-Helman algoritam
 SSH (Secure Shell) protokolima
 SSH protokol je skup pravila za sigurnu prijavu na udaljeni
računar koja se koriste na Unix/Linux operativnim sistemim
za udaljeni konzolni pristup; osmišljen je kao zamjena za
Telnet i druge nezaštićene protokole u sklopu kojih se
informacije (poput lozinke) prenose u jasnom tekstu; šifriranje
koje koristi SSH osigurava povjerljivost i integritet podataka
koji se šalju putem nezaštićene mreže, pri čemu SSH
protokol koristi D-H postupak za razmjenu ključeva
 u postupku stvaranja digitalnih potpisa i digitalnih certifikata
 digitalnim potpisom se utvrđuje autentičnost elektroničkih
dokumenata, kao što su e-mail, web stranica ili slika
 digitalni certifikat je elektronički dokument koji utvrđuje
identitet i autenticira korisnika kada obavlja određene
transakcije na Internetu; certifikati koriste digitalne potpise za
povezivanje javnih ključeva s podacima o identitetu vlasnika
Diffie-Helman algoritam
 Napadi na Diffie-Helman algoritam
 man-in-the-middle
 napadač odabire nasumičan broj Z=gz(mod p)
 kada Alice pošalje vrijednost X, napadač pohrani tu
vrijednost i pošalje Bobu vrijednost Z; jednako, napadač
presretne i Bobovu poruku Y, zadrži je za sebe i Alice
pošalje poruku Z  Alice i Bob misle da su dobili
informacije jedno od drugoga, ali su u stvarnosti dobili
poruke od napadača
 napadač izračunava ključeve KA i KB kao KA=Xz(mod
p)=(gx)z(mod p) =gxz(mod p) i KB=Yz(mod p)=(gy)z(mod p)
=gyz(mod p)
 Alice odabire ključ KA=Zx(mod p)=(gz)x(mod p) =gxz(mod p),
a Bob KB=Zy(mod p)=(gz)y(mod p) =gyz(mod p)
Diffie-Helman algoritam
 man-in-the-middle
 sada Alice šalje kriptovani tekst sa ključem KA koji napadač
presreće i dešifruje, eventualno mijenja tekst i proslijeđuje
ga Bobu, pifriranog ključem KB
 zaštita: zahtjev da se najprije obavi autentikacija korisnika
upotrebom digitalnog potpisa i certifikata

 da bi se zaštitili od brute force napada, ključ treba biti jako


dug (reda 2048 bita)
RSA algoritam
 RSA – najpopularniji kriptosistem sa javnim ključem
 Ron Rivest, Leonard Adleman, Adi Shamir (MIT), 1977.
koncept
 Alice mora stvoriti javni ključ koji objavljuje, kako bi Bob i ostali
s njim mogli šifrirati poruke koje joj šalju; ključ mora biti takav
da ga niko ne može izokrenuti i tako dešifrovati Alice-ine
poruke
 Alice mođutim mora i dešifrovati poruke koje prima, zbog čega
mora posjedovati i tajni ključ, neku posebnu informaciju koja
će joj omogućiti da preokrene djelovanje javnog ključa
 u sklopu RSA, u srži je jednosmjerna funkcija utemeljena na
modularnoj funkciji
 algoritam se bazira na činjenice da je 2 prosta broja
jednostavno pomnožiti, ali da je jako teško naći faktore
velikog broja (probati naći faktore od 1709023)???
RSA algoritam
 Razrada algoritma
 izabiru se tajno dva velika prosta broja p i q od oko 100
cifara, tako da q ima nekoliko cifara više od p (to se radi
tako da se pomoću nekog generatora slučajnih brojeva
generiše prirodan broj m s traženim brojem znamenaka,
a zatim korištenjem nekog testa za testiranje prostosti
traži prvi prosti broj veći ili jednak m)
 izračuna se n=pq i φ(n)=(p-1)(q-1)
 izabere se na slučajan način broj e takav da je e<φ(n) i
(φ(n),e)=1 (slično kao u polaznom koraku)
 nakon toga tajno se izračunava d tako da je de≡1(mod
φ(n)), tj. d≡e-1(mod φ(n)) (pomoću Euklidovog algoritma)
 ključ za šifriranje (n,e) stavi se u javni direktorij
RSA algoritam
 Razrada algoritma
 da bi se poruka šifrirala, najprije se mora pretvoriti u
broj M (riječi se pretvaraju u brojeve ASCII
interpretacijom  onda se mogu tretirati kao
decimalni brojevi) te šifrirati sa javnim ključem
primaoca (n,e)  C=Me(mod n)
 da bi primaoc dešifrovao poruku, mora znati privatni
ključ (d)  M=Cd(mod n)
 pri čemu se d dobija kao de≡1(mod φ(n)), a φ(n) može
izračunati samo onaj ko poznaje p i q
RSA algoritam
 RSA – najpopularniji kriptosistem sa javnim ključem

 φ(n) je Eulerova funkcija, tj. broj brojeva u nizu 1, 2, ... , n


koji su relativno prosti s n  φ(n) = φ(pq)=(p - 1)(q - 1)
RSA algoritam (????)
 Dokaz da su funkcije eK i dK jedna drugoj inverzne
 dK(eK(x))≡ xde(mod n)
 iz de≡1(mod φ(n)) slijedi da postoji prirodan broj t takav
da je de=tφ(n)+1
 sada je xde=xt φ(n)+1=x[xφ(n)]t≡x(mod n)
 ako je (n,x)=1 (prema Eulerovom teoremu)
 ako je (n,x)=n, onda je xde≡x≡0(mod n)
 ako je (n,x)=p, onda je xde≡x≡0(mod n) i xde=[xq-1](p-1)tx≡x
(mod q), pa je xde≡x(mod n)
 slučaj (n,x)=q je potpuno analogan prethodnom zaista je
xde≡x(mod n), što znači da je dK(eK(x))=x
RSA algoritam
 Sigurnost RSA
 leži u pretpostavci da je funkcija eK(x)=xe(mod n)
jednosmjerna, odnosno u činjenici da je jako teško
faktorizirati veliki broj
 ako su npr. p i q dužine 1065  n je dužine 10130
 računar 2 velika broja pomnoži za sekundu, ali faktorizacija
traje puno duže
 proračunato da bi na 100 MHz, Pentium računaru sa 8 MB
RAM-a za faktorizaciju trebalo 50 godina
 a ako bi se udružilo 100 miliona PC-a (1995. godine), 15
sekundi  kod važnih transakcija n dužine 10308
RSA
 1977. godine – izazov čitaocima da izvrše faktorizaciju N
~ 10130  odgovor poslije 17 godina
 600 dobrovoljaca koristilo svoje računarske resurse kad
god su bili slobodni za pomenuti problem
 Zadatak 2:
 Odrediti javni i tajni ključ RSA algoritma, ako je p=7 i
q=13
 Rješenje 2:
 N=pq=91
 e je uzajamno prost broj sa φ(n)=(p-1)(q-1)=72
 2, 3, 4 nisu uzajamno prosti sa 72  e<φ(n)  e=5
 javni ključ (N,e)=(91,5)
RSA
 de=1mod((p-1)(q-1))  5d=1mod72  5d+72k=1 za k iz
Z
 k=-1  5d-72=1  5d=73 ne postoji d iz Z
 k=-2  5d-144=1  5d=145  d=29
 tajni ključ (N,d)=(91,29)

 Zadatak 3:
 Primjenom RSA algoritma kriptovati slovo X (ASCII 88),
ako je p=17, q=11 i e=7
 Rješenje 3:
 N=pq=187
 odabrati e tako da su e i (p-1)(q-1) relativno prosti  e i
160 relativno prosti  e=7 OK!
RSA algoritam
 n=187 i e=7 je javni ključ
 kriptovanje: C=Me(modN) 
 C=887(mod187)=(88(mod187)882(mod187)
884(mod187))mod187=88*77*132(mod187)= 11(mod187)
 dekriptovanje (N,d) – privatni ključ ((φ(n),e)=1)
 M=Cd(modN) pri čemu je ed≡1(mod(p-1)(q-1))  d=23 
M=1123(mod187)=(11*112*114*1116)mod187
 11mod187=11mod187
 112mod187=121mod187
 114mod187=(112)2mod187=1212mod187=14641mod187=55
 118mod187=(114)2mod187=552mod187=3025mod187=33
 1116mod187=(118)2mod187=332mod187=1089mod187=154
 M=(11*121*55*154)mod187=11273570mod187=88mod187
Kriptosistemi sa javnim ključem
 Ostali kriptosistemi sa javnim ključem
 ElGamal
 asimetrični algoritam baziran na problemu diskretnih log.
 algoritam za šifriranje sličan je Diffie-Helman-ovom
algoritmu za dogovaranje ključeva, a njegova sigurnost se
temelji na nerješivosti problema diskretnih logaritama
 imaju sličan nivo sigurnosti za jednake dužine ključeva kao
i RSA ključeva
 glavni nedostatak ElGamala je potreba za slučajnošću i
manja brzina
 još jedan potencijalni nedostatak je da tijekom šifriranja
poruke dolazi do povećanja poruke za faktor dva (što se
može zanemariti ako se kriptosistem koristi samo za
razmjenu privatnih ključeva)
Kriptosistemi sa javnim ključem
 Rabinov kriptosistem
 bazira se na izračunavanju kvadratnog korijena što je
problem računski jednak faktoriziranju n

 mana Rabinovog algoritma je da se dešifrovanje ne može


sprovesti na jedinstven način  primatelj je suočen sa
zadatkom izbora pravog nešifriranog teksta izmedu više
mogućnosti
 preblem se jednostavno rješava kada je otvoreni tekst smislen,
ali kako se aismetrična kriptografija najčešće koristi za
razmjenu ključeva bez smislenog značanje, to je problem
Kriptosistemi sa javnim ključem
 Glavne prednosti kriptosistema s javnim ključem u
poređenju sa simetričnima su
 nema potrebe za sigurnim komunikacijskim kanalom za
razmjenu ključeva
 za komunikaciju grupe od N ljudi treba 2N ključeva, za
razliku od N(N-1)/2 ključeva kod simetričnog kriptosistema
 mogućnost potpisa poruke
 ipak, u realnom svijetu kriptografija javnog ključa ne
predstavlja zamjenu za simetrične kriptosustave
 ne koristi za šifriranje poruka, već za šifriranje ključeva (osobe
A i B komuniciraju pomoću simetričnog kriptosistema s ključem
kojeg su razmijenili pomoću kriptosistema sa javnim ključem 
hibridni kriptosistem
Kriptosistemi sa javnim ključem
 razlog zašto se javni ključ ne koristi za šifriranje poruka
 algoritmi s javnim ključem su puno sporiji (oko 1000 puta)
od modernih simetričnih algoritama
 kriptosistemi sa javnim ključem su slabi na napad
"odabrani otvoreni tekst"
 ako je y=eK(x), otvoreni tekst može poprimiti jednu od n
vrijednosti i budući je eK javna, kriptoanalitičar treba samo
šifrirati svih n mogućih otvorenih tekstova i rezultat
uporediti s y; tako neće otkriti tajni ključ d, ali će otkriti
otvoreni tekst x; jasno, ovaj napad je primjenjiv ako je n
mali (npr. ako je x neki iznos u km-ovima za kojeg je
razumno pretpostaviti da je manji od 1000000).
Namjena kriptografije
 U modernoj kriptografiji, koja se koristi u komercijalnom
svijetu (tipična situacija je da osoba A želi kupiti nešto
od osobe B preko interneta), pojavljuju se, uz klasične,
i neki sasvim novi problemi
 POVJERLJIVOST (confidentiality) – poruku koju osoba A
šalje osobi B ne može pročitati nitko drugi
 VJERODOSTOJNOST (autenticity) – osoba B zna da je
samo osoba A mogla poslati poruku koju je ona upravo
primila
 INTEGRITET (integrity) – osoba B zna da poruka koju je
poslala osoba A nije promijenjena prilikom slanja
 NEPOBITNOST (non-repudiation) – osoba A ne može
kasnije zanijekati da da je poslala poruku
Namjena kriptografije
 Do sada su riješeni problemi sakrivanja sadržaja –
simetričnim kriptoalgoritmima i problem sigurne
distribucije ključa za simetrični algoritam –
korištenjem asimetrične kriptografije
 međutim, opisani algoritmi i dalje ne osiguravaju
ostale namjene kriptografije, tj. integritet podataka,
autentikaciju korisnika niti neporecivost, iako se već
može naslutiti da bi se primjenom asimetrične
kriptografije u kombinaciji sa dodatnim mehanizmima,
mogle realizovati i preostale namjene!
Hesh funkcije
 Šifriranje poruka ima zadatak da obezbijedi tajnost
poruka koje se prenose  postupak ni na koji način ne
osigurava njihov integritet
 Kako onda osigurati integritet poruke?
 pored kriptoalgoritama, do danasu su razvijeni i dodatni
mehanizmi-algoritmu za zaštitu integriteta podataka  u
vidu funkcija sažimanja ili hesh funkcija
 hesh funkcije se koriste za izračunavanje sažetka poruke,
pri čemu izračunavanje sažetka predstavlja kreiranje
digitalnog otiska fiksne veličine za ulazne podatke
 digitalni otisak, koji hesh algoritam daje kao rezultat, je
obični kratki pseudo-slučajni niz znakova - binarnih
podataka, zapisanih u heksadecimalnoj notaciji
Hesh funkcije
 ukoliko je hesh algoritam dobar, onda se za svaki različiti
ulazni niz podataka algoritmom dobija različit sažetak, tj.
dobijeni digitalni otisak je jedinstven i ne može se dobiti
pomoću neke druge ulazne vrijednosti (zbog čega je
neophodno da hesh algoritam bude deterministički)
 nažalost, zbog činjenice da se s manjim brojem znakova
treba predstaviti veći broj znakova, jedinstvenost dobijenog
sažetka je teško postići
 ukoliko napadač otkrije mogućnost falsifikovanja ulaznog
niza podataka, on može krivotvoriti ulazne nizove podataka
 postojeći algoritmi za izračunavanje sažetka u većoj ili
manjoj mjeri mogu postići jedinstvenost sažetka, gdje se
mjera kvalitete izražava u broju kolizija sažetaka
 zbog tog svojstva jedinstvenosti, sažetak se primjenjuje u
svrhe kriptografije, autentikacije i identifikacije
Hesh funkcije
 Pored jedinstvenosti, glavne karakteristike dobrih hesh
funkcija su
 da nemaju inverzne funkcije (jednosmjernost)  što treba
da onemogući proračun originalne poruke iz sažetka
 da i najmanja promjena informacija u originalnom tekstu
uzrokuje drastične promjene sažetka
 promjena 1 bita treba da uzrokuje promjenu 50% bita hesh-a
 da uvijek proizvode sažetak fiksne dužine
 danas su hesh funkcije jedan od osnovnih elemenata
svakog kriptosistema
 na njih se direktno oslanjamo pri online kupovini, e-banking
transakcijama, pri čuvanju privatnosti medicinskih dokumenata
Hesh funkcije
 Osnovna karakteristika svih efikasnih hesh algoritama
koja proizilazi iz nabrojanih zahtjeva je da je nemoguće
naći dva različita ulazna podatka za koje bi funkcija
proizvela isti ulazni hesh  otpornost na kolizije
 na osnovu poznavanja teorije skupova, jasno je da nije
moguće napraviti injektivnu funkciju koja radi sa dva
skupa različite kardinalnosti  nije moguće ni proizvesti
funkciju kojoj će ulaz biti neograničeno dug i izlaz fiksne
dužine, a da se nikada ne nađu dva ulaza sa istim
izlazom  kolizija u hesh funkcija dakle postoji
beskonačno mnogo, no važno je da ih je nemoguće tj.
teško pronaći!
Hesh funkcije
 hesh algoritmi bi trebali biti što sličniji funkciji generiranja
slučajnih brojeva, ali istovremeno moraju imati
deterministički karakter i biti dovoljno efikasni kako
proračun ne bi trajao dugo
 Kriptografski algoritam za izračunavanje sažetka se
smatra nesigurnim ako je moguće
 nalaženje prethodno nepoznatog podatka za koji algoritam
kao rezultat daje traženi sažetak ili
 nalaženje kolizija, tj. dva različita podatka koji za rezultat
daju isti sažetak
 napadač koji može napraviti bilo koju od prethodno
navedenih stvari može to iskoristiti za npr. neovlaštenu
autorizaciju korištenjem zamjenskog podatka
Hesh funkcije
 Formalno, hesh funkicja mora imati sljedeća svojstva
 jednosmjernost (preimage resistance) – uz poznatu
vrijednost h mora biti TEŠKO pronaći m takav da je
h=hash(m), gdje hash predstavlja algoritam, a pojam
TEŠKO je matematički definisan
 jednoznačnost ili slabu otpornost na koliziju (2nd-
preimage resistance) – uz poznatu vrijednost m1 mora
biti TEŠKO pronaći vrijednost m2 (različitu od m1) takvu
da je hash(m1)=hash(m2)
 općenita jednoznačnost ili jaka otpornost na koliziju
(collision resistance) – mora biti TEŠKO pronaći bilo koje
dvije različite vrijednosti m1 i m2 za koje vrijedi
hash(m1)=hash(m2)
Hesh funkcije
 Algoritam koji zadovoljava navedena svojstva svejedno
može imati neka neželjena svojstva
 na primjer, većina popularnih algoritama nije otporna na
napad produženjem ulaznog podatka – uz poznati
hash(m1) i dužinu podatka m1 i nepoznat podatak m1
korištenjem prikladnog m2 napadač može izračunati
hash(m1 || m2) (gdje || označava konkatenaciju) što se
može iskoristiti za probijanje određenih autentikacijskih
šema zasnovanih na hash funkcijama
Hesh funkcije
 Algoritmi za izračunavanje sažetka se dijele na
 algoritme za izračunavanje sažetka bez ključa (MDC -
Modification Detection Codes), koji za ulaz koriste
samo jedan parametar (ulazna poruka) i
 algoritme za izračunavanje sažetka s ključem (MAC –
Message Authentication Codes) koji za ulaz koriste
dva parametra (ulazna poruka i kljuc)
Hesh funkcije
 Realizacija hesh funkcija
 kriptografski algoritam za izračunavanje sažetka mora
omogućiti konverziju ulaznih podataka različite dužine u
izlazni podatak fiksne dužine  to se može postići
razdvajanjem ulaznog podatka u seriju blokova iste
dužine koji se potom obrađuju istom kompresijskom fc.
 generički princip rada takvih algoritama opisali su Ralph
Merkle i Ivan Damgard  Merkle-Damgard konstrukcija
 kompresijska funkcija u takvom algoritmu može biti posebno
dizajnirana ili se može bazirati na blok metodi enkripcije
 algoritam je u tom slučaju otporan na kolizije onoliko koliko je
na njih otporna korištena kompresijska funkcija
Hesh funkcije
 Realizacija hesh funkcija

 f je kompresijska funkcija
 IV je inicijalizirajući vektor, koji predstavlja fiksnu vrijednost
koja zavisi od algoritma ili implementacije
 za svaki blok ulaznih podatka, kompresijska funkcija uzima
rezultat prethodne kompresijske funkcije (prva funkcija uzima
IV), kombinuje ga s blokom ulaznih podataka i na osnovu
toga izračunava rezultat koji se prosljeđuje sljedećoj
kompresijskoj funkciji; zadnji blok ulaznih podataka se
nadopunjuje 0 i bitima koji pohranjuju podatak o dužini
ulaznog podatka kako bi se dobio blok fiksne dužine jednake
Hesh funkcije
 Nedostaci Merke-Damgard konstrukcije
 ako je pronađena jedna kolizija produženjem
odgovarajućeg ulaznog podatka, vrlo lako ih se može
naći još
 višestruke kolizije (više poruka s istim sažetkom)
mogu se pronći vrlo lako nakon pronalaska prve
 ipak, na Merkle-Damgard konstrukciji bazirana je
većina danas korištenih algoritama za izračunavanje
sažetka uključujući MD5 i SHA-1 algoritme
 Primjeri hesh algoritama
 MD5
 SHA1
MD5
 MD5 (Message Digest algoritam)
 jedan od najpopularnijih hesh algoritama
 MD5 algoritam uzima ulaznu poruku proizvoljne dužine i
stvara sažetak dužine 128 bita
 razvio ga je Rivest 1991. godine, kao nasljednika MD4
algoritma (koji je razvijen s namjerom da bude brz na 32
bitnim procesorima, ali zbog toga je bio rizičan u smislu
kriptoanalitičkih napada; MD5 je žrtvovao brzinu radi
povećanja sigurnosti)
 nekada se koristio za zaštitu/testiranje integriteta, a danas
se koristi kao checksum (za cerifikaciju integriteta
nenamjenih izmjena)
MD5
 Princip rada MD5 algoritma
 ulazna poruka se dijeli na blokove dužine 512 bita
 zadnji blok teksta, koji ne mora biti potpun, nadopunjuje
se na 512 bita tako da se iza zadnjeg bita teksta dodaje
jedna jedinica, nakon te jedinice upisuje se toliko nula da
u bloku preostanu 64 bita i u te se preostale bite upisuje
dužina u bitima izvorne poruke (bez nadopunjujućih bita)
 svaki se 512-bitni blok dijeli na 16 podblokova dužine 32
bita, M0, M1, ..., M15
 svaki podblok Mj sudjeluje u izračunavanju sažetka četiri
puta te se obavlja u 64 koraka podijeljena u četiri runda
 u svakom se koraku i (1≤i≤64) u izračunavanje uključuje i
32-bitna konstanta Ki=232(abs(sin(i)))
MD5
 Princip rada MD5 algoritma
 sažetak S od 128 bita sastoji se od četiri 32-bitne varijable
A, B, C i D, koje se početno inicijaliziraju s konstantama
npr. A0=0123456716 B0=89ABCDEF16 C0=FEDCBA9816
D0=7654321016, koje čine inicijalizacijski vektor IV
 u prvoj rundi (1≤i≤16) se koristi nelinearna funkcija
podblokovi se dovode
a rotacija se vrši u lijevo za s=5, s=19,
s=14 i s=20 bita u četiri uzastopna koraka
 u drugoj se rundi (17≤i≤32) koristi funkcija
a podblokovi se uzimaju

i s=5, 19, 14 i 20 itd. do 4 kraja runde


MD5
MD5
 Primjer MD5 sažetka

 Uobičajene primjene
 za provjeru integriteta datoteke
 npr. onih pohranjenih na file serverima, gdje se hesh
računa nakon njihovog download-a
 kod pohranjivanja šifri
 umjesto para korisničko ime-šifra, na disku se
pohranjuje par korisničko ime-hesh(šifre)
MD5
 Kriptoanaliza MD5 algoritma
 1993. objavljen pronalazak pseudokolizija u MD5  dobijen
isti hesh za 2 različita IV
 1996. Dobbertin je izveo uspješan napad na MD5 algoritam i
otkrvši koliziju upotrebom jednog proizvoljnog IV za dvije
ulazne poruke  to je bilo dovoljno da kriptografi preporuče
upotrebu drugih algoritama za stvaranje sažetaka, kao što su
SHA-1 i RIPEMD-160
 2004. godine su naučnici predstavili algoritam za pronalazak
kolizija MD5 za sat vremena
 2005. demonstriran praktični napad na MD5, pronalaskom 2
različita X.509 digitalna certifikata koja daju isti hesh
 danas se napad na MD5 može izvršiti za 1 s
 uprkos tome, 2005. se MD5 još uvijek uveliko koristio!
SHA-1
 SHA (Secure Hesh Algoritham)
 drugi iz niza SHA algoritama razvijenih od strane NSA
(National Security Agency)
 koristi se u velikom broju današnjih aplikacija i
sigurnosnih protokola
 prvi SHA (SHA-0) algoritam objavljen je 1993. godine, ali
je ubrzo nakon objavljivanja povučen iz upotrebe zbog
otkrivene mane, pa je tako 1995. godine objavljen SHA-1
algoritma koji u biti predstavlja samo malo izmijenjenu
varijantu SHA-0 algoritma
 SHA-1 algoritam smatra se nasljednikom MD5 algoritma
i po mnogo čemu mu je sličan
SHA-1
 Iz ulazne poruke maksimalne dužine 264 bita stvara
sažetak od 160 bita, te radi sa 512 bitnim blokovima
 posljednji blok se nadopunjuje kao i kod MD5
 proces obavlja u 80 rundi
 blok poruke M0, M1, ..., M15 proširuje se na 80 32-bitnih
riječi
SHA-1
 Kriptoanaliza SHA-1
 2005. je izvršen prvi napad na SHA-1
 2010. godine je proporučena upotreba SHA-2, 3...
 SHA-1 bazirani digitalni certifikati su se prestali
koristiti od 2017. (Microsoft, Google...)
 2017. kreirana 2 različita pdf file-a koja proizvode isti
SHA-1 hesh
 koristio se u sklopu SSL/TSL, PGP, S/MIME, IpSec
 koristio ga i Nintendo Wii za verufikaciju pri pokretanju
 Danas se preporučuje korištenje SHA-2 i SHA-3
algoritmi za koje ne postoje dokazi da su probijeni
Ostali hesh algoritmi
 RIPEMD-128/160/256/320
 razvio se van NSA, baziran na Markle-Damgard
konstrukciji, sličan MD5 i SHA-1
 2004. pronađena kolizija u RIPEMD-128, ali ne i u
funkcijama koje daju veći sažetak
 algoritmi s dužim sažetkom nemaju povečan nivo
sigurnosti već samo smanjenu mogućnost kolizije
 osnovna razlika izmedu SHA-1 i RIPEMD algoritma je u
tome što je RIPEMD algoritam razvijen od strane
akademske zajednice pa prema tome njegova upotreba
nije ogranicena patentima
 HAVAL-128/160/192/224/256
 objavljen metod za pronalaženje kolizija  upitna
Hesh funkcije
 Funkcije za izračunavanje sažetka imaju široku
primjenu na području računarske sigurnosti i koriste se
 u digitalnim potpisima, u PKI sistemima, u kodovima za
autentikaciju poruke (Message Authentication Codes –
MAC), u protokolima SSL/TLS (Secure Socket
Layer/Transport Layer Security), PGP (Pretty Good
Privacy) sistemima za kriptovanje i autenticiranje podataka,
u protokolu S/MIME (Secure / Multiple Internet Mail
Extension) za osiguranje integriteta poruka, u protokolu
IPSec (IP Security) koji predstavlja skup protokola za
sigurnu razmjenu IP paketa, za indeksiranje podataka u
tablicama sažetaka (hash tables), za otkrivanje jednakih
podataka, za jedinstvenu identifikaciju datoteka, kao zbir za
provjeru (checksum), za otkrivanje korupcije podataka...
Digitalni potpis
 Digitalni potpisi
 omogućava utvrđivanje autentičnosti elektroničkog
dokumenta, npr. e-mail-a, web stranice ili datoteke
 mora imati osobine svojeručnog potpisa
 autentičnost – potpis može napraviti samo potpisnik lično
 svako ga mora biti u mogućnosti provjeriti (poređenjem sa
ranijim potpisima)
 mora garantovati sadržaj i integritet dokumenta koji je
potpisan
 naporecivost – potpisnik ne može poreći da je potpisao
dokumenat
Digitalni potpis
 U kriptografiji, navedene funkcije se realizuju
korištenjem eimetrične/asimetričnih kriptoalgoritama i
hesh funkcija
 autentičnost – potpis može napraviti samo potpisnik lično
 potrebno je nešto što je svojstveno samo potpisniku (nešto
što samo on zna)  privatni ključ asimetričnog algortma
 svako ga mora biti u mogućnosti provjeriti
 korištenjem javnog ključa
 mora garantovati sadržaj i integritet dokumenta
upotrebom hesh algoritama
 naporecivost – potpisnik ne može poreći da je potpisao
dokumenat
 već osigurana, jer javni ključ zna samo njegov vlasnik
Digitalni potpis
 Procedura digitalnog potpisivanja koja se najčešće
primjenjuje u praksi
 izračuna se jednosmjerni hash dokumenta
 izračunati hash se šifruje asimetričnim kriptoalgoritmom, sa
privatnim ključem potpisnika
 rezultat ove operacije je digitalni potpis koji se čuva ili šalje
zajedno sa dokumentom
 Na prijemnoj strani se vrši provjera potpisanog dokument
 prijemna strana računa hesh dokumenta
 dešifruje primljeni hesh javnim ključem potpisnika
 poredi dešifrovani i proračunati hesh
 ako su isti, potvrđuje se autentičnost i integritet dokumenta, t
Digitalni potpis
 Razlog zašto se potpisuje sažetak, a ne poruka
 efikasnost
 potpis će biti puno kraći pa će i cjelokupni postupak biti brži
jer je u praksi stvaranje sažetka brže od stvaranja potpisa
 javna dostupnost dokumenta
 npr. razne diplome, potvrde, i sl., trebaju biti javno dostupni
pa se spremaju i prenose bez enkripcije, a priloženi potpis
garantuje vjerodostojnost pojedinog dokumenta
 integritet
 tekst koji se potpisuje treba biti kraći od dužine privatnog
ključa; ako to nije slučaj, pri potpisivanja bez sažimanja
poruka bi se morala razlomiti na dijelove, te pojedinačno
potpisati svaki dio,;primatelj tako razlomljene poruke ne bi
mogao znati je li koji njen dio izgubljen pri prenosu
Digitalni potpis
 Dakle, digitalni potpis osigurava
 autentičnost
 identitet pošiljatelja utvrđuje se dešifriranjem sažetka
poruke
 integritet
 provjerom sažetka poruke utvrđuje se je li se poruka
mijenjala na putu do primatelja
 neporecivost
 pošiljatelj ne može poreći sudjelovanje u transakciji jer
jedino on ima pristup do svog privatnog ključa kojim je
potpisao poruku
 ali njegova svrha nije šifriranje dikumenta!!!
Digitalni potpis
 Algortimi za digitalni potpis
 RSA
 bazira se na RSA algoritmu asimetrične kriptografije
 DSA (Digital Signature Standard) – standard u SAD-u
 DSA je propisan standardom vlade SAD-a i koriste ga sve
civilne vladine organizacije te sve ne-vladine tvrtke i
organizacije koje sarađuju s vladom
 algoritam je 1991. godine patentirao David W. Kravitz,
bivši zaposlenik NSA
 predstavlja varijantu ElGamal algoritma i SHA1/2 hesh
algoritama
 moguće ga je koristiti bez plaćanja naknade
Digitalni potpis
 RSA DS algoritam
Digitalni potpis
 Simetrična kriptografija omogućila je brzo i sigurno
šifriranje podataka
 Asimetrična kriptografija rješila je problem distribucije
ključeva i u kombinaciji sa hesh funkcijama, omogućila
digitalno potpisivanje dokumenata  na ovaj način
ostvareni su
 povjerljivost podataka
 mogućnost potvrde identitet njihovog autora
 integritet
 neporecivost autorstva  sve ranije navedene namjene
kriptografije postaju ostvarive
Digitalni potpis
 Iako je pitanje sigurne distribucije ključeva riješeno time
što postoje dva ključa javni i privatni, postavlja se novo
pitanje, autentičnosti javnog ključa
 da bi javni ključ bio dostupan i upotrebljiv potrebno ga je
objaviti sa podacima o tome kome on pripada
 ovi podaci o javnim ključevima mogu biti promijenjeni i
pošiljalac može poslati povjerljivu poruku nekome drugom
od onoga kome je namjeravao i mislio da šalje  potrebno
je osigurati da javni ključ zaista pripada onome za koga
registar javnih ključeva kaže da mu pripada, kao i
obezbijediti otkrivanje bilo kakve promjene podataka 
navedeno je tipičan kriptografski zadatak potvrde identiteta
i integriteta podataka što se opet može postići digitalnim
potpisivanjem
Digitalni potpis
 Digitalni certifikat
 digitalno potpisan elektronički dokument koji povezuje
javni ključ sa onim kome pripada, pri čemu se digitalnim
potpisom se osigurava integritet podataka, a njihovu
autentičnost garantuje potpisnik  potpisnik certifikata
mora biti neko kome svi korisnici certifikata vjeruju i čiji
javni ključ, koji se koristi za provjeru potpisa na
certifikatima, mora biti pouzdano ispravan
 da bi bili sigurni u autentičnost javnog ključa nekog
subjekta, potrebno je da ga dobijemo
 od nekoga koga direktno ili indirektno poznajemo (web of
trust koncept digitalnih vertifikata)
 od neke ustanove od povjerenja
Digitalni potpis i PKI
 da bi prethodno funkcionisalo u praksi neophodna je
tzv. infrastruktura javnih ključeva (PKI), koju čine
 certifikati
 certifikacijska ustanova
 javno dostupno spremište certifikata
 mehanizmi za opoziv certifikata (zbog mogućnosti
kompromitacije ili gubitka privatnog ključa), kao i lista
opozvanih certifikata
 subjekti certificiranja kojima se izdaju digitalni certifikati
Digitalni potpis i PKI
 Certifikati
 strukture podataka koje povezuju javni ključ sa
subjektom certifikata
 navedena veza se potvrduje digitalnim potpisom
certifikacijske ustanove koja ih je izdala
 najrašireniji formati certifikata koji se koriste u PKI je
X.509, koji podržavaju vodeći PKI-omogućeni protokoli i
aplikacije (TLS/SSL, IPSec i S/MIME), te PGP, koji se
koristi u vrlo raširenom software-skom paketu istog
naziva PGP (Prety Good Privacy)
 Subjekti certifikata
 krajnji korisnicima (osobe, uređaji kao što su serveri ili
router-i, te procesi i programi)
Digitalni potpis i PKI
 Certifikacijska ustanova (Certification Authority - CA)
 potpisnik i izdavač certifikata
 primarne operacije CA su izdavanje certifikata, njihovo
obnavljanje i po potrebi opozivanje
 CA svojim potpisom garantuje ispravnost podataka u
certifikatu
 CA, direktno ili preko registracijske ustanove, registruje
krajnje krosinike, subjekte certifikata, i verificira njihov
identitet na odgovarajući način
 CA su izvor povjerenja u PKI
Digitalni potpis i PKI
 Spremište certifikata
 certifikati moraju biti dostupni svim korisnicima PKI kako
subjektima certifikata tako i aplikacijama i trećim
stranama koje koriste certifikate za provjeru identiteta ili
šifriranje poruka subjektima certifikata  za ovo se
koriste spremišta certifikata koja predstavljaju sistem ili
skup distribuiranih sistema koji pohranjuju certifikate i
liste opozvanih certifikata i služe kao sredstvo za njihovu
distribuciju krajnjim korisnicima
 pod spremištima certifikata se obično podrazumijevaju
X.500 direktoriji, a to mogu biti i obične datoteke na
serveru dostupne preko FTP ili HTTP protokola
 X.509 format certifikata se u potpunosti uklapa u X.500
direktorije ovo je i najbolji način za izvedbu spremišta
Digitalni potpis i PKI
 Izbor modela povjerenja
 u privatnim kontaktima ljudi se oslanjaju na preporuke
drugih ljudi koje poznaju  oaj model se u PKI
terminologiji naziva mreˇza povjerenja (Web of Trust )
 mreža povjerenja je kombinacija direktnog i hijerarhijskog
povjerenja gdje certifikate ne potpisuje CA već se korisnici
uzajamno certificiraju  neki certifikat može potpisati svaki
od korisnika koji mu vjeruje i označiti jedan od unaprijed
definisanih stepena povjerenja, pri čemu veći broj potpisa
višeg nivoa povjerenja bi trebao da pozitivno utiče na
vjerodostojnost certifikata, a konačnu odluku o vrijednosti
certifikata, ipak, donosi korisnik, kome je certifikat pokazan
kao identifikacijski dokument, na osnovu njegovog
povjerenja u sve potpisnike certifikata
Digitalni potpis i PKI
 Izbor modela povjerenja
 u poslovnim kontaktima ljudi se više oslanjaju na
identificiranje poslovnih saradnika od strane neke
organizacije kojoj oni pripadaju
 ovo predstavlja hijerahijski model povjerenja, zasnovan na
jednoj vrhovnoj certifikacijskoj ustanovi od koje potiču svi
certifikati unutar njenog domena
 vrhovna certifikacijska ustanova izdaje certifikate drugim,
podredenim, certifikacijskim ustanovama i/ili krajnjim
korisnicima  na ovaj način se svaki certifikat izdat unutar
domena može povezati sa vrhovnim certifikatom i
povjerenje u certifikate se zasniva na povjerenju u vrhovnu
certifikacijsku ustanovu i kompletan lanac certifikacije do
korisničkih certifikata
Digitalni potpis i PKI
 dobre strane opisanog modela su mogućnost
centraliziranog upravljanjanja infrastrukturom javnih
ključeva, jer vrhovna CA može kroz formu certifikata
nametnuti dogovorenu politiku za sve certifikate u
domenu
 model povjerenja koji se u praksi najviše koristi je
model pohranjenih vrhovnih certifikacijskih ustanova,
jer je ugrađen u sve savremene web preglednike i čini
osnovu web trgovine
Protokoli koji koriste PKI
 Protokoli za podršku aplikacija koje koriste PKI
 SSL (Secure Socket Layer)
 koristi se za identifikaciju klijenta i poslužitelja (razmjena
javnih ključeva i certifikata)
 osigurava privatnost komunikacije (simetričnim
kriptosustavom), identitet sudionika u komunikaciji
(asimetričnim kriptosustavom) i jamči pouzdan prijenos
podataka (provjera integriteta hash funkcijama).
 S/MIME (Secure Multipurpose Internet Mail Extension) –
 koristi se pri prenosu e-mail-a i dodavanje certifikata poruci
 SET (Secure Electronic Transaction)
 koristi se pri bankarskim transakcijama i sadrži protokole
za naručivanje roba i usluga, autorizaciju plaćanja i
PGP
 Internet je stvorio infrastrukturu za digitalno tržište 
procvat e-trgovine + komunikacija Internet-om... -->
 uspjeh informatičkog doba zavisi od sposobnosti zaštite
informacija, koja zavisi od moći kriptografije
 2000 g. kriptografija je bila važna samo za države i vojske,
a danas obični ljudi svoju privatnost čuvaju kriptografijom
 međutim, kriptografija ne štiti samo poštene građane nego i
kriminalce  1991. u američkom Senatu predstavljen prijedlog
novog zakona prema kojem bi svi proizvođači opreme za
sigurnu komunikaciju bili prisiljeni ugrađivati u svoje proizvode
mogućnost za državu da prema potrebi dešifruje zaštićene
oblike komunikacije
 prijedlog nikada nije zaživio, no inspirisao je Philipa R.
Zimmermann-a da te iste godine napiše PGP (Pretty Good
Privacy), program čija je osnovna uloga zaštita sadržaja e-mail-a
PGP
 Pri tome, RSA je u teoriji nudila mogućnost sigurne
komunikacije
 međutim, 80ih godina, samo su države, vojske i velike
kompanije mogle priuštiti računare koji su mogli vršiti RSA
enkripciju
 Zimmerman kreirao PGP koji RSA koristi samo za razmjenu
ključeva simetrične kritpografije, a ne i za šifriranje poruke
 zaštita sadržaja postala dostupna svima
 ako Alice želi Bobu poslati poruku, to radi brzim simetričnim
kriptoalgoritmom (Zimmerman je najprije osmislio svoj
algoritam Bass-o-Matic koji se nije najbolje pokazao, a kasnije
je implementirao IDEA-u), a zatim korišteni ključ šifrira
Bobovim javnim RSA ključem
 Bob pomoću privatnog ključa dešifruje simetrični ključ, te
PGP
 Princip rada
 kompresija se vrši da se smanje podaci koji se šifriraj,
ali i zbog činjenice da postupak kompresije jača
kriptozaštitu (pa sadržaj postaje otporan na razne
kriptoanalize koje se baziraju na postojanje
uzoraka/redundase u poruci)
 tekst se šifrira nekim simetričnim algoritmom (u prvom
koraku se koristila IDEA, sa 128-bitnim sesijskim
ključem koji se slučajno generiše, npr. na osnovu
pozicije miša...
 sesijski ključ se šifrira javnim ključem primaoca, koji on
dešifruje svojim privatnim ključem i na osnovu kojeg
dekriptuje poruku
PGP
PGP
 Iako je Zimmerman namjeravao prodati PGP, nakon što
je shvatio da će naići na problema sa Vladom, odlučio
ga je objaviti na Internet-u  program se rapidno
proširio i procurio izvan SAD-a
 ovim je Zimmerman prekršio ITAR (International Traffic and
Arms Regulation) kojim se strogo zabranjuje izvoz jakog
kriptografskog software-a, svrstavajući ga u istu kategoriju
sa dijelovima borbenih aviona te klasičnim, kemijskim i
biološkim naoružanjem i bio optužen kao trgovac oružjem!
 zbog toga je nekoliko godina bio pod istragom američkog
pravosuđa, ali je 1996. oslobođen optužbi
 1997. godine se pojavila prva legalna verzija PGP-a izvan
SAD-a (kod je napisan u knjizi i tako distribuitan, a ne kao
software  uklonjena zakonska prepreka širenju PGP-a)
PGP
 Sigurnost PGP-a
 PGP programi su otporni na sve trenutno poznate
kriptoanalitičarske tehnike, osim na napad brute
force-om, ali za maksimalnu sigurnost neophodno se
pridržavati određenih pravila
 privatni ključ se pohranjuje na lokalnom disku i šifrira se
pomoću posebne šifre koja mora biti jaka i ne bazirati
se na svakodnevnom pojmu (da se ne bi mogla razbiti
tzv. dictionary attack-om
 svi ključevi moraju biti generisani na slučajan način,
korištenjem kvalitetnih pseudoslučajnih generatora
Literatura
 Literatura
 S. Singh: ''Šifre''‚ poglavlja 5 i 6
 CARNet, Hrvatska Akademska i istraživačka mreža:
''Diffie-Hellman protokol'‚, 2009
 Dujella: ''Kriptografija'', poglavlje 3
 CARNet, Hrvatska Akademska i istraživačka mreža:
''Algoritmi za izračunavanje sažetka'', 2006
 CARNet, Hrvatska Akademska i istraživačka mreža:
''Napad na MD5 algoritam'', 2009
 CARNet, Hrvatska Akademska i istraživačka mreža:
''Digitalni potpis'', 2007
 Sasa Mrdović, predavanja iz predmeta Tehnologije

You might also like