Professional Documents
Culture Documents
P1 - Uvod U Kriptografiju
P1 - Uvod U Kriptografiju
SIGURNOST SISTEMA
Predavanje 1
Uvod u kriptografiju
Struktura predmeta
Prvih 7 sedmica biće posvećeni isključivo kriptografiji i
njenoj primjeni
Pamela Njemčević
teoretska obrada pojmova iz kriptografije
predavanja i tutorijali će se održavati integralno
Rješenje 1:
abc, acb, bac, bca, cab, cba na prvoj poziciji jedno od 3
slova, na 2. jedno od preostala 2 3!=6
slučaj1: sva slova različita – perm. bez ponavljanja 3!=6
slučaj2: 2 ista slova i 1 različito, 3*2=6 mogućnosti, perm. sa
ponavljanjem 3!/2!=3 ukupno 3*6=18 varijanti
sva slova ista – 3 mogućnosti, bez permutacija
ukupno 27 mogućnosti ili 1. slovo se bira na 3 načina, 2. na 3
Uvod u kriptografiju
Tranzpozicijske šifre (predračunarska era)
da bi primaoc mogao da dešifruje poruku, algoritam
rasporeda slova mora biti jednostavan
u suprotnom neophodno zapisati ključ – slaba tačka!
praktični primjeri - naizmjenična transpozicija:
npr. KRIPTOGRAFIJA (svako drugo slovo)
KITGAIARPORFJ
primjer: SKITAL (Sparta, 5. st. p. n. e.)
drvena palica oko koje se namotavala traka i po njoj se
pisao tekst
nakon odmotavanja na traci bi bio
ispremještani niz slova originalne poruke
ključ je bio štap iste debljine kao
originalni štap
Uvod u kriptografiju
Supstitucijske šifre (predračunarska era)
svako slovo izvornog teksta zamjenjuje se nekim drugim
slovom
kod supstitucije slovo zadržava položaj, a mijenja identitet,
dok kod transpozicije slovo mijenja položaj, a ne identitet
prvi primjer supstitucijske šifre iz 4. st. p. n. e
nasumično uparivanje i zamjena slova
1. zapis o primjeni supstitucijske šifre u vojne svrhe -
Cezar (1. st. p. n. e.)
Atbash šifra
opšta supstitucijska šifra
ako se pretpostavi mogućnost bilo kakvog rasporeda
kodnog alfabeta približno 4*1026 ili 288 mogućnosti
Uvod u kriptografiju
opšta supstitucijska šifra (predračunarska era)
zadovoljava zahtjev da je tajna u ključu, a ne u algoritmu
(2. Kerckhoff-ovo pravilo) jako dobra ~ 288
ključ (raspored kodne abecede) - tajan, mnogo verzija
opšta supstitucijska šifra pri čemu je jako važno odabrati
lako pamtljiv ključ; u suprotnom, ključ je neophodno zapisat
supstitucijska šifra je bila toliko dobra da je stotinama
godina smatrano da se ne može razbiti
sve do pojave frekvencijske kriptoanalize (9. st)
danas se supstitucija i transpozicija primjenjuju nad
bitima
u sklopu DES (ključ 56 bita), AES (ključ od 128 bita), itd.
Algoritama
Uvod u kriptografiju
Supstitucijske šifre (predračunarska era)
monoalfabetske
Cezarova šifra
Afina šifra
opšta supstitucijska šifra
Polialfabetske i poligramske
Vigenèreova šifra
Playfairova šifra
Hillova šifra
protočne šifre
postupak šifrovanja se može mijenjati za svaki simbol
poruke
elementi otvorenog teksta se obrađuju jedan po jedan
koristeći pritom niz ključeva koji se paralelno generišu
obavlja se tranformacija svake jedinične informacije (bita,
simbola), te se vrše vremenski promjenljive transformacije
individualnih jedinica izvornih podataka
mogu se realizovati samo korištenjem supstitucije
Uvod u kriptografiju
Osobine simetričnih kriptosistema
za proces šifriranja i dešifriranja u simetričnoj kriptografiji
potrebno je znati algoritam i ključ sigurnost dobrog
sistema zasnovana je na dužini i sigurnosti ključa, a ne
na navodnoj tajnosti algoritma
savremeni simetrični kritpografski algoritmi su vrlo dobri i
sigurni jer su još uvijek sve vrste njihove kriptoanalize po
potrebnim resursima bliske resursima potrebnim za
ispitivanje svih kombinacija ključa (brute force napad)
sa današnjim dužinama ključa, od 128 bita i više, broj
kombinacija je isuviše veliki da bi kratkoročna sigurnost
algoritama bila ugrožena
Uvod u kriptografiju
Nedostaci simetričnih kriptosistema
vezani su za ključeve, tačnije upravljanje ključevima
potrebno je naći siguran način distribucije ključeva od
jedne do druge strane u komunikaciji prije nego što sigurna
komunikacija može početi
pošto je sigurnost svih šifriranih informacija zasnovana na
sigurnosti ključa, otkrivanjem ključa otkrivaju se i sve
informacije šifrirane tim ključem, pri čemu sigurna razmjena
ključeva pogotovo na velike daljine može predstavljati vrlo
ozbiljan praktičan problem!
ako je potrebno za svaki par subjekata u sistemu koji žele
sigurno komunicirati imati poseban ključ, broj ključeva
veoma brzo raste sa rastom broja korisnika sistema
za n korisnika potrebno je imati n(n - 1)/2 ključeva
generisanje i upravljanje ključevima je veoma nepraktično
Uvod u kriptografiju
Asimetrična kriptografija
razvoj savremenih elektroničkih komunikacija i upotreba
računara, računarskih i drugih komunikacionih mreža
učinili su problem distribucije ključeva simetrične
kriptografije još većim (veliki broj korisnika, velike
udaljenosti...)
mreže nisu inicijalno kreirane da budu sigurne
da bi se prevazišao problem distribucije ključeva, Diffie i
Hellman su 1976. predložili novi koncept asimetrične
kriptografije, realizovane korištenjem para ključeva – javnog
i tajnog
javni ključ je dostupan svima i koriti se za šifriranje, a tajni
samo 1 korisniku i omogućava dešifriranje na ovaj način se
rješava problem distribucije ključeva i njihovog broja
Uvod u kriptografiju
Asimetrična kriptografija
svaki korisnik koji želi sigurnu komunikaciju objavi svoj javni
ključ koji koristi svako ko mu želi poslati poruku ovu
poruku korisnik može pročitati samo sa svojim tajnim
ključem, čime se osigurava povjerljivost podataka
nema potrebe za posebnim kanalima za sigurnu distribuciju
ključeva!!!
analogija sa poštanskim sandučetom i katancem svako može
ubaciti pismo u sandučić (šifriranje javnim ključem), a samo onaj
koji ima ključ od katanca ga može i pročitati (dešifriranje
privatnim ključem)!
na osnovu javnom ključa ne smije biti moguće proračunati tajni
ključ odnosno cijena postupka treba biti takva da se pomenuto
ne isplati (teoretski mora biti moguće), tj. resursi potrebni za
izračunavanje privatnog iz javnog ključa treba da budu
nesrazmjerno veći od vrijednosti informacija koje se šifriraju
Uvod u kriptografiju
Asimetrična kriptografija
dodatno, potrebno je da šifriranje i dešifriranje budu
jednostavni prijedlog korištenja jednosmjernih funkcija
koje se jednostavno izračunavaju u jednom pravcu, a
nesrazmjerno teže u drugom
primjeri algoritama RSA (Rivest, Shamir, Adleman), 1978
njegova sigurnost zasnovana je na težini rastavljanja velikih
brojeva (npr. od 200 cifara) na proste faktore
tzv. hard problem kojim se matematičari bave već 300 godina,
i za koji još uvijek ne postoji brz i jednostavan algoritam
od predstavljanja do danas nije bilo značajnijeg napretka u
rješavanju pomenutog problema koji bi ugrozio sigurnost RSA
ostali asimetrični algoritmi bazirani na hard problemima –
ElGamal i kriptosistemi bazirani na eliptičkim krivim
Uvod u kriptografiju
Asimetrična kriptografija
riješila problem distribucije ključeva
nedostaci
algoritmi sa javnim ključem su 100 do 1000 puta sporiji od
simetričnih algoritama
kriptosistemi sa javnim ključem su podložni jednoj vrsti
kriptoanalize koja se naziva napad na izabrani izvorni tekst
(chosen-plaintext attack)
u savremenoj praktičnoj upotrebi algoritmi sa javnim ključem
nisu zamijenili simetrične algoritme već se koriste za različite
namjene algoritmi sa javnim ključem se koriste najčešće
za šifriranje ključeva koji se koriste za šifriranje podataka koji
se razmjenjuju simetričnim algoritmima
Uvod u kriptografiju
Kriptoanaliza
se bavi dešifriranjem izvornog teksta iz šifriranog teksta
bez poznavanja ključa
moguće je dešifrirati izvorni tekst ili doći do ključa
tipovi kriptoanalitičarskih napada
poznat samo šifriran tekst C - napad je uvijek moguć, jer
napadač ima pristup šifriranom tekstu
poznat izvorni P i odgovarajući šifrirani tekst C – ovaj
napad je često moguć, jer veliki broj komunikacionih
protokola ima standardna poznata zaglavlja koja u ovom
slučaju predstavljaju poznat izvorni tekst
Uvod u kriptografiju
Kriptoanaliza
tipovi kriptoanalitičarskih napada
poznat odabrani otvoreni tekst, tj. može se birati poruka
otvorenog teksta koja se želi šifrirati - napad je moguć ako
napadač ima pristup sistemu za šifriranje, ali nema ključ za
dešifriranje
odabrani šifrat - može se birati šifrirana poruka koja se želi
dešifrirati - ovaj napad je moguć ako napadač ima pristup
sistemu za dešifriranje, ali nema ključ
+ potkupljivanje, ucjena, krađa i slično - ovaj napad ne spada
doslovno u kriptoanalizu, ali je vrlo efikasan i često
primjenjivan u kombinaciji s "pravim" kriptoanalitičkim
napadima
Uvod u kriptografiju
Kriptoanaliza
metode se mogu podijeliti na matematičke i statističke
matematički napadi treba da rezultuju pronalaženjem
inverznog algoritma šifriranju, tj. skraćenju vremena
pretraživanja
statističke metode su zasnovane na poznatim statističkim
karakteristikama originalnog teksta
baziraju se na pronalaženju frekvencije simbola u poruci i
poređenjem sa poznatim frekvencijama izvornog jezika (pr.
frekvencijske analize iz 15. stoljeća)
linearna kriptoanaliza - aproksimacije transformacije šifriranja
diferencijalna kriptoanaliza - statistički parametri razlike
šifriranih poruka za originalne poruke poznatih razlika
Primjena kriptografije
U posljednjim desetljećima, područje kriptografije je
proširilo svoje djelovanje na dva načina
kriptografija pruža mehanizme za druge primjene osim
čuvanja tajne (digitalni potpis i digitalni novac...)
kriptografija je postala jako rasprostranjena u upotrebi od
strane mnogih civila koji nemaju izuzetne potrebe za
tajnošću i transparentno je ugrađena u računalnu i telekom.
infrastrukturu, a da korisnici nisu toga svjesni
interdisciplinarno područje, koja vuče temelje više područja
prije vremena računara, kriptografija je bila blisko povezana s
lingvistikom
u današnje vrijeme kriptografija intenzivno koristi tehnička
područja matematike, osobito teorije brojeva, teorije informacija,
računarske složenosti, statistike i konačne matematike
procvat u zadnjih 30 god. veći nego kroz istoriju od 4000 god.
Primjena kriptografije
Kriptografske funkcije za izračunavanje sažetka poruke
- hash funkcije
temeljna uloga u modernoj kriptografiji – koriste se za
provjeru integriteta!
funkcija koja niz simbola proizvoljne dužine (izvorna poruka)
pretvara u niz simbola fiksne dužine
očigledno je kod navedenog preslikavanja moguće imati više
parova ulaza sa istim izlazom
osobine kriptografskih hash funkcija
mora biti jednostavno izračunati hash bilo koje ulazne vrijednosti
funkcija mora biti jednosmjerna, tj. treba biti lako izračunati hash
ulaza, ali teško (računski neisplativo), pronaći ulaz na osnovu
hash-a
funkcija treba biti bez sudara što znači da treba biti neisplativo
pronaći dva niza simbola sa identičnim hash-om
Primjena kriptografije
Hash funkcije
promjena 1 bita ulaza prosječno mijenja 1/2 bita hesh-a
algoritmi: MD2, MD5 (128-bitni hash, primjena u
aplikacijama za digitalno potpisivanje), SHA-1 (160-bitni
hash), SHA-2 (256-512-bitni hash), MASH-1...
princip korištenja hash funkcija za provjeru integriteta
poruka se hash-ira i šalje zajedno sa hash-om na prijemnu
se od poruke pravi hash i poredi sa prispjelim hash-om ako
se razlikuju, znači da je poruka izmjenjena
princip korištenja hash funkcija za provjeru autentičnosti
poruka i tajna informacija koju znaju pošiljaoc i primaoc se
hash-iraju i poruka i hash se šalju bez tajne informacije na
prijemu se na osnovu primljene poruke i poznate tajne
informacije računa hash i ako je isti kao prispjeli, potvrđuje se i
autentičnost (jer samo pošiljaoc zna tajnu informaciju)
Primjena kriptografije
Digitalni potpis
elektronički oblik običnog potpisa
digitalni potpis je broj ovisan o nekoj tajni poznatoj samo
potpisivaču i sadržaju poruke koja se potpisuje
digitalni potpisi se moraju moći provjeriti; ako dođe do
prepirke o tome da li je stranka potpisala dokument
(uzrokovane od lažnog potpisivača koji pokušava poreći
potpis koji je stvorio ili od lažnog zahtjevatelja), nepristrana
treća strana trebala bi biti u mogučnosti da pravedno riješi
spor, bez potrebe pristupa potpisivačevoj tajnoj informaciji
(privatnom ključu)
ima mnogo primjena kod sigurnosti informacije, uključujući
autentikaciju, integritetu podataka i neporecivosti
Primjena kriptografije
Karaketristike digitalnog potpisa
osigurava besprijekornost informacije tj. da je primalac
siguran da poruka nije izmijenjena namjerno ili slučajno
otkriva identitet pošiljatelja tj. digitalni potpis garantuje da
je osoba koja je potpisala poruku vjerodostojna
budući se kod digitalnog potpisa sažetak poruke šifruje
privatnim ključem te osobe (koji samo on/ona posjeduje)
time se jednoznačno potvrđuje identitet osobe.
osigurava neporecivost tj. osoba koja je potpisala
dokument ne može zanijekati da je poslao/la poruku
digitalni potpis ne osigurava tajnost - budući se tekst poruke
ne šifruje, tajnost nije osigurana, a u slučaju da je poruka
šifrovana, više ne govorimo o digitalnom potpisu nego o
digitalnom pečatu
Primjena kriptografije
Realizacija digitalnog potpisa
u osnovi digitalnog potpisa je asimetrični algoritam, pri čemu
se od otvorene, početne poruke najprije pravi hash (sažetak)
koji se šifrira tajnim ključem pošiljaoca (digitalni potpis) i
primaocu se proslijeđuju poruka i šifrirani hash
primaoc dešifruje hesh pomoću javnog ključa pošiljaoca,
kreira hash iz originalne poruke i poređenjem samostalno
napravljenog i dekriptovanog hash-a, potvrđuje ili ne
autentičnost i integritet primljene poruke
Primjena kriptografije
Realizacija digitalnog potpisa
Primjena kriptografije
u ovakvoj zaštiti i autentikaciji komunikacije, problem je
povjerenje javnog ključa, odnosno kako vjerovati da je
javni ključ siguran i da pripada osobi ili instituciji sa kojom
se uspostavlja zaštićena komunikacija?
problem je riješen uspostavljanjem organizacija od
povjerenja tzv. CA organizacija (Certification Authority), koje
garantuju da je javni ključ u potpunosti siguran, i da bez
dvojbi pripada osobi ili instituciji iza koje CA organizacija
stoji
zadatak ovih organizacija je da osobama/institucijama koje
dostave svoje podatke kreiraju digitalne certifikate, te ih
vežu javnim ključem
među CA organizacijama u svijetu, najveće povjerenje uživa
VeriSign
Primjena kriptografije
Klasifikacija digitalnih potpisa
sa dodatkom - trebaju originalnu poruku kao ulaz u
verifikacijski algoritam
najčešće se koriste u praksi
oslanjaju se na kriptografske funkcije za izračunavanje
sažetka umjesto na prilagođene funkcije redundancije i
manje su sklone na egzistencijalne napade krivotvorenja
primjeri mehanizama koji pružaju digitalne potpise s
dodatkom su DSA, ElGamal sheme digitalnog potpisivanja
sa obnavljanjem poruke - ne trebaju originalnu poruku kao
ulaz u verifikacijski algoritam
originalna poruka se dobiva iz samog potpisa
u praksi se koristi za potpisivanje kratkih poruka
RSA, Rabin i Nyberg-Rueppel sheme potpisivanja javnog ključa
Primjena kriptografije
PGP (Pretty Good Privacy)
shodno važećim zakonima, američka vlada je
svojevremeno podigla tužbu protiv Philla Zimmermanna
kada je 1991. godine objavio PGP kao kriptografski
program sa (do tada) neviđenim nivoima enkripcije
podataka u javnom prostoru
ipak, tužba je kasnije povučena, a PGP je za kratko
vijeme stekao ogroman broj poklonika koji su bili spremni
ne samo da ga koriste, već i dalje razvijaju PGP
program je za kratko vrijeme napravio značajne pomake
od izvornog Zimmermannovog koda, postavši dostupan i
u besplatnoj verziji sa grafičkim interface-om
Primjena kriptografije
Kako radi PGP?
najprije se formira sažetak poruke koja se šalje
sažetak se šifrira privatnim ključem pošiljaoca i dodaje na
početak poruke (primaoc dešifruje hesh javnim ključem
pošiljaoca ako su sažeci isti, primaoc je siguran u
identite pošiljaoca i integritet poruke)
na strani pošiljatelja, zatim se sažima/komprimira tekst
ZIP alatima na taj način se smanjuje veličina podataka
koji se prenose i postiže se bolja zaštita
Primjena kriptografije
Kako radi PGP?
zatim se stvara tzv. session key (ključ simetričnog
algoritma) tako da se analiziraju slučajni uzorci kao
što je npr. pomijeranje miša ili broj pritisnutih tipki
njime se enkriptuje plaintext i on je uvijek drugaćiji za
svaku poruku
session key se šifrira javnim ključem primaoca poruke
i dodake se na njen početak, te se sve skupa šalje
primaocu
na strani primaoca, vrši se otključavanje poslanog
paketa, tako što se prvo otključava mala “bravica”
odnosno čita se session key, koji sadrži ključ za
dekripciju cijelog teksta
Primjena kriptografije