Vous êtes sur la page 1sur 15

Prelegerea 13

Alte sisteme de criptare cu cheie


public
a
13.1

Criptarea folosind curbe eliptice

Pentru nceput, sa definim notiunea de curb


a eliptic
a.
Definitia 13.1 Fie p (p > 3) un num
ar prim. Curba eliptic
a y 2 = x3 + ax + b peste Zp
este multimea solutiilor (x, y) Zp Zp ecuatiei
y 2 x3 + ax + b (mod p)
(1)
unde a, b Zp sunt constante astfel ca 4a3 + 27b2 6 0 (mod p)
si dintr-un punct O numit punct la infinit.
O curba eliptica E se poate structura ca un grup abelian finit. Legea de compozitie
(notata aditiv) este definita astfel:
Fie P, Q E, P = (x1 , y1 ), Q = (x2 , y2 ).
Daca x2 = x1 , y2 = y1 , atunci P + Q = O; altfel, P + Q = (x3 , y3 ) unde
x 3 = 2 x 1 x 2 ,
iar
=

y3 = (x1 x3 ) y1 ,

y2 y1
x2 x1
3x21 +a
2y1

daca P 6= Q
daca P = Q

Se mai defineste P + O= O+P = P, P E.


Verificarea proprietatilor de grup este banala. Elementul neutru este O.
De remarcat ca inversa lui (x, y) (notata (x, y)) este (x, y).
Exemplul 13.1 Fie E curba eliptic
a y 2 = x3 + x + 5 peste Z19 . S
a calcul
am la nceput
punctele lui E. Aceasta se face astfel: x Z11 se calculeaz
a z = x3 + x + 5 (mod 19);
apoi se testeaza daca z este rest patratic.
1

PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

caz afirmativ, deoarece 19 3 (mod 4), exist


In
a o formul
a (Prelegerea 10) pe care o
vom aplica direct, obtinand radacinile p
atrate ale lui z :
z (19+1)/4 (mod 19) = z 5 (mod 19).
Rezultatele sunt stranse n tabelele urm
atoare (toate calculele se realizeaz
a modulo 19):
a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
a2 0 1 4 9 16 6 17 11 7 5 5 7 11 17 6 16 9 4 1
x x3 + x + 5
y
x x3 + x + 5
y
x x3 + x + 5
y
0
5
9, 10 1
7
8, 11 2
15

3
16
4, 15 4
16
4, 15 5
2

6
18

7
13

8
12

9
2
10
8
11
17
6, 13
12
16
4, 15 13
11
7, 12 14
8

15
13
16
13
17
14

18
3

Curba eliptica E admite deci 15 puncte; cum ordinul grupului nu este num
ar prim,
grupul nu este ciclic. Vom alege un element primitiv drept generator. Fie acesta =
(0, 9). Calculam puterile lui (de fapt multiplii, grupul fiind aditiv). Pentru 2 se
calculeaz
a ntai (modulo 19):
= (3 02 + 1)(2 9)1 = 1 181 = 18.
Acum se pot determina
x3 = 182 0 0 = 361 1 (mod 19), y3 = 18 (0 1) 9 = 27 11 (mod 19),
deci 2 = (1, 11).
Multiplul urmator este 3 = 2 + = (1, 11) + (0, 9). Avem:
= (9 11) (0 1)1 = 2, deci
2
x3 = 2 1 0 = 3, y3 = 2 (1 3) 11 = 15 4 (mod 19),
de unde rezulta 3 = (3, 4).
mod similar se obtin toate punctele curbei eliptice E:
In
= (0, 9)
6 = (11, 6)
11 = (4, 15)

2 = (1, 11)
7 = (12, 15)
12 = (3, 15)

3 = (3, 4)
8 = (12, 4)
13 = (1, 8)

4 = (4, 4)
9 = (11, 13)
14 = (0, 10)

5 = (13, 12)
10 = (13, 7)
15 = O

De remarcat ca de exemplu (3, 4) nu este element primitiv, av


and ordinul 5.
O curba eliptica definita pe Zp (p > 3 prim) are aproximativ p puncte. O teorema a
lui Hasse ([2]) stabileste un interval pentru acest numar:

p + 1 2 p card(E) p + 1 + 2 p

13.1. CRIPTAREA FOLOSIND CURBE ELIPTICE

Calculul efectiv al lui card(E) este destul de dificil si vom trece peste el1 . Exista
un algoritm al lui Schoof ([2], pag 137-140) de numarare a punctelor unei curbe eliptice,
dar complexitatea lui este destul de mare: O(log 6 p) (O(log 9 p) n versiunea originala)
nmultiri si inversiuni, si O(log 3 p) spatiu de memorie. In plus implementarea sa este
destul de greoaie si nu a fost realizata complet pana n prezent.
Alta problema dificila consta n aflarea unui subgrup ciclic al lui E n care problema
logaritmului discret sa fie dificila. O informatie utila este data de teorema urmatoare:
Teorema 13.1 (Teorema lui Ruck) Fie E o curb
a eliptic
a peste Zp cu p > 3 num
ar prim.
0
Atunci exista doua numere ntregi n1 , n2 astfel ca E s
a fie izomorf
a cu Zn1 timesZn2 , iar
n2 |n1 , n2 |(p 1).
Demonstratia poate fi gasita n [2], pag. 107.
Pe spatiul curbelor eliptice se pot realiza diverse tehnici de criptare cu cheie publica; unele din ele sunt doar adaptari ale sistemelor deja prezentate, altele sunt aplicatii
specifice.
Principala atractie a sistemelor construite pe curbe eliptice consta n dimensiuni mici
ale cheilor, ceea ce la face aplicabile pe sisteme portabile (smartcarduri de exemplu).
Exemplul 13.2 Sa vedem cum se realizeaz
a o criptare El Gamal pentru curba eliptica
definit
a n Exemplul 13.1.
Fie = (0, 9) si sa presupunem c
a exponentul secret este a = 7. Atunci = 7 =
(12, 15), iar operatia de criptare este:
eK (x, k) = (k (0, 9), x + k (12, 15)), unde x E, 0 k 14.
Pentru decriptare se foloseste operatia
dK (y1 , y2 ) = y2 7y1
S
a presupunem ca Alice vrea sa cripteze mesajul x = (3, 4) (care este un punct din
E); dac
a ea alege aleator valoarea k = 8, va calcula
y1 = 8 (0, 9) = (12, 4), si
y2 = (3, 4) + 8 (12, 15) = (3, 4) + (4, 15) = 3 + 8 7 = 3 + 11 = 14 = (0, 10)
(coeficientii se calculeaza modulo 15).
Deci y = ((12, 4), (0, 10)). Dupa receptie, Bob decripteaz
a mesajul astfel:
x = (0, 10) 7 (12, 4) = 14 7 8 = 3.
1

Nu se cunoaste nici o formul


a care s
a dea valoarea card(E); exista o conjectura Birch and SwinnertonDyer n legatur
a cu acest subiect, conjectura inclusa printre cele sapte probleme ale mileniului (mpreuna
cu problema P versus N P ).


PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

13.1.1

Criptarea Menezes - Vanstone

In acest sistem de criptare de fapt o varianta a lui El Gamal curba eliptica este
utilizata pentru mascare, domeniile de valori al textelor clare si criptate fiind mult mai
larg. Prezentarea algoritmului este:
Fie E o curba eliptica peste Zp (p > 3 prim) care contine un subgrup ciclic H n
care problema logaritmului discret este dificila.
Alegem P= Zp Zp , C= E Zp Zp si
K= {(E, , a, )| E, a Zp , = a}.
Valorile , sunt publice, iar a este secret.
Pentru K = (E, , a, ), k Zcard(H) ales aleator (secret) si x = (x1 , x2 ) P,
definim
eK (x, k) = (y0 , y1 , y2 ),
unde y0 = k , (c1 , c2 ) = k , yi = ci xi (mod p), i = 1, 2.
Pentru un text criptat y = (y0 , y1 , y2 ) se defineste
1
dK (y) = (y1 c1
1 (mod p), y2 c2 (mod p)),

unde a y0 = (c1 , c2 ).
Exemplul 13.3 Revenind la curba y 2 = x3 + x + 5 peste Z19 definit
a n Exemplul 13.1,
criptarea Menezes - Vanstone autorizeaz
a 18 18 = 324 texte clare, fat
a de numai 15 n
sistemul El Gamal adaptat.
S
a lu
am din nou = (0, 9) si exponentul a = 7. Atunci = 7 = (12, 15).
Dac
a Alice doreste sa transmita textul clar x = (x1 , x2 ) = (5, 11) (de remarcat ca
acesta nu este un punct din E) si alege k = 4, ea va ncepe prin a calcula
y0 = k = 4 (2, 7) = (4, 4)sik = 4(12, 15) = (1, 8)
deci c1 = 1, c2 = 8.
Apoi se calculeaza (modulo 19):
y1 = c1 x1 = 1 5 = 5 si y2 = c2 x2 = 8 11 = 12.
Alice trimite deci lui Bob mesajul criptat y = (y0 , y1 , y2 ) = ((4, 4), 5, 12).
Dup
a receptie, Bob calculeaza (c1 , c2 ) = a y0 = 7 (4, 4) = 7 4 = 13 = (1, 8), apoi
1
1
1
x = (y1 c1
1 (mod 19), y2 c2 (mod 19)) = (5 1 , 12 8 ) = (5, 12 12) = (5, 11).

13.2. SISTEMUL DE CRIPTARE WILLIAMS

13.2

Sistemul de criptare Williams

Acest sistem de criptare este bazat pe exponent ieri n corpuri patratice, avand multe
asemanari cu sistemele RSA si El Gamal. Se pare ca el are toate avantajele sistemului
RSA; oricum, se poate demonstra ca orice ncercare de spargere a sistemului prin prelucrarea mesajelor criptate conduce la o operatie de factorizare a modulului. Modul de
criptare si decriptare sunt la fel de rapide ca la RSA.
Sa abordam ntai baza matematica a sistemului de criptare Williams.
Fie c Z un numar ntreg fixat, ne-patrat perfect. Consideram multimea

{x = a + b c|a, b Z, a2 cb2 = 1}.


Numerele x pot fi privite si ca perechi (a, b), pe baza carora aceasta multime se poate
structura algebric ca inel, folosind operatiile
(a1 , b1 ) + (a2 , b2 ) = (a1 + a2 , b1 + b2 )
(a1 , b1 )(a2 , b2 ) = (a1 a2 + cb1 b2 , a1 b2 + a2 b1 ).

Notam x = a b c conjugatul lui x.


Pentru i = 0, 1, 2, . . . se definesc functiile Xi (x), Yi (x) astfel:
Xi (x) = Xi ((a, b)) =
Yi (x) = Yi ((a, b)) = b

xi + xi
2

xi xi
xi xi
=
xx
2 c

De aici se pot scoate relatiile

xi = Xi (x) + Yi (x) c,

xi = Xi (x) Yi (x) c.

Evident, Xi (x) si Yi (x) sunt numere ntregi; n continuare vom scrie aceste numere fara a
mai preciza si argumentul x, decat daca este necesar.
Din conditia a2 cb2 = 1 rezultaxx = 1, Xi2 cYi2 = 1.
Lema 13.1 Au loc relat iile:
Xi+j = Xi Xj + cYi Yj , Yi+j = Yi Xj + Xi Yj , i, j N
Xi+j = 2Xi Xj Xji , Yi+j = 2Xi Yj Yji , i, j, i j.
Demonstratie: Este lasata ca exercitiu.
Din lema 13.1 se deduc formulele recursive de calcul
X2i = Xi2 + cYi2 = 2Xi2 1,
X2i+1 = 2Xi Xi+1 X1 ,

Y2i = 2Xi Yi ,
Y2i+1 = 2Xi Yi+1 Y1 .

PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

Acestea conduc la o evaluare rapida a valorilor Xi si Yi .


Deoarece X0 = 1, X1 = a, rezulta ca Xi nu depinde de b.
Relatiile astfel definite se pot extinde n mod natural la congruente modulo un numar
natural nenul n:

a1 + b 1 c a2 + b 2 c

a1 a2 (mod n) si b1 b2 (mod n)

Folosind si a2 cb2 1 (mod n) n loc de a2 cb2 = 1, relatiile de sus raman adevarate.


Lema 13.2 Se dau numerele:
n = pq cu p, q numere prime mari;
a, b, c care verifica congruenta a2 cb2  1(mod n)
(2)
c
c
Simbolurile Legendre p = p , q = q care verific
a relatiile i
i (mod 4) pentru i = p, q.


= 1.
Presupunem verificate conditiile (b c, n) = 1 si simbolul Jacobi 2(a+1)
n
(p p )(q q )
Not
am m =
.
4
m+1
Fie d, e doua numere astfel ncat d e
(mod m).
2
toate aceste ipoteze, x2de x (mod n) unde x = a + bc.
In
Demonstratie: Se realizeaza prin calcul direct.
Pe baza acestei leme se pot stabili metode de criptare si decriptare similare celor din
RSA.
Saconstruim acum n detaliu sistemul de criptare Williams. Prezentarea va consta din
patru parti: descrierea sistemului, criptarea, decriptarea si criptanaliza.
A (Prezentarea): In prima faza se aleg doua numere prime mari p, q si se calculeaza
n = pq.
Se alege apoi un numar c astfel ca simbolurile Legendre p si q sa verifice conditiile
din Lema 13.2 (c se poate obtine foarte rapid deoarece cam un numar din patru satisface
congruentele cerute).
Se determina apoi un numar s astfel ncat simbolul Jacobi sa verifice
s2 c
n

= 1 si (s, n) = 1

m este dat ca n Lema 13.2; se aleg apoi d cu (d, m) = 1 si e care sa satisfaca


congruentele cerute.
Numerele n, c, e, s sunt publice iar p, q, m, d sunt secrete.

13.2. SISTEMUL DE CRIPTARE WILLIAMS

5
Exemplul 13.4 Sa alegem p = 11, q = 13, deci n = 143. Pentru c
a
= 1 11 si
11
 
5
= 1 13 (ambele modulo 4), putem alege c = 5.
13
!



1
1
s2 c
=
= 1 1 = 1.
De asemenea se poate lua s = 2 pentru c
a
n
11
13
Se obtine m = 10 14/4 = 35. Pentru c
a 23 16 18 (mod 35), se pot folosi drept
exponenti de criptare/decriptare e = 23 respectiv d = 16.


B (Criptarea): Textele clare sunt numere w (0 < w < n). In prima etapa w este codificat
ca un numar x (metoda este prezentata mai jos); criptarea va fi xe (mod n).
Codificarea: Notam

sau
b1 = 0, = w + c

b1 = 1, = (w
+
c)(s
+
c)
!
2
w c
dupa cum simbolul Jacobi
are valoarea +1 sau respectiv 1. Cazul cand
n
el este 0 trebuie evitat.



= 1; relatia este evidenta n primul caz, rezulta prin


Ambele variante conduc la
n
calcul din alegerea lui s n cazul al doilea.
In final, se noteazax = .

Scrierea lui x sub forma a + b c este posibila n ambele cazuri; astfel (toate calculele
se fac modulo n):

w+ c
w2 + c
2w

= 2
+ 2
c (mod n)
pentru b1 = 0 : x = =

w c
w
c w c

(w + c)(s + c)

=
pentru b1 = 1 : x = =

(w c)(s c)
(w2 + c)(s2 + c) + 4scw 2s(w2 + c) + 2w(s2 + c)
c (mod n).
=
+
(w2 c)(s2 c)
(w2 c)(s2 c)
Definitia lui x asigura n ambele situatii relatia xx = a2 cb2 1 (mod n).


x+x

( + )2
Mai avem 2(a + 1) = 2
+1 = + +2=
(mod n),
2
!

2(a + 1)
= 1, cum se cere n Lema 13.2.
ceea ce duce la simbolul Jacobi
n

Dupa codificarea textului clar w ca x = a + b c, textul criptat este xe (mod n), numar
care poate fi exprimat n functie de Xe si Ye , calculate recursiv pe baza relatiilor din Lema
13.1. Notam
E = Xe Ye1 (mod n).
Textul criptat este tripletul (E, b1 , b2 ), unde b1 s-a definit anterior, iar b2 este dat de relatia
b2 a (mod 2).

PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

Deoarece fiecarui text criptat i corespund patru texte clare distincte, bitii b1 si b2
asigura unicitatea decriptarii.
Exemplul
Revenind la Exemplul 13.4, s
a consider
am textul clar w = 21. Deoarece
! 13.5
  
2

21 5
7
7
=
= (1)(1) = 1, avem b1 = 0, deci = 21 + 5 si x =
143
11 13

21 + 5
446 + 42 5
17 + 42 5
=
=
= 41(17 + 42 5) = 125 + 6 5 (mod 143).
436
7
21 5
Deci a = 125, b = 6. Deoarece a este impar, rezult
a b2 = 1.
Vom calcula recursiv pe X23 si Y23 :
X1 = 125 Y1 = 6
X2 = 75 Y2 = 70
X3 = 35 Y3 = 48
X5 = 120 Y5 = 44
X6 = 18 Y6 = 71
X11 = 48 Y11 = 17
X12 = 75 Y12 = 125 X23 = 68 Y23 = 125
Obtinem acum E = 68 1251 = 68 135 = 28
Deci textul criptat este tripletul (28, 0, 1).

(mod 143).

C Decriptarea: Folosind prima componentaE a textului criptat, destinatarul poate determina numarul x2e :

xe
Xe + Ye c
E+ c
E2 + c
2E
x2e
2e

=
=
=
=
+
c (mod n)
x =
(xx)e
xe
Xe Ye c
E c
E2 c E2 c
De remarcat ca acest calcul poate fi facut si de un criptanalist, n eventualitatea
interceptarii textului criptat.
Totusi, informatia secreta este necesara pentru calculul ulterior:

x2ed = X2ed (x) + Y2ed (x) c = Xd (x2e ) + Yd (x2e ) c,


unde valorile lui Xd si Yd se pot calcula recursiv pe baza lui x2e , determinat anterior.
Cum toate ipotezele Lemei 13.2 sunt satisfacute, vom avea x2ed = x (mod n). Ultima
componenta b2 a textului criptat da semnul corect al lui x.
Deci x se poate determina, iar textul clar w se obtine din x si b1 (a doua componenta
a textului criptat)
n felul urmator:
(
x
daca b1 = 0

Fie x0 =
sc
x s+ c daca b1 = 1

w+ c
x0 + 1
0
(mod n), ceea ce duce la w = 0
Atunci x =
c (mod n).
w c
x 1
conditiile din Exemplul 13.4, s
Exemplul 13.6 In
a decript
am mesajul (28, 0, 1). Folosim
E pentru a calcula n prima faza
x2e =

282 + 5
2 28
+
5
=
95
+
126
5
282 5 282 5

Reamintim, d = 16; deci vom calcula (modulo 143)

(mod 143).

13.2. SISTEMUL DE CRIPTARE WILLIAMS

X1 (x2e ) = 95 Y1 (x2e ) = 126 X2 (x2e ) = 31 Y2 (x2e ) = 59


X4 (x2e ) = 62 Y4 (x2e ) = 83 X8 (x2e ) = 108 Y8 (x2e ) = 139
X16 (x2e ) = 18 Y16 (x2e ) = 137

S-a obtinut 18 +137 5 = x


(mod 143). Pentru c
a b2 = 1, a trebuie s
a fie impar, deci
x = (18 + 137 5) = 125 + 6 5 (mod 143).
Cum b1 = 0, avem x0 = x si deci

126 + 6 5
(126 + 6 5)(124 6 5)
5=
w=
5 = 83 381 = 21 (mod 143)
2 5 62
124
124 + 6 5
Deci textul clar original a fost w = 21.
Lucrand detaliat, se pare ca sistemul de criptare Williams este mai dificil decat RSA.
Totusi ordinele de complexitate ale criptarii si decriptarii sunt egale n celel doua sisteme.
D Criptanaliza: Daca s-au aflat p si q, m si d se pot calcula imediat. Invers, sa
presupunem ca criptanalistul a gasit ntr-un mod oarecare un algoritm de decriptare.
Atunci el poate folosi acest algoritm la descompunerea lui n astfel.
!
2
x

c
In prima faza se alege prin ncercari un numar x care verifica
= 1.
n

Apoi x este criptat alegand b1 = 0 si = x + c. Deci, ca prima ipoteza, pentru


simbolul Jacobi este folosita valoarea (falsa) +1. Fie (E, 0, b2 ) textul criptat rezultat.
Acestuia, criptanalistul i aplica algoritmul pentru a stabili textul clar w corespunzator;
acest w nu este identic cu x deoarece procesul de criptare a plecat de la o ipoteza falsa.
Prin simplu calcul se arata ca (x w, n) este p sau q (vezi [6])
Aceasta nseamna ca si criptanalistul este n masura sa descompuna pe n.
Exemplul 13.7 Reluam cadrul descris n Exemplul 13.4. Alegem x = 138, care satisface
condit ia de plecare pentru criptanaliz
a. Se iau ca valori init iale false b1 = 0, =
138 + 5. Atunci = / = 73 + 71 5.
Deoarece 73 este impar, se obtine b2 = 1. Pentru criptare se calculeaz
a iterativ (modulo
143):
X1 () = 73
X3 () = 9
X6 () = 18
X12 () = 75

Y1 () = 71
Y3 () = 139
Y6 () = 71
Y12 () = 125

X2 () = 75
X5 () = 133
X11 () = 139
X23 () = 42

Y2 () = 70
Y5 () = 44
Y11 () = 82
Y23 () = 73

Deducem c
a E = 42 731 = 28 (mod 143), deci textul criptat este (28, 0, 1).
Acesta a fost nsa criptat anterior n w = 21. Se obtine imediat factorizarea lui n
deoarece (x w, n) = (117, 143) = 13.
Deci, sistemul Williams nu rezista la un atac cu text clar ales.


PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

10

13.3

Sistemul de criptare McEliece

Sistemul de criptare McEliece propus n 1978 este destul de apropiat de problema


rucsacului. El utilizeaza drept cadru teoria codurilor liniare (pentru detalii vezi [1]); aici,
n general decodificarea unui cod liniar binar corector de erori este o problema NP - completa. Pentru unele clase de coduri sunt construiti algoritmi de decodificare polinomiali;
o astfel de clasa o formeaza codurile Goppa, care constituie baza sistemului de criptare
McEliece.
Definitia 13.2 Fie k, n N (k n). Un (n, k) - cod liniar binar este un subspatiu liniar
C Z2n de dimensiune k.
O matrice generatoare a lui C este o matrice binar
a k n ale c
arei linii formeaz
ao
baz
a a lui C.
arul de elemente nenule din a.
Pentru a Z2n se defineste ponderea w(a) = num
Pentru a, b Z2n a = (a1 , . . . , an ), b = (b1 , . . . , bn ), se defineste distanta Hamming
prin d(a, b) = w(a b).
Pentru un (n, k) - cod liniar binar C, distanta minim
a este
dC = min{d(a, b)|a, b C, a 6= b}
Un (n, k, d) - cod este un (n, k) - cod de distant
a minim
a d.
Rolul unui cod corector de erori este de a corija modificari aleatoare care apar n transmiterea unui set de date (binare) printr-un canal. In linii mari, acesta functioneaza astfel:
daca a este un mesaj de informatie de k biti, Alice l codifica ntr-un cuvant de n biti
b = aG, unde G este matricea generatoare a codului.
Bob primeste un mesaj r Z2n (eventual r = b) si cauta un cuvant b1 C cu d(r, b1 )
minima posibil. Va decodifica r n b1 dupa care va calcula un mesaj de informatie a1
astfel ca b1 = a1 G. Cazul ideal este acela cand b1 = b, a1 = a (adica erorile au fost
acoperite corect). Se cunoaste ca, daca numarul de erori care apar nu depaseste (d 1)/2,
acest procedeu corecteaza efectiv erorile.
Daca Bob cauta cuvantul - cod cel mai apropiat comparand r pe rand cu fiecare element
din C, cum sunt 2k astfel de cuvinte, algoritmul va fi exponential, deci nefunctional.
Majoritatea algoritmilor de decodificare se bazeaza pe notiunea de sindrom, definit
astfel:
Matricea de control a unui (n, k, d) - cod liniar binar de matrice generatoare G este o
matrice H de dimensiune (n k) n ale carei linii formeaza o baza a unui spatiu liniar
ortogonal. Evident, GH T = 0.
Pentru un cuvant r Z2n , se numeste sindrom secventa de n k biti definita HrT .
Teorema 13.2 a este un cuvant - cod dac
a si numai dac
a HaT = 0.
plus, daca a C, e Z n si r = a + e, atunci HrT = HeT .
In
2

13.3. SISTEMUL DE CRIPTARE MCELIECE

11

Pentru demonstratie se poate consulta de asemenea [1].


e poate fi considerat drept vectorul de erori care au aparut n transmiterea mesajului
a. Teorema anterioara afirma ca sindromul nu depinde decat de erori, nu de cuvantul cod transmis.
Aceasta observatie sugereaza o metoda de decodificare bazata pe sindrom. Se calculeaza ntai s = HrT . Daca s = 0, decodificarea lui r este tot r. Altfel, se ncearca toate
cuvintele de pondere 1. Pentru fiecare astfel de cuvant e se calculeaza HeT . Daca s-a
gasit un e cu HeT = s, r se decodifica n r e. In caz contrar se ncearca vectorii de
pondere 2, 3, . . . , [(d 1)/2]. Daca nu s-a gasit nici un cuvant e cu HeT = s, se deduce
ca au aparut mai mult de [(d 1)/2] erori n cursul transmisiei.
Metoda prezentata functioneaza pentru toate codurile liniare. Pentru anumite clase
speciale de coduri exista algoritmi polinomiali de decodificare si corectare a erorilor; n
cazul general nsa problema este N P - completa.
Algoritmul de criptare McElliece se bazeaza pe aceasta idee. Trapa sa secreta o constituie o clasa de coduri pentru care exista algoritmi eficace de decodificare - codurile Goppa.
In plus, exista un numar mare de coduri Goppa neechivalente, avand aceiasi parametri.
Algoritmul de criptare McEliece este urmatorul:
Fie G matricea generatoare a unui (n, k, d) - cod Goppa cu n = 2m , d = 2t + 1, k =
n mt.
Se definesc S o matrice inversabila k k peste Z2 si P o matrice de permutare n n
(matrice n care pe fiecare linie si coloana exista o valoare 1, iar restul elementelor
sunt 0).
Fie P= Z2k , C= Z2n , K= {(G, S, P, G0 ) | G0 = S G P }.
G0 este publica iar G, S, P sunt secrete.
Pentru K = (G, S, P, G0 ) se defineste
eK (a, e) = aG0 + e
unde e Z2n este un cuvant aleator2 de pondere t.
Bob decripteaza un mesaj b Z2n astfel:
1. Calculeaza b1 = bP 1 ;
2. Decodifica b1 obtinand b1 = a1 + e1 unde a1 C;
3. Calculeaza a0 Z2k astfel ca a0 G = a1 ;
4. Calculeaza a = a0 S 1 .
Corectitudinea algoritmului de decriptare:
Deoarece b1 = bP 1 = (aG0 + e) P 1 = (aS G P + e) P 1 = (aS) G + eP 1
iar eP 1 este un vector de pondere cel mult t, algoritmul de decodificare al codului de
matrice generatoare G poate decodifica corect pe b1 si obtine un mesaj sursa a0 = aS.
La ultimul pas se afla mesajul initial a = a0 S 1 .


PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

12

Nu vom intra n detalii privind definitia codurilor Goppa ([1]). Acestea pot fi privite
nsa drept coduri liniare cu parametrii n = 2m , d = 2t + 1, k = n mt. Pentru o
implementare practica referitor la criptare, McEliece sugereaza m = 10, t = 50, ceea ce
corespunde unui (1024, 524, 101) - cod Goppa3 . Un text clar este o secventa de 524 biti,
iar un text criptat este o secventa de 1024 biti. Cheia publica este o matrice binara de
dimensiuni 524 1024.
Exemplul 13.8 Vom exemplifica algoritmul pe un (8, 2, 5) - cod Goppa (deci n = 23 , k =
2, d = 5). Acest cod - extrem de mic (are doar 4 cuvinte) este generat de matricea
G=

0 0 1 1 1 1 1 1
1 1 0 0 1 0 1 1

S
a presupunem ca Bob alege matricile
!
1 0
1
S=
cu
S 1 =
1 1
1
si

0 1 0 0 0 0 0 0
0 0 0

0 0 0 1 0 0 0 0
1 0 0

0 0 0 0 0 0 1 0
0 0 0

1 0 0 0 0 0 0 0
0 1 0

1
P =
cu P =

0 0 1 0 0 0 0 0
0 0 0

0 0 0 0 0 1 0 0
0 0 0

0 0 0 0 1 0 0 0
0 0 1
0 0 0 0 0 0 0 1
0 0 0

0
1

1
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0

0
0
0
0
0
1
0
0

0
0
0
0
1
0
0
0

0
0
0
0
0
0
0
1

Matricea publica generata este deci


0

G = SGP =

1 0 1 0 1 1 1 1
1 1 0 1 0 1 1 0

S
a presupunem ca Alice vrea sa cripteze textul clar a = (0, 1) folosind vectorul - eroare
e = (0, 0, 1, 0, 0, 1, 0, 0) (ales aleator) de pondere 2. Textul criptat este
b = aG0 + e = (1, 1, 1, 1, 0, 0, 1, 0).
Dup
a receptionarea mesajului, Bob calculeaz
a nt
ai
1
b1 = bP = (1, 1, 1, 1, 1, 0, 0, 0),
pe care l scrie sub forma a1 + e1 unde a1 = (1, 1, 1, 1, 0, 1, 0, 0) este un cuv
ant - cod,
iar e1 = (0, 0, 0, 0, 1, 1, 0, 0) 6= e (din cauza nmultirii cu P 1 ).
Bob calculeaza apoi mesajul a0 = (1, 1), singurul cu proprietatea a0 G = a1 .
Ultimul pas este determinarea lui a = S 1 a0 = (0, 1), care este textul clar expediat de
Alice.
3

O analiza a securit
atii recomand
a parametrii n = 1024, t = 38, k 644.

13.4. EXERCIT
II

13

Algoritmul McElliece s-a dovedit sigur. Acest lucru rezulta din analiza celor doua
tipuri de atac posibile:
1. Din informatia publica, Oscar ncearca sa afle matricea G sau o matrice G1 a unui
cod Goppa echivalent (avand aceeasi parametri). Nu se cunoaste nici un algoritm
eficient pentru un astfel de demers.
2. Oscar ncearca sa afle mesajul clar a direct din textul criptat b. El ia aleator k
coloane din matricea publica G0 . Notand G0k , bk , ek restrictiile lui G0 , b respectiv e
la aceste k coloane, vom avea aG0k = bk + ek . Daca bk = 0 si G0k este nesingulara,
atunci a poate fi aflat rezolvand sistemul liniar aG0k = bk . Probabilitatea ca cei k
k
/Cnk , neglijabila
biti selectati sa nu faca parte din eroare (deci ek = bf 0 este Cnt
pentru valorile alese ale parametrior n, k, t.
Interesant, dar aceasta securitate este mult diminuata daca se foloseste alta clasa de coduri
liniare n locul codurilor Goppa.
Totusi, n ciuda securitatii sale si a vitezei relativ mari de criptare/decriptare sistemul
McElliece nu este folosit practic. Cauza principala o constituie cheia sa excesiv de mare.
De exemplu, pentru n = 1024, t = 38, k 644, cheia are aproximativ 219 biti.

13.4

Exercitii

13.1 Fie E curba eliptica y 2 = x3 + x + 28 peste Z71 .


1. Determinati numarul de puncte din E;
2. Ar
atati caE nu este ciclic;
3. Care este ordinul maxim al unui element din E ? G
asiti un astfel de element.
13.2 Fie E curba eliptica y 2 = x3 + x + 13 definit
ape Z31 . Se poate ar
ata c
a |E| = 34 si
c
a (9, 10) este de ordinul 34 n E. Sistemul de criptare Mezenes - Vanstome definit pe E

admite ca spatiu al textelor clare Z34


Z34
. Fie a = 25 exponentul secret al lui Bob.
1. Calculati = a;
2. Decriptati textul urmator:
((4, 9), 28, 7)((19, 28), 9, 13)((5, 22), 20, 17)((25, 16), 12, 27)
3. Dac
a presupunem ca fiecare text clar reprezint
a dou
a caractere alfabetice, convertiti
acest text clar n engleza (s-a folosit corespondenta A 1, . . . , Z 26).

14

PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA

13.3 Fie E curba eliptica y 2 = x3 + x + 6 peste Z11 .


(a) S
a se calculeze punctele lui E.
(b) Se aleg parametrii = (2, 7) si a = 7. Folosind sistemul de criptare El Gamal, sa
se cripteze mesajul x = (10, 9) cu valoarea aleatoare k = 3.
(c) Folosind sistemul de criptare Menezes - Vanstone si aceiasi parametrii, s
a se
cripteze mesajul x = (9, 1).
13.4 Demonstrati Lemele 13.1 si 13.2.
13.5 Fie curba eliptica E de ecuatie y 2 = x3 + x + 28 peste Z71 .
(a) S
a se determine numarul de puncte din E.
(b) Care este ordiunul maxim al unui element din E ? S
a se g
aseasc
a un element de
acest ordin.
13.6 Fie p > 3 un numar prim impar si a, b Zp . Dac
a ecuatia x3 + ax + b 0 (mod p)
are trei r
adacini distincte n Zp , aratati c
a grupul curbei eliptice corespunz
atoare (E, +)
nu este ciclic.
13.7 Fie E o curba eliptica definit
a peste Zp unde p > 3 este un num
ar prim. Sa
presupunem ca n = card(E) este prim si fie P E, P 6= O.
(a) Ar
atati ca logP (P ) = n 1.
(b) Dati un algoritm de calcul pentru n de complexitate O(p1/4 ) folosind teorema lui
Hasse si o varianta a algoritmului Shanks.
13.8 O reprezentare binara (an1 , an2 , . . . , a0 ) a num
arului ntreg a este n forma neadiacent
a (forma N AF ) daca nu exist
a dou
a valori consecutive nenule.
(a) Dati un algoritm de reprezentare a numerelor ntregi n forma N AF . Aplicati
acest algoritm pentru numerele 87, 112, 2047.
(b) Folosind reprezentarea N AF a lui 87, calculati 87P , unde P = (2, 6) este un punct
pe curba eliptica y 2 = x3 + x + 26 definit
a peste Z27 .

Bibliografie
[1] A. Atanasiu, Teoria Codurilor, Editura Universitatii Bucuresti, 2002
[2] A. Enge, Elliptic Curves and their applications to Cryptography, Kluwer Academic
Publ, 1999
[3] M. Rosing, Implementing Elliptic Curve Cryptography, Manning, 1998
[4] D. Stinton, Cryptography, theory and pratice, International Thompson Publishing
France, 1995
[5] A. Salomaa, Criptografie cu chei publice, Ed. Militara, 1994
[6] H.C.Williams, Some public-key criptofunctions as intractable as factorisation, Cryptologia, 9 (1985), 224-237.

15

Vous aimerez peut-être aussi