Sunteți pe pagina 1din 16

01/11/2007 Introducere in Criptografie 1

Introducere n
Criptografie
Prof. univ.dr. Constantin Popescu
Departamentul de Matematica si Informatica
http://webhost.uoradea.ro/cpopescu/
Agenda

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

Introducere in Criptografie 2
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 3
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 c
1
=
k
mod p i c
2
= m(
a
)
k
mod p.
5. Trimite textul cifrat c = (c
1
,c
2
) la utilizatorul A.
Introducere in Criptografie 4
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:

c
1

p-1-a
mod p

2. Determin textul clar m astfel:

M = (c
1
-a
)*c
2
mod p

3. Se observ c c
1

p-1-a
= c
1
-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 = 2
1751
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
c
1
= 2
1520
mod 2357 = 1430
c2 = 2035*1185
1520
mod 2357 = 697.
Utilizatorul B trimite c
1
= 1430 i c
2
= 697 la utilizatorul A.
Introducere in Criptografie 6
Pentru a decripta mesajul cifrat, utilizatorul A calculeaz:
c
1
p-1-a
= 1430
605
mod 2357 = 872
m = 872*697 mod 2357 = 2035.
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 x
A
<q i calculeaz
y
A
=
xA
mod q.
n mod similar, utilizatorul B genereaz aleator un numr ntreg
x
B
<q i calculeaz y
B
=
xB
mod q.
Utilizatorul A ine valoarea x
A
secret i face public valoarea y
A
.
Utilizatorul B ine secret valoarea x
B
i face public valoarea y
B
.
Utilizatorul A calculeaz cheia k
A
=(y
A
)
xB
mod q.
Introducere in Criptografie 7
Algoritmul de distribuie a cheilor Diffie-Hellman

Avem urmtoarele relaii:
K
A
= (y
B
)
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
= (y
A
)
xB
mod q
= K
B.

Cheia secret stabilit de cei doi utilizatori A i B este K=K
A
=K
B
.
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 x
A
, x
A
<q
Calculeaz cheia public y
A
, y
A
=
xA
mod q


Generarea cheilor utilizatorului B
Genereaz cheia privat x
B
, x
B
<q
Introducere in Criptografie 9
Calculeaz cheia public y
B
, y
B
=
xB
mod q
Algoritmul de distribuie a cheilor Diffie-Hellman



Generarea cheii de distribuie de ctre utilizatorul A

K
A
= (y
B
)
xA
mod q


Generarea cheii de distribuie de ctre utilizatorul B

K
B
= (y
A
)
xB
mod q


Introducere in Criptografie 10
Introducere in Criptografie 11
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 x
A
= 5 (cheia privat) i calculeaz
y
A
= 7
5
= 51 mod 71.
4. Utilizatorul B selecteaz x
B
= 12 (cheia privat) i calculeaz
y
B
=7
12
= 4 mod 71.
5. Utilizatorul A calculeaz cheia de distribuie:
K
A
= (y
B
)
xA
mod 71 = 4
5
= 30 mod 71
6. Utilizatorul B calculeaz cheia de distribuie:
K
B
= (y
A
)
xB
mod 71 = 51
12
= 30 mod 71.
7. Cheia de distribuie este K=K
A
= K
B
=30 mod 71.
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 Z
p
*
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)

768 bii

Securitate pe termen mediu (de ex. Chei organizaii)

1024 bii

Securitate pe termen lung (de ex. Chei administratori)

2048 bii

Introducere in Criptografie 16

S-ar putea să vă placă și