1 / 39

Mario Čagalj mario.cagalj@fesb.hr FESB 25/3/2014.

Kriptografija zasnovana na asimetri č nim klju č evima (eng. public-key or asymmetric cryptography ). Mario Čagalj mario.cagalj@fesb.hr FESB 25/3/2014. Kriptografski sustav. Ciphertext. Plaintext. Plaintext. Encryption. Decryption. Message Channel. Key Channel. k e. k d.

macario
Télécharger la présentation

Mario Čagalj mario.cagalj@fesb.hr FESB 25/3/2014.

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 zasnovana na asimetričnim ključevima(eng. public-key or asymmetric cryptography) Mario Čagalj mario.cagalj@fesb.hr FESB 25/3/2014.

  2. Kriptografski sustav Ciphertext Plaintext Plaintext Encryption Decryption Message Channel Key Channel ke kd Key Generation

  3. Public-key Cryptosystems (1/3) • Entitet B generira par enkripcijskih kljuceva (PUB, PRB) • PUB– javni kljuc (eng. public key), PRB– privatni kljuc (eng. private key) • Javni kljuc PUB javna je informacija (dostupna je i poznata entitetu A) • Privatni kljuc PRB zna samo entitet B (B cuva PRB tajnim) • Entitet A zeli poslati tajnu poruku mentitetu B (zastita tajnosti) • A enkriptira poruku m javnim kljucem PUB: c = E(PUB, m) • B dekriptira ciphertext c privatnim kljucem PRB: m=D(PRB, c) • Samo entitet B moze dekriptirati ciphertext c (samo B poznaje PRB) c m m Encryption Decryption Message Channel Key Channel PUB PRB Key Generation Source A Destination B

  4. Public-key Cryptosystems (2/3) • A zeli poslati autentificiranu poruku m entitetu B (autentifikacija) • A enkriptira m svojim privatnim kljucemPRA: c = E(PRA, m) • B prima (m,c) te dekriptira ciphertext c javni kljucem PUA : m’ = D (PUA, c) • B provjerava je li vrijedi m’ = m • Svojstva enkripcije privatnim kljucem • Source integrity - samo A zna PRA, stoga je samo A mogla pripremiti poruku m • Data integrity - ako bi bilo nemoguce promjeniti m bez poznavanja PRA • Digital signature - ciphertext c sluzi kao digitalan potpis (m,c) m m’ Encryption Decryption Message Channel Key Channel PRA PUA Key Generation Source A Destination B

  5. Public-key Cryptosystems (3/3) • A zeli poslati autentificiranu 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 (zastita tajnosti) • Posiljalac enkriptira poruku koristeci javni kljuc primaoca • Digitalni potpis (zastita integriteta) • Posiljalac “potpisuje” poruku koristeci svoj privatni kljuc • Najcesce se ne potpisuje cijela poruka vec mali blok podataka (message digest) koji se dobije primjenom “one-way” funkcijena originalnu poruku • 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

  9. Modularna aritmetika: zbrajanje • Primjer: zbrajanje modulo 10 (a + b mod 10) • Q: Zbrajanje modulo 10 sa tajnom konstantom k daje sifru. Koju?

  10. Modularna aritmetika: mnozenje (1/3) • Primjer: mnozenje modulo 10 (a x b mod 10) • 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: • Dekripcija: • Multiplikativni inverzni broj (eng. multiplicative inverse)modulo n broja a (pisano a-1 ) je broj b za koji vrijedi: • 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. 600-znamenkasti broj) racunanje inverza “brute-force” metodom neizvedivo • Euklidovalgoritam - efikasan algoritam za racunanje inverznih brojeva • Euklidov algoritam razvijen za racunanje najveceg zajednickog djelitelja

  12. Modularna aritmetika: mnozenje (3/3) • Brojevi 1, 3, 7 i 9 su relativno prosti (eng. relatively prime) brojevi u odnosu na broj 10 • Nemaju zajednickih faktora sa brojem 10 (osim naravno 1) • gdc(a,10) = 1, a {1,3,7,9} (gdc – greatest common divisor) • Samo oni brojevi a za koje vrijedi gdc(a,m) = 1 imaju multiplikativne inverze modulo m • Euler-ova f(n) funkcija(“phi” funkcija) • 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: Izvedite izraz za f(n).

  13. Modularna aritmetika: potenciranje (1/2) • Primjer: potenciranje modulo 10 (ab mod 10) • 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 identicni? • Zbog zanimljivog svojstva Euler-ovef(n) funkcije • U slucaju n = 10, {1, 3, 7, 9} su relativno prosti -> f(n) = 4 • Stoga su stupci s te s + 4i (i=1,2,...)identicni • Vazna napomena: Ovo svojstvo f(n) funkcije vrijedi za sve proste brojeve n, te za sve n = pq, gdje su p i q razliciti prosti brojevi • RSA koristi specijalan slucaj gore navedene jednadzbe • U ovom slucaju, za svaki a imamo: ab=a(1 mod f(n)) a mod n • U slucaju n = 10, a(1 mod f(n))  a(5 mod f(n))  a(9 mod f(n)) a 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 2048 bita (> 600 dekatskih znamenki)

  16. Ispravnost RSA algoritma • M < n, javni kljuc PU = {e, n}, privatni kljuc PR = {d, n} • Enkripcija: • Dekripcija: • Digitalni potpis poruke M < n (primjer: https protokol) • Entitet A potpise M svojim privatnim kljucem PR={d,n}: • Entitet B prima (M, S) te provjerava da li je zadovoljeno: • Ciphertext S predstavlja digitalni potpis poruke M • Entitet B koristi javni kljuc PU={e,n} entiteta A za provjeru potpisa S

  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: Sto predstavlja f(187)? ) • Odaberi e < f(n), tako da je e relativno prost obzirom na f(n); e = 7 • Odredi d < 160, tako da; d = 23 (jer 23 x 7=161) • 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 mozerastaviti n na proste faktore p i q • Moze izracunati f(n) = (p-1)(q-1), te naci privatni kljuc d • Poznavajci f(n) i javni kljuc e, napadac moze odrediti privatni kljuc primjenom prosirenog Euklidovog algoritma • Postojeci algoritmi za faktorizaciju ne mogu napraviti faktorizaciju u polinomnom vremenu ako je n velik • Jako tezak problem za npr. 2048-bitni n

  19. Sigurnost RSA algoritma • RSA enkripcija u izvornom obliku je deterministicka • Za fiksni enkripcijski (javni) kljuc, isti plaintext se uvijek mapira u isti ciphertext (slicno kao kod monoalfabetskih sifri) • Plaintext vrijednosti 0 i 1 daju identicne ciphertext vrijednosti (0 i 1) • Mali plaintextovi i mali javni kljucevi podlozni brute-force napadu • RSA enkripcija u izvornom obliku ima sljedece nezeljeno svojstvo E(PU, M1) x E(PU, M2) = E (PU, M2 xM2) • Primjer: napadac ne zna d, azelidekriptirati • Napadac izracuna: • Trazi od “zrtve” da digitalno potpise X (“zrtva” izracuna i vrati napadacu ) Posljedica: • U praksi se zbog navedenih problema plaintext-u uvijek dodajeslucajna (eng. random)vrijednostprijeenkripcije

  20. RSA enkripcija u praksi • Public Key Cryptography Standard (PKCS) • Definira nacin enkodiranja informacija koje ce biti potpisivane ili enkriptirane upotrebom RSA algoritma • Standardizira Optimal Asymmetric Encryption Padding (OAEP) • PKCS#1 v2.0 encoding hashed label some 0x00 bytes 0x01 message to be encrypted random seed MGF + MGF – Mask Generating Function (a hash function, e.g., SHA-1) MGF + 0x00 masked seed masked message

  21. Encrypting and Decrypting Efficiently • RSA relies on modular exponentiations for encryption and decryption • Straightforward approach • Multiply C by itself d times • For k-bit integers C,d and n, the number of multiplications ~2k • It we don’t “reduce mod n”, memory requirements ~2k • For security reasons, n must be large (e.g., k=2048 bits long) • Clearly, this approach does not work (or is inefficient) • Efficient approach utilizes thesquare and multiply algorithm

  22. RSA with Square and Multiply C20 =(C10)2 = ((C5)2)2 = (((C4 x C)2)2 = (((C2)2 x C))2)2 (only 5 multiplications v.s. 19) C25 = C24 x C = (C12)2 x C = ((C6)2)2 x C = (((C3)2)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)

  23. RSA with Square and Multiply M = 1 fori = 1 to k M = Mx M mod n (square and reduce mod n) if di == 1 M = M x C mod n (multiply and reduce mod n) returnM RSA k-bits long decryption key: d = d1,…,dk • Complexity: at most 2log2(d) = 2k multiplications and divisions • Important: the decryption execution time depends on the key

  24. Simple Timing Attack on RSA • Timing attacks • Measure the time of the decryption execution • The measured time corresponds to the number of 1s in the key • In other words, time leaks the Hamming weight (w) of the key • Simple attack • Key search complexity is reduced from 2k to • In other words, from all possible k-bit combinations to those with w bits equal to 1 • The best case for the attacker: w=1, the search space onlyk keys • The worst case for the attacker: w=k/2

  25. Simple Power Analysis • (Kocher 1998) Attacker directly uses power consumption to learn bits of secret key • Many implementations of modern cryptosystems (DES, AES, RSA) vulnerable to timing and power analysis attacks • Side-channel attacks

  26. Experiment: SPA on Exponentiation • Attack on the 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

  27. 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

  28. 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

  29. RSA timing attacks over the network • “Remote timing attacks are practical”, by D. Boneh and D. Brumley, 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 prime factor q (n=pq) • Time measurement indicates if a bit of q is 1 or 0 c measuretime Attacker Server RSAK(c)

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

  31. 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, 1976 • 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)

  32. Discrete Logarithm Problem for Zp* • Zp* oznacava (za prosti broj p) konacnu multiplikativnu grupu velicine |Zp*| = p-1 (i.e., Zp*={1,2,...,p-1} ) • Broj g Zp*, cije potencije “mod p” generiraju sve cijele brojeve grupe Zp*nazivamo primitivanelement ili generatorgrupe Zp* • Zagenerator grupe Zp* vrijedi: (gimod p) Zp*, (i = 1, 2, ..., p-1) • Pri tome: (gi mod p)  (gj mod p), za i  j • Primjer: p = 7, g = 3 -> {313, 322,336,344, 355,361} • Za danu grupu Zp*, generator te grupe g Zp* i drugi clan/element y Zp*, discrete logarithm problem (DLP) je problem odredjivanja cijelog broja x Zp* takovog da vrijedi: y gxmod p • Racunanje diskretnih logaritama je vrlo tezak problem za veliki p • Za razliku od potenciranja (za koje postoje efikasni algoritmi) • Diffie-Hellman algoritam koristi ovu cinjenicu

  33. Diffie-Hellman algoritam

  34. Ispravnost Diffie-Hellman algoritma • Korisnik A racuna: • Korisnik B racuna: • Dakle A i B se dogovore oko zajednickog tajnog kljuca K = KAB = KBA = gXAXB mod p

  35. 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 poznaje p = 353, g = 3, YA = 40, te YB = 248 • Napadac moze otkriti zajednicki kljuc K tako da nadje rjesenje jednadzbe 3a mod 353 = 40 ili jednadzbe 3b mod 353 = 248 • Napadac provjeravaza a = 1, 2, ..., 96, 97...vrijedi li 3a mod 353 = 40 • Za velike brojeve XA,XB i p (npr., 2048-bitni), ovaj napad je nepraktican

  36. 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: Opisite MITM napad na DH protokol

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

  38. The Station-to-Station Protocol Alice Bob odaberi slucajan XB izracunaj gXB mod p K = (gXA)XBmod p gXA mod p gXB mod p,EK(EPR_B(gXB,gXA)) EK( EPR_A(gXB,gXA) ) 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) digitalni potpis

  39. RSA i Diffie-Hellman: primjene • SSL/TLS (https) • SSH, SFTP (secure remote access) • IPSec (Internet Key Exchange - IKE) • PGP (e-mail) • ...

More Related