Jelena Ignjatović
description
Transcript of Jelena Ignjatović
Kriptografija sa asimetričnim ključem
Jelena Ignjatović
Asimetrični-ključ (javni ključ) šifrovanja Osnovna ideja:
– Korisnik ima dva ključa: javni ključ i privatni ključ. – Poruka može da bude šifrovana javnim ključem i dešifrovana
privatnim ključem koji bi obezbedio sigurnost.
– Poruka može da bude šifrovana privatnim ključem i dešifrovana javnim ključem koji bi obezbedio potpise.
Problem distribucije ključeva u gustim mrežama
U gusto-razgranatim mrežama u kojima dosta članova komunicira među sobom, zahteva se određeni broj tajnih ključeva u šifrovanju. Kompleksnost algoritama raste kvadratno sa porastom broja učesnika obzirom da u potpuno-zatvorenoj, razgranatoj mreži svakom od n komunikacinih partnera mora da bude sigurno isporučeno (n-1) ključeva.
• Uzmimo primer široke komunikacione mreže sa 100 potpuno-razgranatih čvorova gde se ključ svake sesije menja svakog sata što rezultuje zahtevom da se distribuira oko 240.000 ključeva svaki dan. • Kao što se može videti, distribucija tajnih ključeva se slabo menja sa porastom broja učesnika. Zato su dugo vremena ljudi tražili neku altrnativu za uspostavljanje sigurnih veza. Efikasno rešenje je najzad pronađeno 1976 sa novim konceptom kriptosistema sa javnim ključem.
Problem sigurne distribucije ključeva
Alice
Bob
Carol
Dave
Edna
Fred
KAB, KAC, KAD, KAE, KAF
KAC, KBC, KCD,
KCE, KCF
KAB, KBC, KBD,
KBE, KBF
KAF, KBF, KCF,
KDF, KEF
KAE, KBE, KCE,
KDE, KEF
KAD, KBD, KCD, KDE, KDFSigurna distribucija
n2 ključeva Ključevi se moraju
razmenjivati na siguran način
Sistem distribucije javnog ključa
Alice
Bob
Carol
Dave
Edna
Fred
KA
KB
KC
KD
KE
KE
javna distribucija n ključeva
Ključ se može poslati putem interneta
Javni
direktorijum
Alice : KA
Bob : KB
Carol : KC
Dave : KD
Edna : KE
Fred : KF
Kriptografija sa javnim ključem
pronalazači– Whitfield Diffie i Martin Hellman 1976– Ralph Merkle 1978
C = fPUBKB(P)
Šifrovanje jednosmernom funkcijom
P = f-1PRIVKB
(C)
Joe
P = f-1PUBKB
(C)
Alice Bob
PUBKB
PRIVKBRačunanje inverzne funkcije je ekstremno skupo
Jednosmerne funkcije se obično zasnivaju na dobro poznatim teškim matematičkim problemima
Faktorizacije
Diskretni logaritamski problem
RSA kriptosistem sa javnim ključem
Razvili su ga 1978 Rivest, Shamir and Adleman (RSA)
Ovo je najpopularniji kriptosistem sa javnim ključem
Zasniva se na matematičkom problemu „faktorizacije celih brojeva“ 143 = 11*13
RSA kriptosistem sa javnim ključemAlgoritam za generisanje ključa
Korak 1: Slučajno biramo dva velika prosta broja p i q– Za maksimalnu sigurnost, biramo p i q približno jednake dužine,
od 512-1024 bitova svaki.
Korak 2: Računamo proizvod n = p·q
Korak 3: Slučajno biramo broj e < (p-1)(q-1)– Brojevi e i (p-1)(q-1) moraju biti uzajamno prosti, tj. Ne smeju
da imaju zajedničke proste faktore.
Korak 4: Računamo jedinstveni inverz d = e-1 mod (p-1)(q-1)– Jednakost d·e mod (p-1)(q-1) = 1
može se rešiti korišćenjem Euklidovog algoritma.
(p-1)·(q-1) = 2 · 10 = 2 · 2 · 5 = 20
RSA kriptosistemPrimer generisanja ključa
p = 3, q = 11: n = p·q = 33
Javni eksponent e mora biti uzajamno prost sa (p-1)·(q-1) , tj. on ne može imati 2 i 5 kao faktore.
e d e·d e·d mod 20
3 7 21 1 7 3 21 1 9 9 81 111 11 121 113 17 221 117 13 221 119 19 361 1
Svi mogući izbori
eksponenata e i d
RSA kriptosistemJavni i privatni ključevi
Javni ključ: moduo n i javni eksponent e– n i e se objavljuju u javnom direktorijumu,
Privatni ključ: moduo n i privatni eksponent d– Privatni eksponent d je tvoj tajni ključ. On može biti zaštićen
ili skladištenjem na čip kartici ili na disku uz šifrovanje simetričnom šifrom po tvom izboru.
– Veliki prosti brojevi p i q koji su korišćeni za generisanje ključa više nisu potrebni i mogu biti izbrisani.
RSA kriptosistemŠifrovanje i dešifrovanje
Šifrovanje bloka x otvorenog teksta: y = xe mod n– Pošiljalac koristi javni ključ primaoca
da šifruje x < n.
Dešifrovanje bloka y šifrata: x = yd mod n– Primalac koristi privatni ključ da otkrije
blok x otvorenog teksta.
yd = (xe)d = xe·d = xm·(p-1)·(q-1) + 1 = x1 = x (mod n)yd = (xe)d = xe·d = xm·(p-1)·(q-1) + 1 = x1 = x (mod n)
Bez dokaza:
Šifrovanje i dešifrovanje su simetrične operacije– Redosled stepenovanja javnim eksponentom e i privatnim
stepenom d može biti promenjen.
RSA kriptosistemPrimer šifrovanja / dešifrovanja
Dešifrovanje privatnim ključem n = 33, d = 7
Binarni otvoreni tekst 0101001001001011010011 ...
Decimalni plaintext 10 9 5 20
Groupe od 5 Bitova 01010 01001 00101 10100 ...
y = x3 1000 729 125 8000 y = x3 mod 33 10 3 26 14
x = y7 107 2187 267 147
x = y7 mod 33 10 9 5 20
Decimalni hipertext 10 3 26 14
Šifrovanje javnim ključem n = 33, e = 3
RSA–576 izazova
Pokušaj (napor)– 576 bitni broj (174 decimalne cifre)– Faktorisan 3. decembra 2003. posle 3 meseca rešavanja.– Linux Cluster: 144 PCs with 400 MHz Pentium II procesori.– Urađeno na Universitetu u Bonu, postprerađeno uz podršku BSIa.
188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205 734031879550656996221305168759307650257059 = ?=
398075086424064937397125500550386491199064362342526708406385189575946388957261768583317
*
472772146107435302536223071973048224632914695302097116459852171130520711256363590397527
Šifrovanje RSA javnim ključem
Broj izazova Cena ($US) Status Datum prijave Podnosilac
RSA-576 $10,000 faktorisanoDecember 3, 2003
J. Franke et al.
RSA-640 $20,000 Nije faktorisano
RSA-704 $30,000 Nije faktorisano
RSA-768 $50,000 Nije faktorisano
RSA-896 $75,000 Nije faktorisano
RSA-1024 $100,000 Nije faktorisano
RSA-1536 $150,000 Nije faktorisano
RSA-2048 $200,000 Not Factored
RSA-2048 Cena: $200,000 Status: Nije faktorisan Decimalne cifre : 617
25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357
Suma decimalnih cifara: 2738