Sunteți pe pagina 1din 17

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. Curbe eliptice peste cmpuri finite
2. Operaia de adunare pe o curb eliptic
3. Criptosistemul ElGamal bazat pe curbe eliptice
4. Problema logaritmilor discrei pe o curb eliptic
5. Funcii hash
6. Comparaie ntre funciile hash

Introducere in Criptografie 2
Curbe eliptice peste cmpuri finite

O curb eliptic E const din elemente (numite puncte) de tipul
(x,y) ce satisfac ecuaia:
y
2
= x
3
+a*x+b (mod p)
Unde a,bZ
p
astfel nct4*a
3
+27*b
2
0 (mod p)
Numarul p este un numr prim
Impreun cu un element singular, notat cu O i numit
punctul de la infinit.
O curb eliptic E are o structur de grup abelian mpreun cu
adunarea.
Introducere in Criptografie 3
Operaia de adunare pe o curb eliptic

Fiind date dou puncte pe E, P(x
1
,y
1
) i Q(x
2
,y
2
) avem:

P + O = P
P + (x
1
,-y
1
) = O. Punctul (x
1
,-y
1
) este negativul lui P, notat cu -P
Dac P -Q, atunci P + Q = (x
3
,y
3
), unde
x
3
=
2
-x
1
-x
2
(mod p)
y
3
= *(x
1
-x
3
)-y
1
(mod p)

y
2
-y
1
, dac P Q

x
2
-x
1
=
3*x
1
2
+a , dac P = Q
2*y
1
Introducere in Criptografie 4
Operaia de adunare pe o curb eliptic



R



Q

P


-R=P+Q

Introducere in Criptografie 5
Operaia de adunare pe o curb eliptic

Exemplu:

Fie P = (3,10), Q = (9,7), p = 23
Curba eliptic y
2
= x
3
+x+1.

Avem:


7 10 1
= 11 mod 23
9 3 2


= =



x
3
= 11
2
-3-9 = 109 = 17 mod 23

y
3
= 11*(3-(-6)) 10 = 89 = 20 mod 23.

Aadar P + Q = (17,20).
Introducere in Criptografie 6
Criptosistemul ElGamal bazat pe curbe eliptice

Fie curba eliptic E: y
2
= x
3
+a*x+b (mod p) i punctul G = (x
1
,y
1
)
un punct generator n E.
Utilizatorul A selecteaz o cheie privat n
A
i calculeaz cheia
public P
A
=n
A
*G.
Utilizatorul B selecteaz cheia sa privat n
B
i calculeaz cheia
public corespunztoare P
B
= n
B
*G.
Pentru a cripta un mesaj P
m
, utilizatorul A alege aleator un numr
ntreg pozitiv k
Calculeaz textul cifrat C
m
(format dintr-o pereche de puncte):

C
m
= {kG, P
m
+ k*P
B
}.

Pentru a decripta textul cifrat C
m
, utilizatorul B calculeaz:
P
m
+ k*P
B
- n
B
(kG) = P
m
+ k(n
B
*G) - n
B
*(k*G) = P
m
.
Introducere in Criptografie 7
Problema logaritmilor discrei pe o curb eliptic

Problema logaritmilor discrei pe curbe eliptice este definit astfel:
Fiind dat un punct G pe o curb eliptic, de ordin r (numrul de
puncte de pe o curb)
Si un alt punct Y, s se gseasc un unic x, 0 x r-1, astfel nct
Y=x*G.
Securitatea criptosistemelor bazate pe curbe eliptice se bazeaz pe
dificultatea rezolvrii problemei logaritmilor discrei pe o curb
eliptic
Adic pe determinarea lui x, dndu-se G i Y.
Introducere in Criptografie 8
Comparaie ntre CE i RSA


MIPSani = numrul de ani necesari dac se execut un milion de
instruciuni n fiecare secund


Dimensiune
cheie CE
MIPS-ani Dimensiune
cheie RSA
MIPS-ani
150 3.8*10
10
512 3*10
4
205 7.1*10
18
768 2*10
8
234 1.6*10
28
1024 3*10
11
Introducere in Criptografie 9
Funcii hash

n schemele de semntur digital, funciile hash sunt aplicate
pentru a reduce lungimea arbirar a mesajelor la un ir de bii
irul de bii poate fi manipulat cu uurin n algoritmul de
semnare.
Definiie. O funcie hash este o funcie care mapeaz un ir binar
de o lungime arbitrar finit la un ir binar de o lungime fixat l :

H : {0,1}
*
{0,1}
l
.

O funcie hash trebuie s fie greu de inversat i s fie uor de
calculat

Introducere in Criptografie 10
Proprietile functiilor hash

Rezisten la coliziune slab: pentru un x dat, este greu de gsit un
xx astfel nct H(x) = H(x)
Rezisten la coliziune puternic: este greu de gsit o pereche
(x,x) cu x x astfel nct H(x) = H(x), dac H este aleas aleator
dintr-o familie de funcii hash
Greu inversabil: pentru un c dat, este greu de gsit un x astfel
nct H(x) = c.
Una din cerinele fundamentale pentru o astfel de funcie este ca,
modificnd un singur bit la intrare, s produc o avalan de
modificri n biii de la ieire.
Introducere in Criptografie 11
Funcia hash SHA-1
NIST mpreun cu NSA au proiectat Secure Hash Algorithm
(SHA), standardul numindu-se SHS.
Algoritmul proceseaz un mesaj de lungime maxim 2
64
bii i
produce un rezumat de 160 de bii.
Mai nti mesajul este completat la multiplu de 512 bii, adic se
adaug 1 i atia de 0 pn la 448 bii, iar ultimii 64 de bii
memoreaz lungimea mesajului nainte de completare.
Rezumatul MD de 160 de bii, vzut ca 5 regitri A, B, C, D, E de
32 de bii, se iniializeaz cu urmtoarea constant MD
0
:
A = 67452301
B = EFCDAB89
C = 98BADCFE
D = 10325476
Introducere in Criptografie 12
E = C3D2E1F0
Funcia hash SHA-1

Apoi se prelucreaz fiecare bloc M
j
de 512 bii al mesajului.
Fiecare prelucrare are 4 runde de cte 20 de operaii fiecare.
Funcia neliniar F, care se modific la fiecare rund,este definit
astfel:

Runda 1: F
t
(B,C,D) = (BC)(BD), pentru t= 0,...,19
Runda 2: F
t
(B,C,D) = B C D, pentru t=20,...,39
Runda 3: F
t
(B,C,D) = (BC)(BD)(CD), pentru t=40,...,59
Runda 4: F
t
(B,C,D) = (B C D), pentru t=60,...,79
Introducere in Criptografie 13
Funcia hash SHA-1

Se noteaz cu t numrul operaiei (t=0,...,79).
Fiecare bloc M
j
, j=0,...,15 ,de 16 cuvinte de 32 de bii este
transformat n 80 de subblocuri W
j
, j=0,...,79, folosind urmtorul
algoritm:

W
t
= M
t
, t = 0,...,15
W
t
= ( M
t-3
M
t-8
M
t-14
M
t-16
) <<< 1 , t = 16,...,79

Unde <<< K semnific deplasarea circular la stnga a cuvntului
cu K poziii.
S-a notat cu A complementul de 1 al lui A, cu funcia AND, cu
funcia SAU
S-a notat cu suma modulo 2 (XOR).
Introducere in Criptografie 14
Funcia hash SHA-1

n fiecare rund se execut urmtoarele operaii ( t=0,...,79):

TEMP = (A<<<5) +F
t
(B,C,D)+E+W
t
+K
t
E = D
C = B<<<30
B = A
A = TEMP

Unde K
t
este o constant unic aditiv.
n final avem: MD
j
= MD
j
+ MD
j-1.

Introducere in Criptografie 15
Alte funcii hash

Exist i alte funcii hash cum ar fi algoritmul MD5, algoritmul
RIPEMD-160.
Algoritmul MD5 a fost dezvoltat de Ron Rivest.
Acest algoritm primete la intrare un mesaj de lungime arbitrar i
produce la ieire un rezumat de 128 de bii.
Algoritmul RIPEMD-160 a fost elaborat de un grup de cercettori
de la European RACE Integrity Primitives Evaluation.
RIPEMD160 este similar cu SHA-1.
Algoritmul RIPEMD-160 primete la intrare un mesaj de lungime
arbitrar i produce la ieire un rezumat de 160 de bii.
Introducere in Criptografie 16
Comparaie ntre funciile hash


SHA-1 MD5 RIPEMD-160
Lungime rezumat
160 bii 128 bii 160 bii
Lungime bloc
512 bii 512 bii 512 bii
Runde 80 runde 64 runde 160 runde
Mrime mesaj
2
64
-1 bii

Funcii folosite
4 4 5
Nr. constante aditive 4 64 9

Introducere in Criptografie 17