View
90
Download
7
Category
Preview:
DESCRIPTION
Kriptografija sa javnim ključevima. Kriptografija sa javnim ključevima. Whitfield Diffie i Martin Hellman , aut ori prvog rada o kriptografiji sa javnim ključevima. Kriptografija sa javnim ključevima. Dva ključa Pošiljalac koristi javni ključ primaoca za šifrovanje - PowerPoint PPT Presentation
Citation preview
Kriptografija sa javnim ključevima
Kriptografija sa javnim ključevima
Whitfield Diffie i Martin Hellman, autori prvog rada o kriptografiji sa javnim ključevima
Kriptografija sa javnim ključevima
• Dva ključa– Pošiljalac koristi javni ključ primaoca za šifrovanje– Primaoc koristi svoj privatni (tajni) ključ za
dešifrovanje• Zasniva se na trap door, ili jednosmernim
(one way) funkcijama– Lako se izračunavaju u jednom smeru– Teško se izračunavaju u drugom smeru– “Trap door” se koristi za generisanje tajnog ključa– Primer: Za zadate p i q, proizvod N=pq se lako
računa, ali za dato N, teško je naći p i q
Kriptografija sa javnim ključevima
• Šifrovanje– Pretpostavimo da se M šifruje Bobovim javnim
ključem– Samo Bobov privatni ključ može da dešifruje
poruku M• Digitalni potpis
– Potpisati “šifrovanjem” sa privatnim ključem– Svako može da verifikuje potpis “dešifrovanjem”
sa javnim ključem– Samo je vlasnik privatnog ključaje mogao da
potpiše– Sličan je klasičnom potpisivanju
RSA
RSA
• Izumljen od strane Cocks-a (GCHQ –Government Communications Headquarters ), i nezavisno od Rivest-a, Shamir-a i Adleman-a (MIT)
• Neka su p i q dva velika prosta broja• Neka je N = pq modulus• Izabrati broj e uzajamno prost u odnosu na (p1)(q1)• Naći d takvo da je ed = 1 mod (p1)(q1)• Javni ključ: (N,e)• Privatni ključ: d
RSA
• Da bi se šifrovala poruka M računa se– C = Me mod N
• Da bi se dešifrovalo C računa se– M = Cd mod N
• Podsetimo se da su e i N javni• Ukoliko bi napadač faktorisao N, može zatim
da upotrbi e u cilju lakog nalaženja d pošto je ed = 1 mod (p1)(q1)
• Faktorizacija modulusa razbija RSA• Nije poznato da li je faktorizacija jedini način
za razbijanje RSA
Dali RSA zaista radi?• Za zadato C = Me mod N moramo pokazati
– M = Cd mod N = Med mod N• Iskoristićemo Ojlerovu teoremu
– Ako je x uzajamno prost u odnosu na n tada je x(n) = 1 mod n
• Činjenice: – ed = 1 mod (p 1)(q 1) – Po definiciji “mod-a”, ed = k(p 1)(q 1) + 1 (N) = (p 1)(q 1)– Tada je ed 1 = k(p 1)(q 1) = k(N)
• Med = M(ed 1) + 1 = MMed 1 = MMk(N) = M(M(N))k mod N = M1k mod N = M mod N
Jednostavan RSA primer
• Primer RSA– Izabrati “velike” proste brojeve p = 11, q = 3 – Tada je N = pq = 33 i (p1)(q1) = 20 – Izabrati e = 3 (uzajamno prost u odnosu na
20)– Naći d takvo da je ed = 1 mod 20, što daje
d = 7 • Javni ključ: (N, e) = (33, 3)• Privatni ključ: d = 7
Jednostavan RSA primer
• Javni ključ : (N, e) = (33, 3) • Privatni ključ : d = 7• Neka je poruka M = 8• Šifrat C se računa na sledeći način
C = Me mod N = 83 = 512 = 17 mod 33
• Dešifrovanje C u cilju dobijanja M se vrši na sledeći način
M = Cd mod N = 177 = 410,338,673 = 12,434,505 33 + 8 = 8 mod 33
Efikasniji RSA• Modularno stepenovanje - primer
– 520 = 95367431640625 = 25 mod 35 • Bolji način: sukcesivno kvadriranje
o 20 = 10100 base 2o (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20)o Primetimo da 2 = 1 2, 5 = 2 2 + 1, 10 = 2 5, 20 = 2
10o 51= 5 mod 35o 52= (51)2 = 52 = 25 mod 35o 55= (52)2 51 = 252 5 = 3125 = 10 mod 35o 510 = (55)2 = 102 = 100 = 30 mod 35o 520 = (510)2 = 302 = 900 = 25 mod 35
• Na ovaj način se ne susrećemo sa velikim brojevima!
Efikasniji RSA
• Neka je e = 3 za sve korisnike (ali ne i isto N ili d) – Operacije vezane za javni ključ zahtevaju samo dva množenja– Operacije vezane za privatni ključ osatju ekstenzivne– Ako je M < N1/3 tada je C = Me = M3 i tada se može preduzeti
napad trećeg korena– Za svako M, ako je C1, C2, C3 poslato trima korisnicima, realan
je napad trećeg korena (uz upotrebu kineske teoreme o ostacima)
– Napad trećeg korena se može izbeći dopunjavanjem poruka slučajnim bitima
• Primedba: e = 216 + 1 se takodje koristi
Diffie-Hellman
Diffie-Hellman
• Predložen od Williamson-a (Government Communications Headquarters - GCHQ) i, nezavisno od Diffie i Hellmana (Stanford)
• Predstavlja algoritam “razmene ključeva”– Koristi se za uspostavljanje zajedničkog simetričnog
ključa• Nije predvidjen za šifrovanje ili digitalno
potpisivanje• Sigurnost se zasniva na težini problema
diskretnog logaritma: za zadate g, p, i gk mod p naći k
Diffie-Hellman
• Neka je p prost broj, i neka je g generator – Za svako x {1,2,…,p-1} postoji n takvo da je x = gn mod p
• Alisa bira tajnu vrednost a• Bob selektuje tajnu vrednost b• Alisa šalje ga mod p Bobu• Bob šalje gb mod p Alisi• Oboje računaju zajedničku tajnu vrednost gab mod p• Ta zajednička tajna vrednost se može koristiti kao
simetričan ključ
Diffie-Hellman
• Pretpostavimo da Bob i Alisa koriste gab mod p kao simetričan ključ
• Trudi može da vidi ga mod p i gb mod p• Primetimo da je ga gb mod p = ga+b mod p gab
mod p• Ako bi Trudi mogla naći a ili b, sistem je razbijen• Ako bi Trudi mogla da reši problem diskretnog
logaritma, tada bi mogla da nadje a ili b
Diffie-Hellman• Javno: g i p• Tajno: Alisin eksponent a i Bobov eksponent b
Alisa, a Bob, b
ga mod p
gb mod p
• Alisa računa (gb)a = gba = gab mod p • Bob računa (ga)b = gab mod p• Mogao bi se K = gab mod p koristiti kao
simetričan ključ
Diffie-Hellman
• Podložan je man-in-the-middle (MiM) napadu
Alisa, a Bob, b
ga mod p
gb mod p
Trudi, t
gt mod p
gt mod p
• Trudi deli tajnu gat mod p sa Alisom • Trudi deli tajnu gbt mod p sa Bobom• Alisa i Bob ne mogu znati da Trudi postoji!
Diffie-Hellman
• Kako osujetiti MiM napad?– Šifrovati DH razmenu sa simetričnim
ključem– Šifrovati DH razmenu sa javnim ključem– Digitalno potpisati DH vrednosti sa
privatnim ključem– Ostale mogućnosti?
• Moramo biti svesni realnosti MiM napada na Diffie-Hellman proceduru
Kriptografija zasnovana na eliptičkim krivama
Kriptografija zasnovana naeliptičkim krivama (Elliptic Curve Crypto - ECC)
• “Eliptičke krive” nisu kriptosistem• Eliptičke krive su samo različiti način obavljanja
matematičkih operacija u kriptosistemima sa javnim ključem
• Stoga imamo verzije DH, RSA, i td.• Eliptičke krive mogu biti znatno efikasnije
– Potreban je manji broj bita za isti nivo tajnosti– Ali, cena za ovo su znatno kompleksnije računske
operacije
Šta su eliptičke krive?
• Eliptička kriva E je grafik jednačine oblika
y2 = x3 + ax + b
• Uključuje “tačku u beskonačnosti”
• Kako izgledaju eliptičke krive?
• Videti naredni slajd!
Slika eliptičkih krivih
• Razmotrimo eliptičku krivuE: y2 = x3 - x + 1
• Ako su P1 i P2 na E, definišimo veličinu
P3 = P1 + P2 kao na slici
• Sve što nam je potrebno je samo operacija sabiranja
P1
P2
P3
x
y
Tačke na eliptičkoj krivoj
• Razmotrimo y2 = x3 + 2x + 3 (mod 5)x = 0 y2 = 3 nema rešenja (mod 5)x = 1 y2 = 6 = 1 y = 1,4 (mod 5)x = 2 y2 = 15 = 0 y = 0 (mod 5)x = 3 y2 = 36 = 1 y = 1,4 (mod 5)x = 4 y2 = 75 = 0 y = 0 (mod 5)
• Stoga su tačke na eliptičkoj krivoj(1,1) (1,4) (2,0) (3,1) (3,4) (4,0) i tačka u beskonačnosti:
Matematika eliptičkih krivih
• Sabiranje na: y2 = x3 + ax + b (mod p)P1=(x1,y1), P2=(x2,y2)
P1 + P2 = P3 = (x3,y3) gde je
x3 = m2 - x1 - x2 (mod p)
y3 = m(x1 - x3) - y1 (mod p)
i m = (y2-y1)(x2-x1)-1 mod p, if P1P2
m = (3x12+a)(2y1)-1 mod p, if P1 = P2
Posebni slučajevi: Ako je m beskonačno, P3 = , i + P = P za svako P
Sabiranje na eliptičkim krivama
• Razmotrimo y2 = x3 + 2x + 3 (mod 5). Tačke na krivoj su (1,1) (1,4) (2,0) (3,1) (3,4) (4,0) i
• Šta je (1,4) + (3,1) = P3 = (x3,y3)?m = (1-4)(3-1)-1 = -32-1
= 2(3) = 6 = 1 (mod 5)x3 = 1 - 1 - 3 = 2 (mod 5)y3 = 1(1-2) - 4 = 0 (mod 5)
• Na ovoj krivoj je (1,4) + (3,1) = (2,0)
ECC Diffie-Hellman• Javni: Eliptička kriva i tačka (x,y) na krivoj• Tajni: Alisin A i Bobov B
Alisa, A Bob, B
A(x,y)
B(x,y)
• Alisa računa A(B(x,y)) • Bob računa B(A(x,y))• Ovi su jednaki, budući da je AB = BA
ECC Diffie-Hellman
• Javni: Kriva y2 = x3 + 7x + b (mod 37) i tačka
(2,5) b = 3• Alisina tajna: A = 4• Bobova tajna: B = 7• Alisa šalje Bobu: 4(2,5) = (7,32)• Bob šalje Alisi: 7(2,5) = (18,35)• Alisa izračunava: 4(18,35) = (22,1)• Bob izračunava: 7(7,32) = (22,1)
Recommended