Kriptografija sa javnim ključevima

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

• 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

Len AdlemanAdi Shamir Ronald Rivest

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