Successfully reported this slideshow.                                      Upcoming SlideShare
×

# Capítulo 8: Criptografía de curvas elípticas

371 views

Published on

Material del curso de criptografía impartido a alumnos de la carrera de ITC del ITESM Campus Morelia en el 2010.

Published in: Technology
• Full Name
Comment goes here.

Are you sure you want to Yes No Are you sure you want to  Yes  No

Are you sure you want to  Yes  No

Are you sure you want to  Yes  No

Are you sure you want to  Yes  No

Are you sure you want to  Yes  No
• Be the first to like this

### Capítulo 8: Criptografía de curvas elípticas

1. 1. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Criptograf´ıa de Curvas El´ıpticas Juan Manuel Garc´ıa Garc´ıa 14 de octubre de 2010 Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
2. 2. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Campos ﬁnitos Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m) Curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
3. 3. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Campo ﬁnito Un campo ﬁnito consiste de un conjunto ﬁnito de elementos F sobre el cual se deﬁnen un par de operaciones binarias + y ·, las cuales satisfacen las siguientes propiedades aritm´eticas: 1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo. 2. (F∗ = F − 0, ·) es un grupo abeliano, al que se denomina grupo multiplicativo del campo. 3. El producto tiene la propiedad distributiva respecto de la suma, esto es, a · (b + c) = a · b + a · c. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
4. 4. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) El orden de un campo ﬁnito es el n´umero de elementos en el campo. Existe un campo ﬁnito de orden q si y solo si q es la potencia de un n´umero primo. Si q es la potencia de un primo, existe esencialmente un solo campo ﬁnito de orden q al cual denotaremos como GF(q). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
5. 5. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) El campo ﬁnito GF(p) Sea p un n´umero primo. El campo GF(p), denominado un campo primo, est´a compuesto por el conjunto de enteros {0, 1, . . . , p − 1} con las siguientes operaciones aritm´eticas: ◮ Adici´on: Si a, b ∈ GF(p), entonces a + b = r, donde r es el residuo de la divisi´on de a + b entre p y 0 ≤ r ≤ p − 1. Esta operaci´on es conocida como la suma m´odulo p. ◮ Multiplicaci´on: Si a, b ∈ GF(p), entonces a · b = s, donde s es el residuo de la divisi´on de a · b entre p. A esta operaci´on se le conoce como multiplicaci´on m´odulo p. ◮ Inversi´on: Si a un elemento de GF(p) diferente de cero, el inverso de a m´odulo p, denotado como a−1, es el entero ´unico c ∈ GF(p) tal que a · c = 1. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
6. 6. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Ejemplo 1 El campo ﬁnito GF(23). Los elementos de GF(23) son {0, 1, 2, . . . , 22}. Ejemplos de operaciones aritm´eticas sobre GF(23) son: ◮ 12 + 20 = 9. ◮ 8 · 9 = 3. ◮ 8−1 = 3. El elemento 5 es un generador de GF(23). Las potencias de 5 son: 50 = 1 51 = 5 52 = 2 53 = 10 54 = 4 55 = 20 56 = 8 57 = 17 58 = 16 59 = 11 510 = 9 511 = 22 512 = 18 513 = 21 514 = 13 515 = 19 516 = 3 517 = 15 518 = 6 519 = 7 520 = 12 521 = 14 522 = 1. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
7. 7. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) El campo ﬁnito GF(2m ) El campo GF(2m), denominado un campo ﬁnito de caracter´ıstica dos o campo ﬁnito binario, puede ser visto como un espacio vectorial de dimensi´on m sobre el campo GF(2). Esto es, existen m elementos α0, α1, . . . , αm−1 en GF(2m) tales que cada elemento α ∈ GF(2m) puede ser escrito en forma ´unica como: α = a0α0 + a1α1 + · · · + am−1αm−1, donde ai ∈ {0, 1}. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
8. 8. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Al conjunto {α0, α1, . . . , αm−1} se le denomina una base de GF(2m) sobre GF(2). Dada una base tal, un elemento α del campo puede ser representado por la cadena de bits (a0a1 · · · am−1). La adici´on de elementos en el campo se realiza mediante el XOR bit a bit de sus representaciones vectoriales. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
9. 9. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Representaci´on en bases polinomiales Sea f (x) = xm + fm−1xm−1 + · · · + f2x2 + f1x + f0, donde fi ∈ {0, 1} para i = 0, 1, . . . , m − 1, un polinomio irreducible de grado m sobre GF(2). Entonces f (x) deﬁne una representaci´on de base polinomial de GF(2m), la cual describiremos a continuaci´on. El campo GF(2m) est´a compuesto por todos los polinomios sobre GF(2) de grado menor a m, GF(2m ) = am−1xm−1 + am−2xm−2 + · · · + a1x + a0 : ai ∈ {0, 1} . Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
10. 10. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Al elemento am−1xm−1 + am−2xm−2 + · · · + a1x + a0 usualmente se le denota por la cadena de bits (am−1am−2 · · · a1a0) de longitud m, de modo que GF(2m ) = {(am−1am−2 · · · a1a0) : ai ∈ {0, 1}} . Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
11. 11. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Se deﬁne entonces las siguientes operaciones aritm´eticas sobre los elementos de GF(2m) cuando se tiene una representaci´on de base polinomial con reducci´on polinomial f (x): ◮ Adici´on: Si (am−1am−2 · · · a1a0) y (bm−1bm−2 · · · b1b0) son elementos de GF(2m), entonces a + b = c = (cm−1cm−2 · · · c1c0) donde ci = ai + bi mod 2. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
12. 12. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) ◮ Multiplicaci´on: Si (am−1am−2 · · · a1a0) y (bm−1bm−2 · · · b1b0) son elementos de GF(2m), entonces a · b = r = (rm−1rm−2 · · · r1r0) donde el polinomio rm−1xm−1 + rm−2xm−2 + · · · + r1x + r0 es el residuo de la divisi´on de (am−1xm−1 + · · · + a1x + a0) · (bm−1xm−1 + · · · + b1x + b0) entre f (x). ◮ Inversi´on: Si a es un elemento de GF(2m) diferente de cero, el inverso de a, denotado por a−1, es el elemento c ∈ GF(2m) tal que c · a = 1. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
13. 13. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Una representaci´on en base polinomial para GF(24 ). Sea f (x) = x4 + x + 1. la reducci´on polinomial. Entonces los 16 elementos de GF(24) son: 0 1 x x + 1 (0000) (0001) (0010) (0011) x2 x2 + 1 x2 + x x2 + x + 1 (0100) (0101) (0110) (0111) x3 x3 + 1 x3 + x x3 + x + 1 (1000) (1001) (1010) (1011) x3 + x2 x3 + x2 + 1 x3 + x2 + x x3 + x2 + x + 1 (1100) (1101) (1110) (1111) Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
14. 14. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Deﬁnici´on de campo ﬁnito Campo ﬁnito GF(p) El campo ﬁnito GF(2m ) Algunos ejemplos de operaciones aritm´eticas sobre GF(24) son: ◮ (1101) + (1001) = (0100). ◮ (1101) · (1001) = (1111) dado que (x3 + x2 + 1) · (x3 + 1) = x6 + x5 + x2 + 1 y (x6 + x5 + x2 + 1) m´od (x4 + x + 1) = x3 + x2 + x + 1. ◮ (1101)−1 = (0100). El elemento α = x = (0010) es un generador del grupo multiplicativo GF(24)∗, dado que es de orden 15 como se muestra en el siguiente c´alculo: α1 = (0010) α2 = (0100) α3 = (1000) α4 = (0011) α5 = (0110) α6 = (1100) α7 = (1011) α8 = (0101) α9 = (1010) α10 = (0111) α11 = (1110) α12 = (1111) α13 = (1101) α14 = (1001) α15 = (0001) Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
15. 15. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Sea GF(p) un campo ﬁnito de caracter´ıstica p = 2, 3, y sean a, b ∈ GF(p) tales que satisfacen la desigualdad 4a3 + 27b2 = 0. Una curva el´ıptica E(a,b) sobre GF(p) se deﬁne como el conjunto de puntos (x, y) ∈ GF(p) × GF(p) que satisfacen la ecuaci´on y2 = x3 + ax + b (1) junto con un punto especial O, denominado el punto al inﬁnito. Estos puntos forman un grupo abeliano bajo la operaci´on aditiva que describiremos a continuaci´on. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
16. 16. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Aritm´etica de puntos en curvas el´ıpticas sobre GF(p) Sea E(a,b) una curva el´ıptica sobre GF(p) y sean P y Q dos puntos sobre E(a,b). Se tiene que P + O = O + P = P. Sean P = (x1, y1) y Q = (x2, y2). Entonces −P = (x1, −y1) y P + (−P) = O. Si Q = −P entonces P + Q = (x3, y3) donde x3 = λ2 − x1 − x2 y3 = λ(x1 − x3) − y1, y λ = (y2 − y1)/(x2 − x1) si P = Q (3x2 1 + a)/(2y1) si P = Q Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
17. 17. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Curva el´ıptica sobre GF(23) Sea p = 23 y consid´erese la curva el´ıptica E : y2 = x3 + x + 1 deﬁnida sobre GF(23). Obs´ervese que 4a3 + 27b2 = 4 + 27 = 31 ≡ 8 (m´od 23). Los puntos en E son O y los siguientes: (0,1) (0,22) (1,7) (1,16) (3,10) (3,13) (4,0) (5,4) (5,19) (6,4) (6,19) (7,11) (7,12) (9,7) (9,16) (11,3) (11,20) (12,4) (12,19) (13,7) (13,16) (17,3) (17,20) (18,3) (18,20) (19,5) (19,18). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
18. 18. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas El grupo E tiene 28 puntos (incluyendo al punto al inﬁnito O). Los siguientes son ejemplos de operaciones en el grupo: ◮ Sean P1 = (x1, y1) = (3, 10), P2 = (x2, y2) = (9, 7), P1 + P2 = (x3, y3). Tenemos que: λ = y2 − y1 x2 − x1 = 7 − 10 9 − 3 = −3 6 = 11, x3 = λ2 − x1 − x2 = 112 − 3 − 9 = 6 − 3 − 9 = −6 = 17, y3 = λ(x1 −x3)−y1 = 11(3−17)−10 = 11(9)−10 = 89 = 20. Por lo tanto, P1 + P2 = (17, 20). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
19. 19. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas ◮ Sea P1 = (x1, y1) = (3, 10), 2P1 = (x3, y3). Entonces λ = 3x2 1 + a 2y1 = 3(32) + 1 20 = 5 20 = 1 4 = 6, x3 = λ2 − 2x1 = 62 − 6 = 30 = 7, y3 = λ(x1 −x3)−y1 = 6(3−7)−10 = −24−10 = −11 = 12. Entonces 2P1 = (7, 12). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
20. 20. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Curvas el´ıpticas sobre GF(2m ) Sea GF(2m) tal campo ﬁnito para alguna m ≥ 1. Una curva el´ıptica E(a,b) sobre GF(2m) se deﬁne como el conjunto de puntos (x, y) ∈ GF(2m) × GF(2m) que son soluciones de la ecuaci´on y2 + xy = x3 + ax2 + b (2) donde a, b ∈ GF(2m) y b = 0, junto con el punto de la curva al inﬁnito, O. Los puntos de la curva forman un grupo abeliano bajo la operaci´on aditiva que describiremos a continuaci´on. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
21. 21. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Aritm´etica de puntos en curvas el´ıpticas sobre GF(2m ) Sea E(a,b) una curva el´ıptica sobre GF(2m). Sea P = (x1, y1) un punto sobre E(a,b). Deﬁnimos −P como (x1, x1 + y1), de modo que P + (−P) = (−P) + P = O. Ahora supongamos que P y Q son diferentes de O y Q = −P. Sean P = (x1, y1) y Q = (x2, y2) entonces P + Q = (x3, y3) donde x3 = λ2 + λ + x1 + x2 + a y3 = λ(x1 − x3) + x3 + y1, y λ = (y2 + y1)/(x2 + x1) si P = Q (x2 1 + y1)/x1 si P = Q Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
22. 22. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Curva el´ıptica sobre GF(24 ). Consid´erese GF(24) representado por el trinomio irreducible f (x) = x4 + x + 1. Consid´erese la curva el´ıptica E : y2 + xy = x3 + α4x2 + 1 sobre GF(24). Los puntos en E son O y los siguientes: (0, 1) (1, α6) (1, α13) (α3, α8) (α3, α13) (α5, α3) (α5, α11) (α6, α8) (α6, α14) (α9, α10) (α9, α13) (α10, α) (α10, α8) (α12, 0) (α12, α12). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
23. 23. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Si P = (α6, α8) y Q = (α3, α13), entonces algunos ejemplos de operaciones aritm´eticas son los siguientes: ◮ P + Q = (1, α13). ◮ 2P = (α10, α8). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
24. 24. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Descripci´on geom´etrica de la suma P + Q = R Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
25. 25. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Descripci´on geom´etrica de la duplicaci´on 2 · P = R Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
26. 26. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Potencias sobre curvas el´ıpticas Sean E una curva el´ıptica y P un punto sobre la curva. Si n es un entero positivo, deﬁnimos a la potencia n de P, denotada por nP, como nP = P + P + · · · + P n veces . Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
27. 27. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Si P es un punto sobre E, deﬁnimos al orden de P, denotado por ord(P), como al menor entero n tal que nP = O. Puede observarse que si n = ord(P) y k1 ≡ k2 (mod n) entonces k1P = k2P. Dados dos puntos P y Q sobre E, el problema del logaritmo discreto sobre curvas el´ıpticas consiste en encontrar una k, suponiendo que existe, tal que Q = kP. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
28. 28. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Curvas el´ıpticas sobre GF(p) Curvas el´ıpticas sobre GF(2m ) Aritm´etica de puntos en curvas el´ıpticas Logaritmo discreto sobre curvas el´ıpticas Los algoritmos conocidos a la fecha para resolver el problema del logaritmo discreto sobre curvas el´ıpticas (PLDCE) son los siguientes: 1. Busqueda Exhaustiva. 2. Algoritmo de Pohlig-Hellman. 3. Algoritmo de Paso-Enano Paso-Gigante. 4. Algoritmo Rho de Pollard. 5. Algoritmo Rho Paralelizado. 6. Algoritmo Lambda de Pollard. 7. Logaritmos M´ultiples. 8. Curvas el´ıpticas supersingulares. 9. Curvas definidas sobre un campo peque˜no. 10. Criptoan´alisis cu´antico. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
29. 29. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Conﬁguraci´on del sistema y generaci´on de claves En primer lugar se deben elegir un campo ﬁnito subyacente GF(q), una curva el´ıptica E deﬁnida sobre GF(q), y un punto P sobre E de orden primo n. El campo GF(q), la curva E, el punto P y el orden n forman los par´ametros del sistema y son p´ublicos. Para generar sus claves, cada principal en el sistema debe realizar el siguiente procedimiento: 1. Elegir un n´umero entero aleatorio d tal que 1 ≤ d < n. 2. Calcular el punto Q := dP. 3. La clave p´ublica del principal consiste en el punto Q. 4. La clave privada del principal es el entero d. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
30. 30. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Esquema de cifrado Si el principal B desea enviar el mensaje M en forma cifrada al principal A debe realizar el procedimiento que se describe a continuaci´on: 1. Obtener la clave p´ublica Q del principal A. 2. Representar al mensaje M por un elemento del campo m ∈ GF(q). 3. Seleccionar un entero aleatorio k tal que 1 ≤ k < n. 4. Calcular el punto (x1, y1) := kP. 5. Calcular el punto (x2, y2) := kQ. Si x2 = 0 entonces ir al paso 3. 6. Calcular c := m · x2. 7. Transmitir el dato cifrado (x1, y1, c) a A. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
31. 31. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Esquema de descifrado Una vez que A recibe el mensaje cifrado (x1, y1, c) de B, para descifrarlo realiza los siguientes pasos: 1. Calcula el punto (x2, y2) := d(x1, y1), usando su clave privada d. 2. Recupera el dato m calculando m := c · x−1 2 . Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
32. 32. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Firma digital Supongamos que A desea ﬁrmar el mensaje M a enviar a B. Entonces A debe realizar el siguiente procedimiento: 1. Usar un algoritmo de hash para calcular el valor de hash e := H(M). 2. Seleccionar un entero aleatorio k tal que 1 ≤ k < n. 3. Calcular el punto (x1, y1) := kP y hacer r := x1 mod n. 4. Usar su clave privada para calcular s := k−1(e + rd) mod n. 5. A envia a B el mensaje M y su ﬁrma (r, s). Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
33. 33. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Veriﬁcaci´on de la ﬁrma digital Si el principal B desea veriﬁcar la ﬁrma (r, s) de A para el mensaje M, debe realizar los siguientes pasos: 1. Obtener la clave p´ublica Q del principal A. 2. Si (r mod n) = 0 entonces rechazar la ﬁrma. 3. Calcular el valor de hash e := H(M). 4. Calcular s−1 mod n. 5. Calcular u := s−1 e mod n y v := s−1 r mod n. 6. Calcular al punto (x1, y1) := uP + vQ. 7. Aceptar la ﬁrma de A para el mensaje M si y solo si (x1 mod n) = r. Si r = 0 entonces la ecuaci´on de la ﬁrma s = k−1 (e + rd) no involucra la clave privada d, y de ah´ı la condici´on en el paso 4. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
34. 34. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Algoritmo binario Sea E una curva el´ıptica deﬁnida sobre un campo ﬁnito GF(q) y sea P un punto sobre E de orden n. Sea k un entero positivo. Deseamos calcular la potencia kP. Sea k = (bm−1bm−2bm−3 · · · b2b1b0)2 la expansi´on binaria de k, donde m es tal que bm−1 = 1. Entonces k = bm−12m−1 + bm−22m−2 + ... + b222 + b12 + b0. (3) Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
35. 35. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Utilizando la expansi´on de Horner tenemos k = (· · · ((bm−12 + bm−2)2 + · · · + b1)2 + b0) (4) de donde kP = 2(· · · 2(2(2(bm−1P) + bm−2P) + · · · + b1P) + b0. (5) Construyamos entonces la siguiente sucesi´on de puntos sobre la curva, P1 = 2P (6) y Pi = 2Pi−1 si bm−i = 0 2Pi−1 + P si bm−i = 1 (7) para i = 2, · · · , m. Podemos f´acilmente observar que Pm = kP. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
36. 36. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado El algoritmo binario requiere de ⌊log k⌋ duplicaciones de puntos y de H(k) − 1 sumas. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
37. 37. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado Cadenas de adici´on substracci´on En las curvas el´ıpticas el inverso de un punto puede obtenerse f´acilmente. ◮ Para las curvas y2 = x3 + ax + b sobre GF(p) el inverso de (x, y) es (x, −y). ◮ Para las curvas y2 + xy = x3 + ax2 + b sobre GF(2m) el inverso de (x, y) es (x, x + y). Por lo tanto pueden considerarse representaciones de la forma k = i ci 2i (8) donde ci ∈ {−1, 0, 1}. Una forma no adyacente (FNA) es una representaci´on con ci ci+1 = 0. Se ha mostrado que H(FNA) ≈ m/3. Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
38. 38. Outline Campos ﬁnitos Curvas el´ıpticas Criptosistemas de curvas el´ıpticas Cifrado y descifrado Firma digital Evaluaci´on de potencias sobre curvas el´ıpticas Trabajo desarrollado ◮ Implementaci´on de primitivas criptogr´aﬁcas sobre curvas el´ıpticas deﬁnidas en el campo GF(2m) ◮ Desarrollado en Gnu C++ para el sistema operativo Linux ◮ Portado posteriormente al sistema operativo Windows ◮ Actualmente ha sido portado a PDA con Linux Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas