29
Kriptografija sa javnim ključevima

Kriptografija sa javnim ključevima

  • Upload
    ince

  • View
    90

  • Download
    7

Embed Size (px)

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

Page 1: Kriptografija sa  javnim ključevima

Kriptografija sa javnim ključevima

Page 3: 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

Page 4: Kriptografija sa  javnim ključevima

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

Page 5: Kriptografija sa  javnim ključevima

RSA

Page 6: Kriptografija sa  javnim ključevima

Len AdlemanAdi Shamir Ronald Rivest

Page 7: Kriptografija sa  javnim ključevima

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

Page 8: Kriptografija sa  javnim ključevima

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

Page 9: Kriptografija sa  javnim ključevima

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

Page 10: Kriptografija sa  javnim ključevima

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

Page 11: Kriptografija sa  javnim ključevima

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

Page 12: Kriptografija sa  javnim ključevima

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!

Page 13: Kriptografija sa  javnim ključevima

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

Page 14: Kriptografija sa  javnim ključevima

Diffie-Hellman

Page 15: Kriptografija sa  javnim ključevima

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

Page 16: Kriptografija sa  javnim ključevima

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č

Page 17: Kriptografija sa  javnim ključevima

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

Page 18: Kriptografija sa  javnim ključevima

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č

Page 19: Kriptografija sa  javnim ključevima

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!

Page 20: Kriptografija sa  javnim ključevima

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

Page 21: Kriptografija sa  javnim ključevima

Kriptografija zasnovana na eliptičkim krivama

Page 22: Kriptografija sa  javnim ključevima

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

Page 23: Kriptografija sa  javnim ključevima

Š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!

Page 24: Kriptografija sa  javnim ključevima

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

Page 25: Kriptografija sa  javnim ključevima

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:

Page 26: Kriptografija sa  javnim ključevima

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

Page 27: Kriptografija sa  javnim ključevima

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)

Page 28: Kriptografija sa  javnim ključevima

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

Page 29: Kriptografija sa  javnim ključevima

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)