Sunteți pe pagina 1din 17

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

Curbe eliptice peste cmpuri finite


O curb eliptic E const din elemente (numite puncte) de tipul (x,y) ce satisfac ecuaia: y2 = x3+a*x+b (mod p) Unde a,bZp astfel nct4*a3+27*b20 (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

Operaia de adunare pe o curb eliptic


Fiind date dou puncte pe E, P(x1,y1) i Q(x2,y2) avem: P+O=P P + (x1,-y1) = O. Punctul (x1,-y1) este negativul lui P, notat cu -P Dac P -Q, atunci P + Q = (x3,y3), unde x3 = 2-x1-x2 (mod p) y3 = *(x1-x3)-y1 (mod p) y2-y1 x2-x1 , dac P Q

3*x12+a , dac P = Q 2*y1


4

Introducere in Criptografie

Operaia de adunare pe o curb eliptic


R

Q P -R=P+Q

Introducere in Criptografie

Operaia de adunare pe o curb eliptic


Exemplu: Fie P = (3,10), Q = (9,7), p = 23 Curba eliptic y2 = x3+x+1. Avem:

7 10 1 = = = 11 mod 23 93 2 x3 = 112-3-9 = 109 = 17 mod 23 y3 = 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: y2 = x3+a*x+b (mod p) i punctul G = (x1,y1) un punct generator n E. Utilizatorul A selecteaz o cheie privat nA i calculeaz cheia public PA=nA*G. Utilizatorul B selecteaz cheia sa privat nB i calculeaz cheia public corespunztoare PB = nB*G. Pentru a cripta un mesaj Pm, utilizatorul A alege aleator un numr ntreg pozitiv k Calculeaz textul cifrat Cm (format dintr-o pereche de puncte): Cm = {kG, Pm + k*PB}. Pentru a decripta textul cifrat Cm, utilizatorul B calculeaz: Pm + k*PB - nB(kG) = Pm + k(nB*G) - nB*(k*G) = Pm.
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

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 MIPS-ani cheie RSA

150 205 234


Introducere in Criptografie

3.8*1010 7.1*1018 1.6*1028

512 768 1024

3*104 2*108 3*1011


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 264 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 MD0: A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0
Introducere in Criptografie 12

Funcia hash SHA-1


Apoi se prelucreaz fiecare bloc Mj 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: Ft(B,C,D) = (BC)(BD), pentru t= 0,...,19 Runda 2: Ft(B,C,D) = B C D, pentru t=20,...,39 Runda 3: Ft(B,C,D) = (BC)(BD)(CD), pentru t=40,...,59 Runda 4: Ft(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 Mj, j=0,...,15 ,de 16 cuvinte de 32 de bii este
transformat n 80 de subblocuri Wj, j=0,...,79, folosind urmtorul algoritm: Wt = Mt , t = 0,...,15 Wt = ( Mt-3 Mt-8 Mt-14 Mt-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) +Ft(B,C,D)+E+Wt+Kt E=D C = B<<<30 B=A A = TEMP

Unde Kt este o constant unic aditiv. n final avem: MDj = MDj + MDj-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 Lungime rezumat Lungime bloc Runde Mrime mesaj Funcii folosite Nr. constante aditive MD5 RIPEMD-160

160 bii 512 bii 80 runde 264-1 bii 4 4

128 bii 512 bii 64 runde 4 64

160 bii 512 bii 160 runde 5 9

Introducere in Criptografie

17