300 likes | 590 Views
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
E N D
Kriptografija sa javnim ključevima Whitfield DiffieiMartin 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 verifikujepotpis “dešifrovanjem” sa javnim ključem • Samo jevlasnik privatnog ključaje mogao da potpiše • Sličan je klasičnom potpisivanju
Ronald Rivest Adi Shamir Len Adleman
RSA • Izumljen od strane Cocks-a (GCHQ –Government Communications Headquarters ), i nezavisno od Rivest-a, Shamir-ai 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 porukaMračuna se • C = Me mod N • Da bi se dešifrovaloCračuna se • M = Cd mod N • Podsetimo se da sueiNjavni • 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 zadatoC = Me mod Nmoramo pokazati • M = Cd mod N = Med mod N • IskoristićemoOjlerovuteoremu • 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 • 20 = 10100 base 2 • (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20) • Primetimo da 2 = 1 2, 5 = 2 2 + 1, 10 = 2 5, 20 = 2 10 • 51= 5 mod 35 • 52= (51)2 = 52 = 25 mod 35 • 55= (52)2 51 = 252 5 = 3125 = 10 mod 35 • 510 = (55)2 = 102 = 100 = 30 mod 35 • 520 = (510)2 = 302 = 900 = 25 mod 35 • Na ovaj način se ne susrećemo sa velikim brojevima!
Efikasniji RSA • Neka jee = 3za sve korisnike (ali ne i istoNilid) • 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 = M3i tada se može preduzetinapad trećeg korena • Za svako M, ako je C1, C2, C3poslatotrima 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 + 1se takodje koristi
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 Alisakoriste 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 problemdiskretnog logaritma, tada bi mogla da nadje a ili b
Diffie-Hellman • Javno: g i p • Tajno: Alisin eksponent a i Bobov eksponent b ga mod p gb mod p Alisa, a Bob, b • 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 ga mod p gt mod p gt mod p gb mod p Trudi, t Bob, b Alisa, a • 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 naeliptičkim krivama(Elliptic Curve Crypto - ECC) • “Eliptičke krive” nisukriptosistem • 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 krivu E: y2 = x3 - x + 1 • Ako su P1i P2na E, definišimo veličinu P3 = P1 + P2 kao na slici • Sve što nam je potrebno je samo operacija sabiranja y P2 P1 x P3
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 A(x,y) B(x,y) Alisa, A Bob, B • 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:Krivay2 = 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)