2 Principiile criptrii cu chei publice 1. distribuia cheilor 2. semnturile digitale Imposibilitatea de a determina cheia de decriptare numai pe baza algoritmului i a cheii de criptare. 3 4 procesul de criptare cu chei publice 1. Cele dou pri care doresc s comunice trebuie s genereze cte o pereche de chei, pentru a fi folosite la criptarea i decriptarea mesajelor. 2. Fiecare parte public - cheia de criptare ntr-o list public (aflat la dispoziia terilor) sau ntr-un fiier. Aceasta este cheia public. Perechea ei se pstreaz secret. 3. Dac A dorete s-i transmit un mesaj lui B, el cripteaz mesajul folosind cheia public a lui B. 4. Cnd B recepioneaz mesajul, acesta l decripteaz folosind cheia sa privat. Nici un alt utilizator nu poate decripta mesajul, deoarece doar B cunoate cheia privat. 5 Criptosistem cu chei publice: confidenialitate 6 O surs A dorete s transmit un mesaj X=[X 1 ,X 2 ,,X M ] ctre destinaia B. Cele M elemente ale lui X sunt litere dintr-un alfabet finit. n acest caz B genereaz perechea de chei, una public KU b i una privat KR b , care este cunoscut numai de ctre B. Dup generarea cheilor, cheia public se transmite pentru a fi accesibil lui A. Mesajul X i cheia de criptare KU b procesate de algoritm formeaz mesajul criptat Y = [Y 1 , Y 2 , , Y N ]. Y = EKU b (X) Destinatarul, aflat n posesia cheii private poate inversa transformarea: X = DKR b (Y) Un oponent care intercepteaz Y i are acces la cheia KU b , dar nu are acces la KR b , poate ncerca s refac X i/sau KR b . Se presupune c oponentul cunoate algoritmul de criptare E i cel de decriptare D. Dac oponentul este interesat numai de un singur mesaj, atunci el i va concentra eforturile pentru a descoperi X, dar n general oponentul este interesat nu numai de coninutul mesajului, ci i de posibilitatea decriptrii mesajelor pe viitor. n acest ultim caz el va dori s descopere cheia privat de decriptare KR b . 7 Criptosistem cu chei publice: autentificare 8 Y = E KRa (X) X = D KUa (Y) n acest caz A pregtete un mesaj pentru a fi transmis lui B i l cripteaz folosind cheia sa privat (KR a ). B poate decripta mesajul folosind cheia public a lui A (KU a ). Deoarece mesajul a fost criptat folosind cheia privat a lui A, numai acesta putea scrie mesajul. Astfel ntregul mesaj criptat servete ca o semntur digital. n plus este imposibil modificarea mesajului fr a avea acces la cheia privat a lui A. n concluzie mesajul este autentificat att din punctul de vedere al sursei ct i din punct de vedere a integritii acestuia. 9 O cale mult mai eficient pentru a obine acelai rezultat este criptarea doar a unui bloc scurt de bii care este ataat documentului. Un astfel de bloc se numete autentificator i are proprietatea c nu permite schimbarea coninutului documentului fr ca autentificatorul s fie schimbat. Dac autentificatorul este criptat cu cheia privat a sursei, atunci acesta servete ca semntur verificnd originea i coninutul mesajului. Aceast metod nu asigur confidenialiate mesajului. Astfel mesajul transmis nu poate fi modificat dar poate fi citit de oricine. Pentru a rezolva aceast problem se poate folosi o criptare dubl: Z = E KUb [E KRa (X)] X = D KUa [D KRb (Z)] 10 Criptosistem cu chei publice: confidenialitate i autentificare 11 Aplicaii ale sistemelor cu chei publice Sistemele cu chei publice pot fi ncadrate n trei categorii: Criptare/Decriptare: Sursa cripteaz mesajul cu cheia public a destinatarului. Semnturi digitale: Sursa semneaz (cripteaz) mesajul cu cheia sa privat. Semnarea este realizat prin criptarea total sau parial a mesajului. Distribuia de chei: Dou pri coopereaz pentru a schimba o cheie de sesiune. Exist diferite abordri posibile, implicnd cheia privat a unuia sau a ambilor participani. Algoritmul Criptare/Decriptare Semnturi digitale Distribuia cheilor RSA Da Da Da Diffie- Hellman Nu Nu Da DSS Nu Da Nu Securitatea sistemelor de criptare cu cheie public aparatul matematic folosit este bazat pe teoria numerelor, teoria funciilor recursive i teoria probabilitilor, funciile eliptice, teoria automatelor, calcul neconvenional (cuantic, molecular etc). Confidenialitatea Autenticitatea Integritatea 12 Comparaie ntre criptarea simetric i cea cu cheie public Avantaje- cheie simetric 1. Pot transmite volume mari de date. Exist implementri hard/ soft care pot asigura rate de criptare de sute de mega-octei/s. 2. Cheile sunt relativ scurte. 3. Pot fi folosite ca baz de construcie a unor mecanisme de (criptare generatori de numere pseudo-aleatoare, generatori de funcii de dispersie, scheme de semntur). 4. Prin compunere pot conduce la sisteme de criptare puternice. Dezavantaje 1. Cheia trebuie s rmn permament secret n (cel puin) dou locuri distincte. 2. Cu ct lungimea unui mesaj criptat este mai mare, cu att el este mai uor de spart. 3. n reele mari, o gestionare a cheilor devine extrem de dificil. 4. Necesit un canal sigur de comunicare, cel puin pentru transmiterea cheii. Lucru devine dificil pentru sistemele care necesit schimbri frecvente ale cheilor de criptare/decriptare. 13 Comparaie ntre criptarea simetric i cea cu cheie public Avantaje- cheie public 1. Sistemul este ideal pentru transmiterea informaiei prin canale nesigure. 2. Sunt simplu de definit i elegante matematic. 3. Doar cheia de decriptare trebuie inut secret, la un singur punct (destinatar). 4. n funie de modul de utilizare, o pereche de chei (public, privat) poate fi pstrat o perioad mai lung de timp. 5. Aplicaii: semnturi electronice, algoritmi de autentificare, componente de comert electronic. Dezavantaje 1. Sunt semnificativ mai lente dect sistemele simetrice. 2. Sunt necesare chei de lungimi mult mai mari. 3. Nu se poate garanta securitatea absolut a nici unei scheme de criptare cu cheie public. 4. Implementarea trebuie realizat cu foarte mare grij. Sisteme cu grad ridicat teoretic de securitate pot fi sparte uor printr-o implementare neglijent. 14 Cele dou clase de sisteme de criptare dispun de o serie de avantaje complementare. Acest lucru face ca ele s fie folosite combinat. Multe sisteme de criptare ncep comunicarea Transmind via un sistem cu cheie public, cheia unui sistem simetric. n faza a doua, mesajele sunt criptate folosind sistemul simetric de criptare. Aceasta asigur o vitez mult mai mare de Transmitere i un spor de autenticitate a mesajelor. 15 Criptosistemul RSA Prima schem criptografic cu chei publice a fost realizat n anul 1977 de ctre Ron Rivest, Adi Shamir i Len Adleman de la MIT. Schema Rivest-Shamir-Adleman (RSA) este cea mai rspndit i implementat schem din lume. Generarea cheilor: 1. Se selecteaz dou numere ntregi prime p i q. 2. Se calculeaz produsul n=p*q. 3. Se calculeaz indicatorul lui Euler (n)=(p-1)*(q-1). 4. Se selecteaz un numr ntreg e astfel nct c.m.m.d.c.((n),e)=1, 1<e<(n). 5. Se calculeaz d astfel nct d = e -1 mod (n). 6. Cheia public este (e,n), iar cheia privat este d. 16 Algoritmul de criptare: 1. Presupunem c un utilizator A are cheia public (e,n) i cheia privat d. 2. Utilizatorul B cripteaz mesajul M pentru a fi transmis la A astfel: 1. Obine cheia public (e,n) a lui A. 2. Transform mesajul ce va fi criptat ntr-un numr ntreg M n intervalul [0,n-1]. 3. Calculeaz C = M e (mod n). 4. Trimite textul cifrat C la utilizatorul A. 17 Criptosistemul RSA Algoritmul de decriptare: Pentru a determina textul clar M din textul cifrat C, utilizatorul A calculeaz: M = C d (mod n). Numai utilizatorul A cunoaste cheia privata d. 18 Criptosistemul RSA Exemplu: Se genereaz mai nti cheile: 1. Se selecteaz dou numere prime p = 7 i q = 17. 2. Se calculeaz n = p*q = 7*17 = 119. 3. Se calculeaz (n) = (p-1)*(q-1) = 96. 4. Se alege e a. . e este relativ prim cu (n) = 96. n acest caz e = 5. 5. Se determin d astfel nct d*e = 1 mod 96 i d<96. Avem d = 77, deoarece 77*5 = 385 = 4*96+1. 6. Cheia public este (5,119), iar cheia privat este 77. Se consider c textul clar este M =19. Textul criptat va fi C = 19 5 mod 119 = 2476099 mod 119 = 66. Pentru decriptare se calculeaz 66 77 mod 119 = 19 mod 119. 19 Atacuri asupra algoritmului RSA Firme productoare de sisteme de programe i echipamente, ca Novell, DEC, Lotus, Motorola, folosesc acest algoritm. Instituii importante (Departamentul Aprrii din SUA, Boeing, reeaua bancar internaional SWIFT) folosesc acest algoritm pentru protejarea i autentificarea datelor, parolelor, fiierelor, documentelor memorate sau transmise prin reele. Exist trei tipuri de atacuri asupra algoritmului RSA: - ncercarea tuturor cheilor private posibile. - Factorizarea numrului n n factori primi p i q. Aceste atacuri depind de timpul de execuie a alg. de decriptare. 20 Atacuri asupra algoritmului RSA Din punct de vedere matematic, exist 3 atacuri asupra RSA: 1. Factorizarea numrului n n factori primi p i q. Se poate astfel determina (n) = (p-1)*(q-1), iar apoi d = e -1 (mod (n)). 2. Determinarea lui (n) direct, fr a determina mai nti p i q. i n acest caz se poate determina apoi d = e -1 (mod (n)). 3. Determinarea lui d n mod direct, fr a determina mai nti (n). Determinarea lui (n) este echivalent cu factorizarea numrului n, iar determinarea lui d (tiind doar pe e i n) se face ntr-un timp tot aa de mare ca i factorizarea lui n. Securitatea RSA se bazeaz pe dificultatea factorizrii unui numr ntreg n factori primi. RSA cu lungimea cheii de 1024 bii (aproximativ 300 cifre ) este considerat destul de puternic pentru aplicaiile actuale. 21