1. Outline
Campos finitos
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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Campos finitos
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito GF(2m
)
Campo finito
Un campo finito consiste de un conjunto finito de elementos F
sobre el cual se definen 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito GF(2m
)
El orden de un campo finito es el n´umero de elementos en el
campo. Existe un campo finito 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 finito de orden q al cual
denotaremos como GF(q).
Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
5. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito GF(2m
)
El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito GF(2m
)
Ejemplo 1 El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito GF(2m
)
El campo finito GF(2m
)
El campo GF(2m), denominado un campo finito de caracter´ıstica
dos o campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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) define 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito GF(2m
)
Se define 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Definici´on de campo finito
Campo finito GF(p)
El campo finito 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. Outline
Campos finitos
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 finito 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 define 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 infinito.
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. Outline
Campos finitos
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. Outline
Campos finitos
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
definida 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. Outline
Campos finitos
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 infinito 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. Outline
Campos finitos
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. Outline
Campos finitos
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 finito para alguna m ≥ 1.
Una curva el´ıptica E(a,b) sobre GF(2m) se define 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
infinito, 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. Outline
Campos finitos
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). Definimos −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. Outline
Campos finitos
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. Outline
Campos finitos
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. Outline
Campos finitos
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. Outline
Campos finitos
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. Outline
Campos finitos
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, definimos 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. Outline
Campos finitos
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, definimos 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. Outline
Campos finitos
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. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Cifrado y descifrado
Firma digital
Evaluaci´on de potencias sobre curvas el´ıpticas
Trabajo desarrollado
Configuraci´on del sistema y generaci´on de claves
En primer lugar se deben elegir un campo finito subyacente GF(q),
una curva el´ıptica E definida 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. Outline
Campos finitos
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. Outline
Campos finitos
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. Outline
Campos finitos
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 firmar 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 firma (r, s).
Juan Manuel Garc´ıa Garc´ıa Criptograf´ıa de Curvas El´ıpticas
33. Outline
Campos finitos
Curvas el´ıpticas
Criptosistemas de curvas el´ıpticas
Cifrado y descifrado
Firma digital
Evaluaci´on de potencias sobre curvas el´ıpticas
Trabajo desarrollado
Verificaci´on de la firma digital
Si el principal B desea verificar la firma (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 firma.
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 firma de A para el mensaje M si y solo si (x1 mod n) = r.
Si r = 0 entonces la ecuaci´on de la firma 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. Outline
Campos finitos
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 definida sobre un campo finito 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. Outline
Campos finitos
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. Outline
Campos finitos
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. Outline
Campos finitos
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. Outline
Campos finitos
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´aficas sobre curvas
el´ıpticas definidas 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