Académique Documents
Professionnel Documents
Culture Documents
y3 = (x1 x3 ) y1 ,
y2 y1
x2 x1
3x21 +a
2y1
daca P 6= Q
daca P = Q
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
p + 1 2 p card(E) p + 1 + 2 p
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
PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLICA
13.1.1
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
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
xi + xi
2
xi xi
xi xi
=
xx
2 c
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 .
a1 + b 1 c a2 + b 2 c
a1 a2 (mod n) si b1 b2 (mod n)
= 1 si (s, n) = 1
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.
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).
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:
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
(mod 143).
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
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
11
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
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
14
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