Sunteți pe pagina 1din 16

Introducere n Criptografie

Prof. univ.dr. Constantin Popescu


Departamentul de Matematica si Informatica http://webhost.uoradea.ro/cpopescu/

01/11/2007

Introducere in Criptografie

Agenda
1. Criptosistemul ElGamal 2. Algoritmul Diffie-Hellman 3. Criptografia bazata pe curbe eliptice 4. Recomandari pentru alegerea cheilor RSA

Introducere in Criptografie

Criptosistemul ElGamal
Criptosistemul ElGamal a fost realizat n 1985 de Taher ElGamal. Generarea cheilor Fiecare entitate genereaz o cheie public i o cheie privat corespunztoare. Entitatea A execut urmtoarele: 1. Genereaz un numr prim mare p i un generator al grupului multiplicativ Z*p. 2. Selecteaz un numr ntreg a, 1 a p-2 i calculeaz a mod p. 3. Cheia public a lui A este (p,,a), iar cheia privat a lui A este a.

Introducere in Criptografie

Criptosistemul ElGamal
Algoritmul de criptare Utilizatorul B cripteaz un mesaj m i-l trimite la utilizatorul A: 1. Obine cheia public (p,,a) a lui A. 2. Reprezint mesajul de criptat ntr-un numr ntreg m din intervalul [0,p-1]. 3. Selecteaz aleator un numr ntreg k, 1 k p-2. 4. Calculeaz c1 = k mod p i c2 = m(a)k mod p. 5. Trimite textul cifrat c = (c1,c2) la utilizatorul A.

Introducere in Criptografie

Criptosistemul ElGamal
Algoritmul de decriptare Pentru a determina textul clar m din textul cifrat c, utilizatorul A execut urmtoarele: 1. Utilizeaz cheia sa privat a pentru a calcula: c1 p-1-a mod p 2. Determin textul clar m astfel: M = (c1-a)*c2 mod p 3. Se observ c c1 p-1-a = c1-a = -a*k.
Introducere in Criptografie 5

Criptosistemul ElGamal
Exemplu: A selecteaz numrul prim p = 2357 i un generator =2 din Z*2357. A alege cheia sa privat a=1751 i calculeaz: a mod p = 21751 mod 2357 = 1185

Cheia public a lui A este (2357, 2 ,1185). Pentru a cripta un mesaj m = 2035, utilizatorul B selecteaz un
numr ntreg k=1520 i calculeaz c1 = 21520 mod 2357 = 1430 c2 = 2035*11851520 mod 2357 = 697. Utilizatorul B trimite c1 = 1430 i c2 = 697 la utilizatorul A. Pentru a decripta mesajul cifrat, utilizatorul A calculeaz: c1p-1-a = 1430605 mod 2357 = 872 m = 872*697 mod 2357 = 2035.
Introducere in Criptografie 6

Algoritmul de distribuie a cheilor Diffie-Hellman


Se fac publice urmtoarele elemente: un numr prim mare q i un
numr ntreg care este un element primitiv modulo q. Un numr ntreg este un element primitiv modulo q dac puterile mod q, 2 mod q, ..., q-1 mod q sunt nr. ntregi de la 1 la q-1. Presupunem c utiliz. A i B doresc s stabileasc o cheie secret. Utilizatorul A genereaz aleator un numr ntreg xA<q i calculeaz yA=xA mod q. n mod similar, utilizatorul B genereaz aleator un numr ntreg xB<q i calculeaz yB = xB mod q. Utilizatorul A ine valoarea xA secret i face public valoarea yA. Utilizatorul B ine secret valoarea xB i face public valoarea yB. Utilizatorul A calculeaz cheia kA=(yA)xB mod q.
Introducere in Criptografie 7

Algoritmul de distribuie a cheilor Diffie-Hellman


Avem urmtoarele relaii:
KA = = = = = = = = (yB)xA mod q (xB mod q)xA mod q (xB)xA mod q xBxA mod q (xA)xB mod q (xA mod q)xB mod q (yA)xB mod q KB.

Cheia secret stabilit de cei doi utilizatori A i B este K=KA=KB.


Introducere in Criptografie 8

Algoritmul de distribuie a cheilor Diffie-Hellman


Elementele publice globale

q Numr prim <q i este un element primitiv Generarea cheilor utilizatorului A

Genereaz cheia privat xA, xA<q Calculeaz cheia public yA, yA = xA mod q Generarea cheilor utilizatorului B Genereaz cheia privat xB, xB<q Calculeaz cheia public yB, yB = xB mod q
9

Introducere in Criptografie

Algoritmul de distribuie a cheilor Diffie-Hellman

Generarea cheii de distribuie de ctre utilizatorul A KA = (yB)xA mod q

Generarea cheii de distribuie de ctre utilizatorul B KB = (yA)xB mod q

Introducere in Criptografie

10

Algoritmul de distribuie a cheilor Diffie-Hellman


Exemplu 1. Se face public numrul prim q = 71 2. Se face public nr. = 7, care e un primitiv modulo 71. 3. Utilizatorul A selecteaz xA = 5 (cheia privat) i calculeaz yA = 75= 51 mod 71. 4. Utilizatorul B selecteaz xB = 12 (cheia privat) i calculeaz yB=712= 4 mod 71. 5. Utilizatorul A calculeaz cheia de distribuie: KA = (yB)xA mod 71 = 45 = 30 mod 71 6. Utilizatorul B calculeaz cheia de distribuie: KB = (yA)xB mod 71 = 5112 = 30 mod 71. 7. Cheia de distribuie este K=KA = KB =30 mod 71.
Introducere in Criptografie 11

Criptografia bazat pe curbe eliptice


Majoritatea produselor i standardelor care utilizeaz criptografia
cu chei publice pentru criptare i semnturi digitale folosesc criptosistemul RSA. Se folosete criptosistemul RSA cu 1024 de bii pentru a crete securitatea aplicaiilor i n special a aplicaiilor din comerul electronic. O posibil alternativ la criptosistemul RSA este criptografia bazat pe curbe eliptice. Folosirea curbelor eliptice n criptografie a fost propus pentru prima dat n anul 1985 de ctre Victor Miller i independent de Neal Koblitz. Ideea de baz era folosirea grupului punctelor de pe o curb eliptic n locul grupului Zp* din sistemele criptografice existente.
Introducere in Criptografie 12

Criptografia bazat pe curbe eliptice


Recent, curbele eliptice au fost folosite pentru conceperea unor
algoritmi eficieni de factorizare a ntregilor i pentru demonstrarea primalitii. Ele au fost utilizate n construirea criptosistemelor cu chei publice,

Curbele eliptice i-au gsit aplicabilitate i n teoria codurilor, unde


au fost ntrebuinate pentru obinerea unor coduri corectoare de erori foarte bune.

Curbele eliptice au jucat un rol important i n recenta demonstraie


a Ultimei Teoreme a lui Fermat.

Introducere in Criptografie

13

Criptografia bazat pe curbe eliptice


Folosirea criptosistemelor bazate pe curbe eliptice permite creterea
securitii Scade suprancrcarea i timpul de laten. Curbele eliptice sunt benefice n aplicaii n care: Puterea de calcul este limitat (cartelele inteligente) Spaiul de circuit integrat este limitat Este necesar vitez mare de calcul Limea de band este limitat (comunicaii mobile) Se folosete intens semnarea i verificarea semnturii.
Introducere in Criptografie 14

Avantajele criptosistemelor bazate pe curbe eliptice


Securitate crescut: tria criptografic per bit este mult mai mare dect a oricrui alt sistem de criptare cu chei publice cunoscut la ora actual Lrgime de band redus datorit semnturilor i certificatelor de dimensiune mic Vitez mare de criptare i semnare att n implementrile software ct i n cele hardware (transferuri bancare, reele radio) Economii substaniale fa de alte criptosisteme la calcule, lrgimea de band i necesitile de memorare Sunt ideale pentru implementrile pe hardware de dimensiuni reduse (cum ar fi cartelele inteligente smart cards)
Introducere in Criptografie 15

Recomandri pentru alegerea cheilor RSA


Recentele progrese fcute n factorizarea ntregilor i n procesarea
paralel au dat natere la necesitatea unor chei din ce n ce mai mari pentru sistemele de criptare cu chei publice.

Ultimele recomandri fcute de laboratoarele RSA Data Security


pentru alegerea dimensiunii cheilor de cifrare RSA sunt: Securitate pe termen scurt (de ex. Chei utilizatori) Securitate pe termen mediu (de ex. Chei organizaii) Securitate pe termen lung (de ex. Chei administratori)
Introducere in Criptografie

768 bii 1024 bii 2048 bii


16