1 / 39

Mario Č agalj mariogalj@fesb.hr

Kriptografija javnog (asimetri č nog) klju č a (Public-key or Asymmetric Cryptography). Mario Č agalj mario.cagalj@fesb.hr Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 4/3/2012. Kriptografski sustav. Kriptografija simetricnog (tajnog) kljuca: Ke = Kd

newton
Download Presentation

Mario Č agalj mariogalj@fesb.hr

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kriptografija javnog (asimetričnog) ključa(Public-key or Asymmetric Cryptography) Mario Čagalj mario.cagalj@fesb.hr Sveučilište u SplituSveučilišni studijski centar za stručne studije 4/3/2012.

  2. Kriptografski sustav • Kriptografija simetricnog (tajnog) kljuca: Ke = Kd • Kriptografija javnog (asimetricnog) kljuca: Ke  Kd Ciphertext Plaintext Plaintext Encryption Decryption Message Channel Key Channel Ke Kd Key Generation

  3. Public-key Cryptosystems (1/4) • Entitet B generira par kljuceva (PUB, PRB) • PUB – javni kljuc (public key), PRB – privatni kljuc (private key) • PUB je javna informacija (dostupna je svima, npr. entitetu A) • Kljuc PRB zna samo entitet B (B cuva PRB tajnim, npr. A ne zna PRB) • Zastita tajnosti: Entitet A zeli poslati tajnu poruku mentitetu B • A enkriptira m javnim kljucem PUB: c = E(PUB, m) • B dekriptira c koristeci privatni kljuc PRB: m=D(PRB, c) = D(PRB, E(PUB, m)) • Nitko drugi tko ne poznaje PRB ne moze dekriptirati sifriranu poruku c c m m Encryption Decryption Message Channel Key Channel PUB PRB Key Generation Source A Destination B

  4. Public-key Cryptosystems (2/4) • Autentikacija: Entitet A zeli poslati autenticiranu poruku m entitetu B • A enkriptira m koristeci svoj privatni (tajni) kljuc PRA: c = E(PRA, m) • B dekriptira poruku c koristeci javni kljuc PUA : m = D (PUA, c) • Samo A zna PRA, stoga je samo A mogla pripremiti poruku m - source integrity • Cijela enkriptirana poruka c sluzi kao digitalni potpis (digital signature) • Ako bi bilo nemoguce promjeniti poruku m bez poznavanja privatnog kljuca PRA, m je takodjer autenticiran u smislu data integrity • Q:Je li osigurana tajnost poruke m u ovo primjeru? c m m Encryption Decryption Message Channel Key Channel PRA PUA Key Generation Source A Destination B

  5. Public-key Cryptosystems (3/4) • Autentikacija i tajnost: Entitet A zeli poslati autenticiranu i tajnu poruku m entitetu B • Realizacija dvostrukim koristenjem kripto-sustava baziranog na javnom kljucu • A enkriptira m kako slijedi: c = E(PRA, m), c’ = E(PUB, E(PRA, m)) • B dekriptira poruku c’: c = D (PRB, c’), m = D (PUA, c) • Q: Pretpostavite da A i B zamjene uloge. Koristeci standardnu notaciju, opisite proceduru koju izvrsavaju A i B. c c c’ m m Decryption Encryption Decryption Encryption PRA PUB PRB PUA Key Generation Source A Destination B Key Generation

  6. Klasifikacija kriptosustava prema namjeni • Enkripcija/dekripcija • Posiljalac enkriptira poruku koristeci javni kljuc primaoca. • Digitalni potpis • Posiljalac “potpisuje” poruku koristeci svoj privatni kljuc. Najcesce se ne potpisuje cijela poruka vec mali blok podataka (message digest) koji se dobije kao “one-way” funkcija originalne poruke. • Razmjena kljuceva (key exchange) • Dva entiteta (korisnika, racunala) zele uspostaviti sesijski (tajni) kljuc za upotrebu u simetricnom kriptosustavu • Najpoznatiji protokol iz ove kategorije: Diffie-Hellman Key Exchange Protocol

  7. Kriptografija asimetričnog (javnog) ključa RSA(Rivest, Shamir and Adleman)

  8. RSA u praksi PKCS: Public Key Cryptography Standard • Webmail (Secure Socket Layer - SSL)

  9. Modularna aritmetika: zbrajanje • Primjer: zbrajanje modulo 10 5 + 5 mod 10 = 0, 3 + 9 mod 10 = 2, 9 - 2 mod 10 = 9 + 8 mod 10 = 7, 4 - 6 mod 10 = 4 + 4 mod 10 = 8 • Q: Zbrajanje modulo 10 sa tajnom konstantom K daje sifru. Koju?

  10. Modularna aritmetika: mnozenje (1/3) • Primjer: mnozenje modulo 10 5  5 mod 10 = 5, 3  9 mod 10 = 7 • Q: Samo mnozenje sa 1, 3, 7 ili 9 moze raditi kao sifra. Zasto?

  11. Modularna aritmetika: mnozenje (2/3) • Primjer: poruka m = 3, tajni kljuc K = 7 • Enkripcija: c = m  K = 3  7 = 21 mod 10 = 1 • Dekripcija: m = c  K-1 = 1  7-1 = 1  3 = 3 mod 10 = 3 • Multiplikativni inverzni broj (multiplicative inverse) modulo n broja X (pisano X-1 ) je broj za koji vrijedi: X  X-1 = 1 mod n, (npr., n = 10) • U nasem primjeru (prethodna tablica) samo brojevi 1, 3, 7 ili 9 imaju multiplikativne inverzne brojeve modulo 10 • Q: Nadjite 9-1 i 1-1 modulo 10. • Napomena: za vrlo velike brojeve n (npr. 100 znamenkasti broj) racunanje inverza “brute-force” metodom neizvedivo • Euclid’s Algorithm - efikasan algoritam za racunanje inverznih brojeva

  12. Modularna aritmetika: mnozenje (3/3) • Brojevi 1, 3, 7 i 9 su relativno prosti (relatively prime) brojevi u odnosu na broj 10 • Nemaju zajednickih faktora sa brojem 10 (osim naravno 1) • Euler-ova f(n) funkcija (totient function) • Oznacava broj relativno prostih brojeva, u odnosu na n, koji su manji od n • Velicina funkcije f(n) • Ako je n prost broj onda f(n) = n – 1. Q: Zasto? • Ako je n produkt dva razlicita prosta broja p i q, onda f(n) = (p-1)(q-1). Q: Je li n prost broj? Izvedite izraz za f(n).

  13. Modularna aritmetika: potenciranje (1/2) • Primjer: potenciranje modulo 10 311 = 177147 mod 10 = 7 • Primjer: eksponent 3 se moze koristiti za enkripciju, ali broj 2 ne moze. Q: Zasto?

  14. Modularna aritmetika: potenciranje (2/2) • Zasto su stupci 1 i 5, 2 i 6, 3 i 7 isti? • Zbog zanimljivog svojstva f(n) funkcije: xy mod n = x( y mod f(n) ) mod n • U slucaju n = 10, {1, 3, 7, 9} su relativno prosti -> f(n) = 4. Stoga su stupci s te s + 4 jednaki. • Vazna napomena: Ovo svojstvo f(n) funkcije vrijedi za sve primarne brojeve n, te za sve n = pq, gdje su p i q razliciti prosti brojevi. • Za nas (RSA) je interesantan specijalan slucaj: y = 1 mod f(n) • U ovom slucaju, za svaki x imamo: xy = x( 1 mod f(n) ) = x mod n

  15. RSA algoritam • Ron Rivest, Adi Shamir i Len Adlemam. MIT, 1977. • RSA je blok sifra gdje su plaintext i ciphertext cijeli brojevi iz {1,..., n-1} • Tipicna velicina za n je 1024 bita ili 309 decimalnih znamenki

  16. Zašto RSA algoritam radi • M < n • PU = {e, n} • PR = {d, n} • Enkripcija: C = Me mod n • Dekripcija: • Digitalni potpis poruke M < n (primjer naseg Webmail-a) • Entitet A potpise M svojim privatnim kljucem {d,n}: S = Md mod n • Entitet B prima (M, S) te provjerava da li je zadovoljeno: M = Se mod n (M = Se mod n = Mde mod n = M)

  17. RSA: Toy Example • Odaberi proste brojeve, p = 17 i q = 11 • Izracunaj n = pq = 17 x 11 = 187 • Izracunaj f(187) = 16 x 10 = 160. Q: Objasnite sto predstavalja f(187). • Odaberi e < f(n), tako da je e relativno prost obzirom na f(n); e = 7 • Odredi d < 160, tako da ed mod f(n) = 1; d = 23 (jer 23 x 7 = 161 = 160 + 1) • PU = {7, 187} i PR = {23, 187} Encryption Decryption ciphertext 11 887 mod 187 1123 mod 187 plaintext 88 plaintext 88 PU = {7, 187} PR = {23, 187}

  18. Sigurnost RSA algoritma • Ako napadac moze rastaviti n na faktore p i q • Moze izracunati f(n) = (p-1)(q-1), te naci privatni kljuc d = e-1 (mod f(n)) • Postojeci algoritmi za faktorizaciju ne mogu izvrsiti faktorizaciju u polinomnom vremenu ako je n dovoljno velik (tezak problem za n veci od 1024 bitova) • Timing Attacks • Paul Kocher je pokazao da napadac moze otkriti privatni kljuc tako da biljezi koliko vremena treba racunalu da dekriptira enkriptiranu poruku. • Chosen Ciphertext Attack • Napadac bira poruku koju ce enkriptirati “zrtvinim” javnim kljucem te od “zrtve” prima poruku dekriptiranu “zrtvinim” privatnim kljucem • Svojstvo RSA: E(PU, M1) x E(PU, M2) = E (PU, M2 xM2). Q: Uvjerite se. • Primjer: napadac ne zna d te zeli dekriptirati C = Me mod n. Kako napadac moze dekriptirati C ako “zrtva” ne dekriptira C direktno za napadaca? • Izracunaj X = (C x 2e) mod n • Daj “zrtvi” X, te od nje primi Y = Xd mod n Slijedi: Xd = ((C mod n) x (2e mod n))d = ((Me mod n) x (2e mod n))d = ((2M)emod n)d = (2M) edmod n = 2M mod n • Prakticni RSA kriptosustavi dodaju random vrijednost plaintext-u prije same enkripcije (Optimal Asymmetric Encryption Padding - OAEP)

  19. RSA enkripcija u praksi • Public Key Cryptography Standard (PKCS) • Definira enkodiranje informacija koje ce biti potpisivane ili enkriptirane upotrebom RSA algoritma • PKCS je dizajniran na nacin da sprijecava mnoge poznate napade na “textbook” RSA algoritam • PKCS#1 v2.0 encoding hashed label some 0x00 bytes 0x01 message to be encrypted random seed MGF + MGF + 0x00 masked seed masked message MGF – Mask Generating Function (hash function)

  20. How to “break” RSA despite all the protections • Assumptions: • the algorithm is flawless • it is implemented as it was designed RSA relies on modular exponentiations for encryption and decryption • Brute force: • Multiply c by itself d times. • If c,d and n are n-bit integers, number of multiplications proportional to 2n ! • It we don’t “mod out”, memory requirements 2n ! • For security reasons, n must be a large number, e.g.n=134454746427671370568340195448570911966902998629125654163. . . • Modular exponentiation is usually implemented using a (bit by bit) square and multiplyalgorithm

  21. RSA with square and multiply C20 = C16 x C4 = (C8)2 x (C2)2 = (C8 x C2)2 = ((C4)2 x C2)2 = ((C4 x C))2)2 = (((C2)2 x C))2)2 (only 5 multiplications v.s. 19) C25 = C16 x C8 x C = (C8)2 x (C4)2 x C = (C8 x C4)2 x C = ((C4)2 x (C2)2)2 x C = ((C4 x C2))2)2 x C = (((C2)2 x C2))2)2 x C = (((C2 x C)2)2)2 x C (only 6 multiplications vs. 24) 2010 = 101002 (1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20) 2510 = 110012 (1, 11, 110, 1100, 11001) = (1, 3, 6, 12, 25)

  22. RSA with square and multiply x = 1 forj = 1 to w x = x·x mod N(square) ifdj == 1 thenx = x·C mod N (multiply) end if nextj returnx Decryption key: d = d1,…,dw This means that the decryption execution time depends on the key !!!

  23. Simple Timing Attack on RSA • Timing attack: • Measure the time of the decryption execution • The measured time corresponds to the number of 1s in the key => i.e., time leaks the Hamming weight of the key!!! • Attack: • 2|k| key search is now reduced to (|k| over w), where w is the measured Hamming weight of the key and |k| is the size of the key. (i.e., key combinations with w bits equal to 1) • Best case for the attacker: w=1 => the search space is |k|The worst case for the attacker: w=|k|/2 => the search space is |k|!/(|k|/2)!x(|k|/2)! • Example: a 2^1024 now reduced to 2^612

  24. Simple Power Analysis • (E.g., Kocher 1998) Attacker directly uses power consumption to learn bits of secret key. Wave forms visually examined. • Big features like rounds of DES, square vs. multiply in RSA exponentiation, and small features, like hamming weight of words. • Relatively easy to defend against.

  25. Experiment: SPA on exponentiation • Attack on the top-down square and multiply exponentiation algorithm during signing or decryption • Record a power trace of the operation • Visually confirm if multiplications were executed in each step

  26. Experiment: SPA on exponentiation • If a squaring is followed by another squaring, this bit of the exponent is zero • If the squaring is followed by a multiplication, this bit of the exponent is one

  27. Experiment: SPA on exponentiation • If the squaring is followed by another squaring, this bit of the exponent is zero • If the squaring is followed by a multiplication, this bit of the exponent is one

  28. RSA timing attacks over the network • Remote timing attacks are practical. by D. Boneh and D. Brumley, In proceedings of the 12th Usenix Security Symposium, 2003http://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf • The attack was performed over the campus network • The attacks extracts the bits of the factor q (n=pq) • time measurement indicates if a bit of q is 1 or 0 n measuretime Attacker Server RSAK(n)

  29. Kriptografija asimetričnog (javnog) ključa Diffie-Hellman kriptografski sustav

  30. Diffie-Hellman: uvod • Prvi algoritam zasnovan na javnom kljucu objavili su Diffie i Hellman 1976. godine • “New Directions in Cryptography.” W. Diffie and M. Hellman, IEEE Transactions on Information Theory, Vol. 22 #6, 1976, pp. 644-654 • Ovaj rad je prvi uveo pojam kriptografije javnog kljuca • Diffie-Hellman (DH) algoritam omogucuje “sigurnu” uspostavu simetricnog kljuca izmedju dva korisnika • Diffie-Hellman Key Exchange (Agreement) Protocol • Postoje eksenzije za uspostavu simetricnih kljuceva izmedju vise od dva korisnika tzv. Group Key Agreement • DH algoritam se zasniva na problemu odredjivanja (racunanja) diskretnog logaritma (discrete logarithm problem)

  31. Discrete Logarithm Problem • Za dani prosti broj p, broj cije potencije modulo p generiraju sve cijele brojeve iz skupa {1,2,..., p-1} nazivamo primitivan korijen (primitive root). • Ako je g primitivan korijen prostog broja p tada su brojevi gimod p, (i = 1, 2, ..., p-1), razliciti i daju neku permutaciju niza 1, 2,..., p-1 • Za p = 7, g = 3 -> {31= 3, 32 = 2,33 = 6,34 = 4, 35 = 5,36 = 1}. Q. Je li g primitivni korijen za broj p? • Za bilo koji cijeli broj b i primitivni korijen g prostog broja p, mozemo naci jedinstveni eksponent i takav da b mod p = gi mod p ( skraceno b  gi (mod p) ) • Eksponent i nazivamo diskretnim logaritmom broja b po bazi g, mod p • Racunanje diskretnih logaritama modulo prosti broj je vrlo tezak problem • Za razliku od potenciranja (postoje efikansi algoritmi) • Diffie-Hellman algoritam koristi ovu cinjenicu

  32. Diffie-Hellman algoritam

  33. Zasto Diffie-Hellman algoritam radi • Korisnik A racuna: • Korisnik B racuna: • Dakle A i B se dogovore oko zajednickog tajnog kljuca K = KAB = KBA = gXAXB mod p

  34. Diffie-Hellman: Toy Example • p = 353, g = 3 • A izabere privatan (tajan) kljuc XA = 97 • B izabere privatan (tajan) kljuc XB = 233 • A racuna javan kljuc YA = 397 mod 353 = 40 • B racuna javan kljuc YB = 3233 mod 353 = 248 • A racuna zajednicki tajni kljuc K= 24897 mod 353 = 160 • B racuna zajednicki tajni kljuc K= 40233 mod 353 = 160 • Sigurnosni aspekti: Potencijalan napadac zna slijedece informacije: p = 353, g = 3, YA = 40, te YB = 248 • Napadac moze lako otkriti zajednicki kljuc K tako da otkrije rjesenje jednadzbe 3a mod 353 = 40 ili jednadzbe 3b mod 353 = 248 • Napadac provjerava da li je 3a mod 353 = 40 za razlicite vrijednosti a = 1, 2, ..., 95, 96, 97 • Sa velikim brojevima XA,XB i p, ovaj napad je nepraktican

  35. Diffie-Hellman Key Exchange Protocol Alice Bob gXA mod p K = (g XB)XA mod p K = (g XA)XB mod p gXB mod p odaberi slucajan XB izracunaj gXB mod p odaberi slucajan XA izracunaj gXA mod p • Protokol nije autenticiran -> Man-In-The-Middle (MITM) napad. • Q: Dajte primjer MITM napada na DH protokol.

  36. Diffie-Hellman protokol: MITM napad • Napadac Malice pripremi za napad dva privatna kljuca XM1 i XM2 te izracuna odgovarajuce javne kljuceve YM1 i YM2. • Alice transmitira YA Bobu. • Malice presretne YA te prosljedi YM1 Bobu. Malice izracuna KAM =(YA) XM2 mod p. • Bob primi YM1 te izracuna KBM =(YM1) XB mod p. • Bob transmitira YB Alice. • Malice presretne YB te prosljedi YM2 Alice. Malice izracuna KBM =(YB) XM1 mod p. • Alice primi YM2 te izracuna KAM =(YM2) XA mod p. • U ovom trenutku Alice i Bob misle da dijele zajednicki kljuc, ali zapravo Alice i Malice dijele kljuc KAM, dok Bob i Malice dijele kljuc KBM, gdje vjerojatno KAM  KBM. • Sada Malice moze dekriptirati i modificirati sve poruke koje Alice i Bob salju jedno drugome (preko Malice).

  37. The Station-to-Station Protocol Alice Bob odaberi slucajan XB izracunaj gXB mod p K = (gXB)XAmod p gXA mod p gXB mod p,EK( E(PRB,gXB,gXA) ) EK( E(PRA,gXB,gXA) ) digitalni potpis K = (gXB)XAmod p odaberi slucajan XA izracunaj gXA mod p • Rjesava problem neautenticiranog Diffie-Hellman protokola • Mutual entity authentication, mutual explicit key authentication • Pretpostavka je da Alice i Bob posjeduju autenticirane javne kljuceve PUB odnosnoPUA (npr., RSA javni kljucevi)

  38. RSA i Diffie-Hellman: primjene • SSL (e.g., Webmail) • SSH (secure remote access) • IPSec (Internet Key Exchange - IKE) • PGP (e-mail)

  39. Slef-study: CrypTool • http://www.cryptool.org

More Related