16_213_2007_kriptografija

Download Report

Transcript 16_213_2007_kriptografija

PRIMENA TEORIJE SLOŽENOSTI
U KRIPTOLOGIJI
profesor:
dr Zoran Ognjanović
student:
Branko Kalanović 213/07
Sadržaj predavanja
• Kriptologija
• Kriptološki sistemi
•
•
•
•
Primer sistema sa tajnim ključevima
Sigurnost kodiranja
Jednosmerne funkcije
Primer sistema sa javnim ključevima (RSA)
Kriptologija
Traka obmotana oko štapa
• stara Grčka
• jedan od najstarijih
tipova kriptološke
zaštite
Kriptologija
Enigma
• Nemačka
• elektro-mehanika
• od 1920. do kraja
Drugog Svetskog
Rata
Kriptologija
Smart kartice
• digitalno doba
• savremeni sistemi
• čip za
izračunavanje
kriptoloških algoritama
Kriptološki sistemi
• A i B – učesnici
komunikacije
• P – prisluškivač
• x – poruka
• e – ključ kodiranja
• d – ključ dekodiranja
• E – funkcija kodiranja
• D – algoritam
dekodiranja
• D(d,E(e,x))=x
D i E su inverzne u odnosu na ključeve e i d,
radi bolje efikasnosti enkripcije bi trebalo da su
polinomijalne složenosti.
Kriptološki sistemi
Primer sistema sa tajnim ključevima
• Uzmimo za E i D sabiranje po modulu 2
• Neka je e=d=a i |a|=|x|- binarna reč iste
dužine kao i poruka koja se prenosi
D(a,E(a,x))=(x*a)*a=x
E(a,x)*x=(x*a)*x=a
• Obezbeđena je inverznost funkcija D i E, kao i
da se x može izračunati ako i samo ako se zna a
NAPOMENA – simbol * se koristi kao ekskluzivna disjunkcija (ekskluzivno ili)
Kriptološki sistemi
Primer sistema sa tajnim ključevima
Problemi:
• razmena ključa koji treba da ostane tajan, pre
početka komunikacije, i koji je iste dužine kao i
poruka
• napadi (razbijanje tajnog ključa)
• kratak ključ – pretraga kroz sve moguće ključeve
• isti ključ se koristi više puta – analize mogućeg ključa
Kriptološki sistemi
Sigurnost kodiranja
• Teorijski, upotrebom ključa umerene dužine,
kodiranje nije apsolutno sigurno
• praktična sigurnost se dobija upotrebom ključa
dužine 100 bita – ključ se ne može brzo otkriti
• teorija složenosti izračunavanja se koristi za
utvrđivanje sigurnosti koda
• za probleme iz klase NP-kompletnih nema
efikasnog načina izračunavanja
Kriptološki sistemi
Sigurnost kodiranja
• svođenjem NP-kompletnog problema na
problem razbijanja ključa utvrđujemo složenost
tog problema
• nedovoljan dokaz, jer se NP-kompletnost odnosi
na analizu najgoreg slučaja
• neki NP-kompletni problemi se mogu lako rešiti
• primenjiviji su algoritmi koji su složeni u odnosu
na prosečan slučaj (faktorizacija prirodnih
brojeva)
Kriptološki sistemi
Jednosmerne funkcije
Funkcija
je jednosmerna ako važi:
• je 1 – 1 funkcija
• je polinomijalne složenosti
• za svako x je
najviše polinomijalno duže ili
kraće od
•
nije polinomijalne složenosti
Kriptološki sistemi
Jednosmerne funkcije
•
pripada klasi NP – za svaki
i izabrani u
polinomijalnom vremenu proverava
• pretpostavka P=NP – jednosmerne funkcije ne
postoje
• pretpostavka P NP – dozvoljava ali ne
garantuje postojanje jednosmernih funkcija
Kriptološki sistemi
Jednosmerne funkcije
• kandidat za jednosmernu funkciju je množenje
prostih brojeva – zadovoljava prva tri uslova,
dok za četvrti nije dokazano ni da zadovoljava
ni da ne zadovoljava
• upotreba – šifre za pristup računarskim
sistemima koje se u u sistemu čuvaju u
kodiranom obliku
• u sistemima sa javnim ključem jednosmerna
funkcija mora biti i tp-funkcija
Kriptološki sistemi
Jednosmerne funkcije
tp – trapdoor (sporedna vrata, ulazak na
sporedna vrata, zaobilaženje standardnog
postupka)
Jednosmerna funkcija je tp-funkcija ako važi:
• efikasno se može odrediti domen funkcije
• postoji funkcija polinomijalne složenosti koja
primenjena na ulazni podatak pojednostavljuje
dekodiranje
Kriptološki sistemi
Primer sistema sa javnim ključevima (RSA)
• zasnovan na rezultatima teorije brojeva – mala
Fermaova teorema
• biramo proste brojeve p i q
• razmatramo njihov proizvod n=pq i
(p-1)(q-1)
• iz skupa {1,...,(p-1)(q-1)} se bira broj e koji je
uzajamno prost sa (p-1)(q-1)
• nalazi se broj d tako da važi
ed=1(mod (p-1)(q-1))
Kriptološki sistemi
Primer sistema sa javnim ključevima (RSA)
• ovako izabran brojevi e i d čine ključeve za
kodiranje i dekodiranje
• par (pq,e) je javni ključ za kodiranje
• par (pq,d) je tajni ključ za dekodiranje
• brojevi p i q treba da ostanu tajna
Kriptološki sistemi
Primer sistema sa javnim ključevima (RSA)
Funkcija kodiranja:
Funkcija dekodiranja:
Kriptološki sistemi
Primer sistema sa javnim ključevima (RSA)
• p i q su poznati pa se broj d efikasno
izračunava, a nalaženje inverzne funkcije od
svodi na problem faktorisanja brojeva
•
jeste tp-funkcija
• Poruka je binarni niz koji se deli na blokove od
kojih je svaki predstavlja ceo broj veći ili jednak
0 , a manji od n=pq
Kriptološki sistemi
Primer sistema sa javnim ključevima (RSA)
Primena RSA algoritma kod digitalnih potpisa:
• neka su
, , , redom javni i tajni ključevi
osoba A i B
• potpisana poruka sadrži originalnu poruku i
nadovezan potpis
• ako je potrebno zbog sigurnosti, cela potpisana
poruka se može kodirati javnim ključem
Kriptološki sistemi
Primer sistema sa javnim ključevima (RSA)
• funkcije kodiranja i dekodiranja RSA
komutativne
• osoba B proverava digitalni potpis računajući
Hvala na pažnji!