Академический Документы
Профессиональный Документы
Культура Документы
curvas elpticas
Lloren Huguet Rotger
Josep Rif Coma
Juan Gabriel Tena Ayuso
PID_00185109
Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario a
una licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa de
Creative Commons. Podis copiarlos, distribuirlos y transmitirlos pblicamente siempre que citis
el autor y la fuente (FUOC. Fundaci per a la Universitat Oberta de Catalunya), no hagis un uso
comercial y no hagis una obra derivada. La licencia completa se puede consultar en
http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
http://www.exabyteinformatica.com
CC-BY-NC-ND PID_00185109
ndice
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.
1.1.
Definiciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.
Plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.
11
1.4.
2.
3.
4.
5.
Puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.4.1.
17
1.4.2.
17
1.4.3.
18
1.4.4.
19
21
2.1.
Ecuacin de Weierstrass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.2.
24
2.2.1.
Ley de grupo en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.2.2.
Ecuacin general de P + Q . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
34
3.1.
34
3.2.
38
40
4.1.
40
4.2.
Eleccin de la curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
4.3.
43
4.3.1.
43
4.3.2.
44
47
5.1.
Protocolos criptogrficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.1.1.
Protocolo de Diffie-Helman . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.1.2.
49
5.2.
Criptosistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.3.
Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.4.
Firma digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
5.5.
53
CC-BY-NC-ND PID_00185109
6.
5.5.1.
Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.5.2.
Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
55
6.1.
ECC estndares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
6.1.1.
Estndares principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
6.1.2.
Estndares de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
6.2.
59
6.2.1.
60
6.2.2.
Ventajas de la ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
6.2.3.
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
Ejercicios de autoevaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
CC-BY-NC-ND PID_00185109
Introduccin
Veamos unas pinceladas de estas relaciones para centrarnos despus en la aplicacin de las curvas elpticas a la criptografa. En un principio podemos pensar
en una curva elptica como el conjunto de soluciones de una ecuacin de la
forma:
y2 = x3 + ax + b.
El problema de los
nmeros congruentes
Fue enunciado por primera
vez por el matemtico persa
al-Karaji (hacia el siglo X a.
C.). Actualmente, la solucin
del problema depende de la
conjetura de
Birch-Swinnerton-Dyer sobre
curvas elpticas. El problema
es uno de los siete problemas
del milenio que el Clay
Mathematics Institute dot,
en el ao 2000, con un
premio de un milln de
dlares para quien aportara la
solucin de cualquiera de
ellos.
mente, A. Wiles prob que ninguna curva poda contradecir esta conjetura
y, por lo tanto, qued probado que no existe ningn contraejemplo al ltimo teorema de Fermat.
En el campo de la criptografa, la aplicacin de estas curvas la podemos encontrar en la descomposicin de un nmero en factores, en los sistemas criptogrficos y en los tests de primalidad, estos ltimos desarrollados por Bosma,
Goldwasser-Killian, Atkin y Lenstra entre otros.
H.W. Lenstra ha obtenido un nuevo mtodo de factorizacin que es, en muchos aspectos, mejor que los conocidos anteriormente. La mejora y eficiencia
Discriminante
El discriminante de una curva
elptica y2 = x3 + ax + b viene
dado por = 4a3 + 27b2 y es
nulo si y solo si la curva tiene
puntos singulares (puntos en
los que las dos derivadas
parciales se anulan).
CC-BY-NC-ND PID_00185109
Los avances en estos mtodos as como en las prestaciones de los ordenadores exigen nmeros cada vez mayores a fin de poder garantizar la seguridad
de los sistemas criptogrficos, lo que representa un grave inconveniente a la
hora de implementar los procesos de generacin y distribucin de las claves
secretas. Este problema se soluciona, en parte, usando sistemas de cifrado con
curvas elpticas. Estos sistemas ofrecen un nivel de seguridad equivalente al
de los mtodos tradicionales (RSA, ELGamal,...) pero utilizando un nmero
menor de dgitos. El resultado son claves ms pequeas, caracterstica que resulta especialmente til para la seguridad en aplicaciones basadas en circuitos
integrados y tarjetas inteligentes.
CC-BY-NC-ND PID_00185109
Objetivos
En los materiales didcticos de este mdulo el estudiante encontrar los contenidos necesarios para alcanzar los objetivos siguientes:
CC-BY-NC-ND PID_00185109
1.1.
Definiciones previas
Ver tambin
En el mdulo Cuerpos
finitosde esta asignatura
encontraris de forma
detallada algunos de los
conceptos que tambin
usaremos en este mdulo.
CC-BY-NC-ND PID_00185109
10
Nota
Anlogamente se define el
espacio proyectivo
n-dimensional
Pn = Kn+1 {0}/ , cuyas
clases de equivalencia se
denominan puntos y se
denotan por
(x0 : x1 : : xn ).
Algoritmo 1.2.
P2 U3 K2
(x : y : z) ( xz , yz )
Los puntos proyectivos con z = 0 forman lo que se denomina recta del infinito.
Observacin
Ejemplo 1.1.
Dado F[x,y,z], un polinomio homogneo de grado r, no tiene sentido dar valores a F en el plano proyectivo. Por ejemplo, si F[x,y,z] = x3 + 3y2 z + z3 , entonces
(1 : 1 : 1) = (2 : 2 : 2), pero F[1,1,1] = 5 /= 40 = F[2,2,2].
Ahora bien, s que tiene sentido decir que F[x,y,z]=0 puesto que si /= 0,
F[x,y,z] = r F[x,y,z]; en consecuencia, si F es un polinomio homogneo de
grado r, entonces F[x,y,z] = 0 si y solo si F[x,y,z] = 0.
CC-BY-NC-ND PID_00185109
11
Relacin afn-proyectivo
Consideremos como antes el conjunto Ui := {(x0 : : xn ) Pn |xi /= 0} Pn .
Algoritmo 1.4.
An Ui Pn
zi +1
zi
, . . . , zzni ) (z0 ; . . . ; zn )
Ejemplo 1.2.
Coordenadas:
Algoritmo 1.5.
A2 U2 P2
(1,2) (x : y : z) = (1 : 2 : 1)
(2, 12 ) (x : y : z) = (4 : 1 : 2)
Polinomios:
Algoritmo 1.6.
K[x,y] K[x,y,z]
x2 + x3 + xy x2 z + x3 + xyz
x + x2 y + 1 xz2 + x2 y + z3
1.3.
Un cuerpo K es la clausura
algebraica de un cuerpo K si
K K y K mnimo, con la
propiedad de que cualquier
polinomio de K [x] se
descompone en factores de
grado uno.
CC-BY-NC-ND PID_00185109
12
Recordar
f
f
(p)(x a) +
(p)(y b) = 0
x
y
f
(p) significa
x
calcular la derivada parcial de
f (x) respecto a la variable x y
dar valores en el punto p.
La notacin
CC-BY-NC-ND PID_00185109
13
Observacin
mp (C) = 0 p C.
mp (C) = 1 p es un
punto simple de C.
Si mp (C) = 2, decimos
que p es un punto doble.
Observacin
Ejemplo 1.3.
Supongamos que char(K) = 2,3. Consideramos la curva C : y2 = x3 + ax2 . De otro modo,
sea f (x,y) = x3 + ax2 y2 , donde a es un valor constante a K.
La curva C, tiene puntos singulares? Y, en caso afirmativo, qu multiplicidad tienen?
Para responder la primera cuestin, tal y como hemos dicho en la definicin 1.9,
calcularemos las derivadas parciales teniendo en cuenta que, adems, el valor de la
funcin f (x,y) debe ser cero en todos los puntos de la curva:
8
f
>
= 3x2 + 2ax = 0
x
>
>
>
>
<
f
= 2y = 0
> y
>
>
>
>
:
f = x3 + ax2 y2 = 0
CC-BY-NC-ND PID_00185109
14
0,8
0,6
0,4
0,2
0,5
0,2
0,4
0,6
0,5
0,5
0
0,2
0,4
0,6
0,8
0,5
Una pregunta que quizs nos hayamos hecho a estas alturas es: por qu nos
interesar mirar las curvas en el plano proyectivo?
CC-BY-NC-ND PID_00185109
15
Estas dos curvas afines (las dadas por f y g) son curvas asociadas a la misma curva proyectiva. As, aunque una de las curvas afines contenga un punto
singular podramos encontrar otra curva afn asociada a la misma curva proyectiva que no tenga ninguno.
Ejemplo 1.4.
Corolario 1.15.
Una cnica definida por un polinomio irreducible F de grado 2, no
tiene puntos singulares.
Nuestra cnica es una curva proyectiva de grado 2; por lo tanto, por el teorema
de Bezout, la recta y la cnica tienen 2 puntos en comn, pero como el punto
singular tiene multiplicidad ms grande o igual que 2, el nmero de puntos en
Observacin
El uso de coordenadas
proyectivas tambin permite
realizar clculos en curvas
elpticas sobre cuerpos finitos
sin necesidad de hacer
operaciones de divisin en el
cuerpo. Esto es importante,
puesto que las operaciones
de dividir son
computacionalmente
costosas.
CC-BY-NC-ND PID_00185109
16
Observacin
Definimos el cuerpo p-dico Qp como el conjunto de todas las sucesiones fundamentales con esta norma, mdulo una cierta relacin de
equivalencia.
CC-BY-NC-ND PID_00185109
17
Una curva de grado 1 es una recta. La ecuacin de una tal recta se puede
escribir como Ax + By + C = 0.
Algoritmo 1.20.
t (t,
CAt
B
Una curva de grado 2 es una cnica. En el caso K = Q,R,..., (cuerpos ordenados) la ecuacin de una cnica, tras cambios apropiados de coordenadas, se
puede escribir de una de las formas siguientes:
1) x2 + y2 = c < 0 = .
2) x2 + y2 = 0 = un punto.
3) x2 = 0 = recta doble.
4) xy = 0 = dos rectas.
5) y = x2 = parbola.
6) xy = 1 = hiprbole.
7) x2 + y2 = c > 0 = elipse.
Los casos 5, 6, 7 son proyectivamente equivalentes; es decir, en el plano proyectivo, podemos pasar de unos a otros va un cambio de variables.
CC-BY-NC-ND PID_00185109
18
A
y, entonces la recta ser, A x + y 1 = 0.
B
As, el haz de rectas que pasan por p = (0,1) es {A x + y 1 = 0} A (o sea, variando los
valores del parmetro A , encontramos todas las rectas del haz).
Hagamos ahora la interseccin de las rectas del haz con la cnica. O sea, resolvamos el
sistema de ecuaciones:
8
<A x + y 1 = 0
: 2
x + y2 = 1
Haciendo operaciones, y = 1 A x
x2 +(1A x)2 = 1 x2 +12A x+A2 x2 = 1 x2 (1+A2 )2A x = 0 x(x(1+A2 )2A ) = 0.
Posibilidades:
8
>
<x = 0 punto (0,1)
>
:x(1 + A2) 2A = 0, x =
2A
punto
1 + A2
2A
1 A 2
,
2
1+A
1 + A2
As, escogiendo como punto fijo p = (0,1), parametrizamos la cnica inicial de la siguiente
manera:
Algoritmo 1.21.
2
2t
, 1t
1+t 2 1+t 2
2t 1 t 2
tambin lo es; en
,
1 + t2 1 + t2
2
2
particular si el cuerpo es infinito, la curva dada por f (x,y) = x + y 1 tiene infinitos
puntos racionales.
Para cada t del cuerpo base, el punto de la curva
Proposicin 1.22.
Si F[x,y,z] = 0 es una curva proyectiva irreducible de grado 3 con un
punto singular, entonces este es nico. Adems, este nico punto singular tiene multiplicidad 2.
Observacin
Hemos demostrado que, en
el caso de un cuerpo infinito,
si una cnica tiene un punto
racional, posee infinitos. Con
esto no podemos decir que
toda cnica tiene infinitos
puntos racionales porque
existen curvas sin ningn
punto racional; por ejemplo,
x2 + y2 = 1 sobre Q.
CC-BY-NC-ND PID_00185109
19
Demostracin: Suponemos que tenemos una cbica con dos puntos singulares. Consideramos la recta que pasa por estos dos puntos. La curva y la recta
tienen, como mnimo, 4 puntos en comn contando multiplicidades; pero,
teniendo en cuenta el teorema de Bezout, solo podran tener 3, a menos que
tuviesen una componente irreducible en comn, lo que como en el corolario
1.15 no puede ocurrir. Por tanto, la cbica solo puede tener un punto singular
a lo sumo.
Supongamos ahora que este punto singular tiene multiplicidad mayor que
dos. Entonces una recta que pase por este punto y otro punto cualquiera de
la cbica tendra, al menos, 4 puntos en comn con la curva y esto, por el
teorema de Bezout, no puede ocurrir.
Proposicin 1.23.
Un punto singular es siempre racional.
Resumiendo, una curva de grado 3 o no tiene puntos singulares o tiene exactamente un punto singular que es un nodo o una cspide y, adems, es racional.
Si tenemos una curva de grado 3 no singular, sabemos que una recta que pasa
por dos de sus puntos corta a la curva en un tercer punto. Adems, si dos de
estos punto son racionales, entonces el tercero tambin lo es. (Diofantes, siglo
III
a. C.).
CC-BY-NC-ND PID_00185109
20
Resumimos lo que hemos dicho hasta ahora sobre los puntos racionales sobre Q:
Curvas de grado 2: si hay un punto racional, hay infinitos. Hilbert y Hurwitz (1890) lo demuestran para las curvas de gnero cero (las de grado 1 y
2 lo son).
Curvas de grado 3: hay un conjunto infinito de puntos racionales, conjunto que es finitamente generado. Mordell, 1923.
Curvas de grado 4: hay un nmero finito de puntos racionales. Conjeturado por Mordell y demostrado por Faltings, 1983.
CC-BY-NC-ND PID_00185109
21
2.1.
Ecuacin de Weierstrass
Cualquier curva elptica puede ser escrita en P2 como una ecuacin cbica de
la siguiente forma:
Ax3 + Bx2 y + Cx2 z + Dxyz + Ey2 z + Fy2 x + Gy3 + Hz3 + Iz2 x + Jz2 y = 0
(1)
con a1 , . . . ,a6 K
y2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
Si char(K) /= 2, entonces
(y +
(y +
1
1
1
1
1
a x + a3 )2 = y2 + a1 xy + a3 y + a1 x2 + a23 + a1 a3 x
2 1
2
4
4
2
1
1
1
1
1
a x + a3 )2 ( a1 x2 + a23 + a1 a3 x) = x3 + a2 x2 + a4 x + a6
2 1
2
4
4
2
(2)
CC-BY-NC-ND PID_00185109
22
y := y +
1
1
a x + a3
2 1
2
y nos queda:
y2 = x3 + (a2 +
1
1
1
a )x2 + (a4 + a1 a3 )x + (a6 + a23)
4 1
2
4
y2 = x3 +
b2 2 b4
b
x + x+ 6
4
2
4
(3)
(x +
b2 3
b
b2
b23
) = x3 + 2 x2 + 2 2 x +
4
3 4
4 3
(3 4)3
y2 = (x +
b22
b2 3
b 3
) 3x
( 2 ) + 2b4 x + b6
3 4
3 4
(3 4)2
x := x +
b2
3 4
y2 = x3 + 27c4 x 54c6
(4)
y2 + xy = x3 + b2 x2 + b6 , si = b6 /= 0
y2 + b3 y = x3 + b4 x + b6 , si = b43 /= 0
(5)
CC-BY-NC-ND PID_00185109
23
y2 = x3 + a2 x2 + a6
(6)
8
y
y
4
2
0
0
3 2 1
6
8
10
1.000
800
600
400
200
0
0
200
400
600
800
1.000
Proposicin 2.2.
Sea K un cuerpo con char(K) /= 2,3, sea C una curva sobre K, C : y2 =
x3 + Ax + B. Sea = 4A3 + 27B2 el discriminante de la curva. Entonces:
= 0 y A /= 0 = C tiene un nodo.
CC-BY-NC-ND PID_00185109
24
Puntos singulares:
r
8
> f = 0
> x
<
x =
> f
>
:
=0
y
y = 0
x3 + Ax + B y2 = 0
A
,
3
A
3B
x + Ax + B = 0 x =
3
2A
entonces
x2 =
9B2 A
4A3 + 27B2 = 0
=
3
4A2
3B
9B
9B
9B
3B
entonces f2 x
,y 0 =
x2 y2 =
xy
x + y . As, el punto
2A
2A
2A
2A
3B
,0 es un punto doble y, segn la definicin1.13, sabemos que es un nodo.
2A
2.2.
no sern tres puntos diferentes; habr uno doble (el punto de tangencia). El
hecho de que L C, contando multiplicidades, d tres puntos se deduce del
teorema de Bezout (teorema 1.14).
CC-BY-NC-ND PID_00185109
2.2.1.
25
Ley de grupo en C
Sean P,Q C y L la recta que pasa por estos dos puntos (la tangente en el caso
P = Q), y R el tercer punto de interseccin de L y C. Sea L la recta que une R y
Proposicin 2.3.
La ley de grupo en C tiene las siguientes propiedades:
P + O = P, P C.
P + Q = Q + P, P,Q C.
(P + Q) + R = P + (Q + R), P,Q,R C
Para facilitar los clculos, tomaremos como punto base el punto del infinito
otacin
Q
P
P+Q
Para n Z, P C
escribiremos:
nP = P + + P n veces, si
n > 0.
nP = (P) + + (P) |n|
veces, si n < 0
0P = O
CC-BY-NC-ND PID_00185109
26
Algoritmo 2.4.
function Suma(n)
begin
for j 1 to n
if bj = 1 then parcial parcial + P endif
if j < r then parcial 2parcial endif
endfor
return(parcial)
end
Ejemplo 2.1.
Calcular 19P.
El nmero
es 10011. Entonces, de acuerdo con el algoritmo anterior
19 escrito enbinario
`
19P = 2 2 2 2(0 + P) + P + P.
Ejemplo 2.2.
Sea K = F23 , C : y2 = x3 + x + 1, P1 = (3,10), P2 = (9,7).
Calcular P1 + P2 .
Calcular 10P1
7 10
1
= = 12 = 11
93
2
10 = 11 3 + = = 10 10 = 0
CC-BY-NC-ND PID_00185109
27
8
>
< y = 11x
>
:
y2 = x3 + x + 1
6x2 = x3 + x + 1
luego
y3 = 11 17 = 3
f
f
(P)(x x1 ) +
(P)(y y1 ) = 0
x
y
Tenemos f (x,y) = y2 x3 x 1
8 f
(P1 ) = 4 1 = 18
>
>
< x
> f
>
:
(P1 ) = 20
y
CC-BY-NC-ND PID_00185109
28
y2 = x3 + x + 1
(6x + 15)2 = x3 + x + 1
entonces
0 = x3 13x2 + 5x + 6 = (x 3)2 (x x3 )
13 = 3 3 x3 = x3 = 6 + 13 = 7
y3 = 6 7 + 15 = 11
8 f
(Q) = 13
>
>
< x
> f
>
:
(Q) = 1
y
Por lo tanto 13(x 3) + (y 12) = 13x + y + 12 = 0 y = 10x + 11.
LQ : y = 10x + 11 recta tangente por Q.
La interseccin de esta tangente con la curva LQ C
8
> y = 10x + 11
<
>
:
y2 = x3 + x + 1
8 = 7 7 x3 = x3 = 17
y3 = 10 17 + 11 = 20
CC-BY-NC-ND PID_00185109
29
3 10
8
= = 8 10 = 11
17 3
7
10 = 11 3 + = = 10 10 = 0
8
>
< y = 11x
>
:
y2 = x3 + x + 1
8 f
(Q) = 9
>
>
< x
> f
>
:
(Q) = 9
y
Por lo tanto 9(x 9) + 9(y 16) = 0 x 9 + y 16 = 0 y = 22x + 2.
LS : y = 22x + 2 recta tangente por S.
Ahora corresponde calcular la interseccin de esta recta LS con la curva: LS C
8
> y = 22x + 2
<
>
:
y2 = x3 + x + 1
0 = x3 x2 + 3x 3 = (x 9)2 (x x3 )
Miramos el coeficiente de grado 2:
1 = 9 9 x3 = x3 = 6
y3 = 6 +2 = 19
10P1 = (6,4)
CC-BY-NC-ND PID_00185109
30
Ejemplo 2.3.
Sea K = F16 , C : y2 + xy = x3 + 4 x2 + 1, P1 = (6 ,8 ), P2 = (3 ,13 ).
Calcular P1 + P2
Calcular 2P1
9 = 3 +
= [x]
2 = [x]2 = [x2 ]
10 = 2 + + 1
3 = [x]3 = [x3 ]
11 = 3 + 2 +
12 = 3 + 2 + + 1
5 = 4 = 2 +
13 = 3 + 2 + 1
6 = 3 + 2
14 = 3 + 1
7 = 4 + 3 = 3 + + 1
15 = 1
8 = 2 + 1
Ahora calcularemos P1 + P2 =
a=
13 8
3
3 + 2 + 1 + 2 + 1
3
3
2
LP1 ,P2 : y = x + 11
CC-BY-NC-ND PID_00185109
31
LP1 ,P2 C
8
>
<
>
:
y = x + 11
y2 + xy = x3 + 4 x2 + 1
2 x2 + 10 + x2 + 11 x = x3 + 4 x2 + 1
0 = x3 + 8 x2 + 12 x + 10 + 1 = (x 6 )(x 3 )(x x3 )
Miramos el coeficiente de grado 2:
8 = 6 + 3 + x3 = x3 = 8 + 6 + 3 = 2 + 1 + 3 + 2 + 3 = 1
y3 = + 11 = 6
P1 + P2 = (1,6 )
8 f
>
(P1 ) = 9
>
< x
>f
>
:
(P1 ) = 6
y
9 (x 6 ) + 6 (y 8 ) = 0 3 x + 9 + y + 8 = 0
LP1 : y = 3 x + 12
LP1 C
8
>
<
>
:
y = 3 x + 12
y2 + xy = x3 + 4 x2 + 1
CC-BY-NC-ND PID_00185109
32
6 x2 + 9 + 3 x2 + 12 x = x3 + 4 x2 + 1
0 = x3 + 10 x2 + 12 x + 7 = (x 6 )2 (x x3 )
Miramos el coeficiente de grado 2:
10 = 6 + 6 + x3 = x3
y3 = 13 + 12 =
Solucin:
2P1 = (10 ,)
2.2.2.
Ecuacin general de P + Q
a)P /= Q
2
> x = y2 y1
x1 x2
3
>
x2 x1
<
>
y2 y1
>
>
: y3 =
(x 1 x3 ) y1
x2 x1
8
>
> x3 =
>
<
b)P = Q
>
>
>
: y3 =
3x21 + A
2y1
!2
x1 x2
!
3x21 + A
(x1 x3 ) y1
2y1
Observacin
Verificar, si se desea, que el
punto base O = (0,1,0)
pertenece a la curva
C : y2 = x3 + Ax + B.
CC-BY-NC-ND PID_00185109
33
E : y2 + cy = x3 + ax + b, c /= 0
P = (x1 ,y1 + c)
a) P /= Q
2
> x = y1 + y2
+ x1 + x2
3
x1 + x2
<
>
y1 + y2
>
>
: y3 =
(x 1 + x3 ) + y1 + c
x1 + x2
8
4
2
> x3 = x 1+ a
c2
<
b) P = Q
>
>
: y3 =
x1 + a
c
(x1 + x3 ) + y1 + c
E : y2 + xy = x3 + ax + b, b /= 0
P = (x1 ,y1 + x1 )
a) P /= Q
2
y + y2
> x = y1 + y2
+ 1
+ x1 + x2 + a
3
>
x1 + x2
x1 + x2
<
>
y1 + y2
>
>
: y3 =
(x1 + x3 ) + x3 + y1
x1 + x2
8
> x3 = x21 + b
x12
<
b) P = Q
>
y1
>
x
>
: y3 = x1 + x1 +
x3 + x3
Ejemplo 2.4.
Dada la curva y2 = x3 + 10x + 13 sobre F23 y los puntos de la misma P = (7,9), Q = (17,6),
calcular P + Q.
Usando las frmulas anteriores, si hacemos P + Q = (x3 ,y3 ), resulta:
x3 =
` 6 9 2
9
7 17 = 1 = 3,
17 7
8
y3 =
69
3
(7 3) 9 =
4 9 = 22.
17 7
4
Fijmonos en que hemos hecho sumas y multiplicaciones en el cuerpo finito F23 pero,
tambin, divisiones. O, de otro modo, hemos tenido que calcular inversos en F23 .
El clculo de inversos en un cuerpo finito es una operacin costosa que se puede obviar
usando coordenadas proyectivas en lugar de coordenadas afines.
CC-BY-NC-ND PID_00185109
34
3.1.
En todo este apartado K = Fq representar un cuerpo finito, con q = pm elementos, para un cierto m N y p primo. Si E es una curva elptica sobre K
escribiremos E o E(q) para designarla.
Recordar
Teorema 3.1.
`
2.2.1, es un grupo cclico, que puede ser generado por un solo elemen-
Notacin
donde n2 divide n1 y N = n1 n2 .
n
p
>
:
si n es QR
(mod p)
si n es QNR
(mod p)
CC-BY-NC-ND PID_00185109
35
Algoritmo 3.4.
Fq {1, 1}
x 1, si x es QR
x 1, si x es QNR
Recordar
( (f (x)) + 1) = 1 + q +
N=1+
xFq
(f (x))
xFq
Si q es un nmero primo,
x
entonces (x) =
.
q
x Z/p, xp1 = 1
(mod p) = x
p1
2
8
> +1, si x es QR
<
>
:
1, si x es QNR
Lema 3.5.
Sea p un nmero primo.
X
x(Z/p)
xi =
8
> p 1, si i = 0 o i = p 1
<
>
:
Un carcter cuadrtico es
un homomorfismo del grupo
multiplicativo del cuerpo
finito Fq (que escribiremos
Fq ) en el grupo multiplicativo
{1, 1}.
0, si i /= 0,p 1
x = p 1. Con i = p 1 nos
x(Z/p)
CC-BY-NC-ND PID_00185109
36
xi )2 2
mos:
x(Z/p)
xi xj = 0. Pero
x2i =
i,j
xi = 0, i / {0,p 1}.
X
(f (x)) = 1 + p +
N =1 + p +
xFp
xFp
=1+p+
(x + Ax + B)
p1
2
p1
X 3X2
=1+p+
xFp
p1
2
(f (x))
xFp i=0
p1
X2
=1+p+
fi
i=0
f i xi
p1
X2
x =1 +p+
xFp
fi
i=0
xi + f0
xF p
= 1 + p + (p 1)f0 + (p 1)fp1 + f0 .
Por lo tanto, N = 1 fp1
(mod p).
Casos especiales:
Si fp1 = 1 (mod p) y, concretamente, si N = p, E se denomina curva anmala. En este caso tambin es sencillo romper el logaritmo elptico (SemaevSmart-Satoh-Araki).
CC-BY-NC-ND PID_00185109
37
Observacin
1 + q 2 q N 1 + q + 2 q.
|N (1 + q)| 2 q
Hiptesis de Riemann
p primo
1
1 s
p
(s) =
X 1
nN
ns
1
2
+ 13 +
1
4
+ = , si s = 1
>
>
>
:diverge, si s < 1.
La hiptesis de Riemann dice que, sobre el cuerpo de los nmeros complejos, los ceros no triviales de (s) se encuentran todos sobre la recta
Re(s) = 12 .
Teorema 3.9.
Sobre el cuerpo finito Fq , donde q = pm y p primo, si t es cualquier valor
tal que:
8
>
<|t | 2q
j
k
>
:si p|t pn |t, donde n = m + 1
CC-BY-NC-ND PID_00185109
38
Ejemplo 3.1.
Las curvas elpticas sobre Z2 se pueden escribir cmo:
y2 + xy = x3 + b2 x2 + b6 , si = b6 = 0
y2 + b3 y = x3 + b4 x + b6 , si = b43 = 0
E : y2
E : y2
E : y2
E : y2
E : y2
E : y2
Las dos ltimas curvas son curvas supersingulares, puesto que N = 1 + p y la tercera es
una curva anmala.
3.2.
Una curva elptica definida sobre Fp puede considerarse tambin definida sobre Fq donde q = pm . Denotemos N = #E(p) = p + 1 t y Nm = #E(q).
Conjetura de Weil: (de hecho, es un teorema de Schmidt de 1925, previo a
Weil). Sean , C las races conjugadas de la ecuacin x2 +tx+p = 0. Entonces:
Nm = 1 + pm m m
CC-BY-NC-ND PID_00185109
39
Ejemplo 3.2.
Consideramos la curva E : y2 + y = x3 . Sabemos que E tiene 3 puntos sobre Z/2. Vamos a
calcular cuntos puntos tiene la curva definida por la misma funcin, sobre F2m .
`
8
x2 + (3 3)x + 2 = 0
< =
2y
:
= 2y
Si m = 0
Si m = 2
Si m = 1,3
CC-BY-NC-ND PID_00185109
40
En 1985, Koblitz y Miller propusieron, de manera independiente, la utilizacin del grupo de puntos de una curva elptica definida sobre un cuerpo finito
como base para criptosistemas basados en la dificultad de romper el logaritmo
discreto.
4.1.
Como hemos visto en el apartado anterior, los puntos de una curva elptica
forman un grupo respecto de la suma. Dado un punto P de una curva elptica
E, podemos calcular Q = sP, s Z, donde Q vuelve a ser un punto de la curva E.
bservacin
Si K = Z/p, p primo grande y
N = p, entonces tenemos que
N = N1 (= p) es un primo
grande y adems, cualquier
punto diferente del neutro es
generador con orden N. Por
otro lado, hemos visto que si
N = p, entonces E es una
curva anmala y el logaritmo
es fcil de romper en estos
casos. Tambin es fcil de
romper en el caso N = p + 1,
que corresponde a las curvas
supersingulares.
CC-BY-NC-ND PID_00185109
41
n
pasos (sumas de puntos en curvas elpticas). Este
de Pollard, que necesita
2
de pasos necesarios a
2r
exp
c + o(s) log(pk )
1 `
2i
3
k 3
log log(p )
El mtodo xedni-calculus (Silverman) es la idea inversa del index-calculus. Dada E(Z/p) se proyectan r combinaciones lineales en el plano sobre el cuerpo Q
y se considera la curva E(Q) que contiene estos r puntos. En el supuesto de que
estos r puntos obtenidos sean linealmente dependientes, se soluciona el problema elptico. Actualmente se usa este mtodo con r 9 y la probabilidad de
que los puntos obtenidos sean linealmente dependientes es muy pequea. La
importancia del xedni-calculus es que es fcilmente adaptable tanto al problema del logaritmo discreto como a la factorizacin, por tanto permitira atacar
todos los criptosistemas de clave pblica en caso de que se encontrara algn
algoritmo eficiente para resolverlo.
4.2.
Eleccin de la curva
bservacin
En la equivalencia dada por el
algoritmo MOV ,
normalmente, el valor del
parmetro k ser muy grande
y, por lo tanto, no ganaremos
nada haciendo la conversin
del logaritmo elptico en
logaritmo discreto clsico.
Pero, en algunos casos, s que
podremos romper el
logaritmo elptico a travs de
los algoritmos para romper el
logaritmo discreto (esto es el
que pasa para las curvas
supersingulares donde es
conocido que k 6).
CC-BY-NC-ND PID_00185109
42
Para resistir la reduccin MOV n (orden del punto escogido) no debe dividir
pk 1, k pequeo.
Veamos ahora diferentes mtodos conocidos para escoger una curva adecuada.
1) El Teorema de Hasse y la Conjetura de Weil nos proporcionan una tcnica para elegir curvas sobre F2m , donde m es divisible por un entero l pequeo.
De hecho, como estos resultados son vlidos para cualquier Fpm , podramos
extender esta tcnica a todos estos cuerpos.
Recordemos que dada una curva elptica E, definida sobre Fp , podemos considerarla tambin como una curva elptica sobre cualquier extensin Fpm de Fp .
Adems, sabemos calcular el nmero de puntos de la curva sobre el cuerpo
extendido, a partir del nmero de puntos de la curva sobre el cuerpo base.
Para elegir una curva adecuada sobre F2m , primero tomaremos una curva sobre F2l , con l dividiendo m y calcularemos el nmero de puntos de la curva
sobre F2l (que se puede hacer de forma exhaustiva puesto que hemos elegido
l de forma que el cuerpo F2l sea pequeo). Entonces calcularemos el nmero
de puntos de la curva sobre el cuerpo extendido y comprobaremos si es resistente a los ataques anteriores. En caso de que no resista alguno de los ataques
anteriores repetimos el proceso hasta encontrar una curva adecuada.
El principal problema que presenta esta tcnica es que el nmero de curvas
sobre F2l ser relativamente pequeo, y por lo tanto, es posible que dados m y
l no consigamos encontrar ninguna curva adecuada usando este mtodo.
2) Mtodo global. Esta manera de elegir la curva est basada en tomar una
curva sobre los racionales y reducirla mdulo un primo para tener la curva
sobre un cuerpo finito y comprobar si resiste los ataques anteriores.
Por ejemplo, si empezamos con E : y2 = x3 + Ax + B, donde A,B son nmeros
racionales podemos considerar la misma ecuacin mdulo un primo p. Entonces, tendremos la curva sobre Fp con Np puntos. Hay resultados tericos
que aseguran que para p lo suficientemente grande Np es mltiplo del nmero
de puntos de orden finito de la curva original sobre los racionales. As, conociendo el nmero de puntos de orden finito sobre el cuerpo inicial tendremos
una cota inferior para el nmero de puntos de la curva sobre Fp .
3) Mtodo de la multiplicacin compleja. Este mtodo permite la eleccin
del orden de la curva antes de construirla. Se debe comprobar que el orden que
queremos supere los ataques mencionados. Este mtodo es eficiente cuando
el cardinal q del cuerpo y el valor t tal que #E = 1 + q t son escogidos de forma
p
CC-BY-NC-ND PID_00185109
43
4.3.
Uno de los problemas prcticos que se plantean a la hora de usar este tipo
de criptografa es el de definir una correspondencia entre los mensajes que se
quieren transmitir y los puntos de la curva. Existen diferentes procedimientos
para hacerlo; veamos dos de ellos. Suponemos que char(K) /= 2,3. E : y2 = f (x) =
x3 + Ax + B.
4.3.1.
...
k+1
k+2
...
...
mk + 1
mk + 2
...
...
...
k1
7
7
7
7
2k 1
7
7
7
7
.
7
7
7
7
(m + 1)k 1 7
7
7
7
7
.
7
5
Ck
CC-BY-NC-ND PID_00185109
44
mismo proceso hasta encontrar x tal que f (x) tiene raz cuadrada, tomando
entonces y =
f (x).
1
2k
Algoritmo 4.4.
Curva Z/p
m (mk + j,y)
j k
(,)
4.3.2.
Observacin
Teorema 4.6.
Sean E y E curvas entrelazadas. Entonces
#E + #E = 2(p + 1)
El concepto de par de curvas entrelazadas permite definir una aplicacin biyectiva entre el conjunto de valores {0,1, . . . ,2p + 1} y el conjunto de puntos
de las dos curvas. As, a cada punto P = (x,y) que puede pertenecer bien a E
o bien a E , le asignamos un valor de m {0,1, . . . ,2(p + 1)} de la siguiente
manera:
CC-BY-NC-ND PID_00185109
8
> 2x,
>
>
>
> 2x + 1,
>
>
>
> 2p,
>
<
2x
m=
s P E, 0 y
s P = (,) E
s P E , 0 y
s P E ,
p1
2
p1
<yp
2
s P = (x,0) E
s P = (,) E
2p + 1,
2x
p1
2
p1
<yp
2
s P E,
>
>
> 2x
>
+ 1,
>
>
>
> 2x
>
+ 1,
>
:
donde
45
P=
m
, ) E,
2
q
m
( , 3 ) E,
2
m
(
,0) E,
2
(,) E,
>
> ( m 1 , ) E,
>
2
>
q
>
> ( m 1 , 3) E ,
>
2
>
>
m
> ( 1 ,0) E ,
>
>
(,) E ,
si m es par y /= 0 es QR (mod p)
si m es par y /= 0 es NQR (mod p)
m
/= p y = 0
2
m
=p
si m es par,
2
si m es par,
si m es impar y /= 0 es QR (mod p)
si m es impar y /= 0 es NQR (mod p)
si m es impar,
si m es par,
donde x3 + Ax + B (mod p) y
m
/= p y = 0
2
m
=p
2
elemento .
Ejemplo 4.1.
Sea p = 31 y la pareja de curvas entrelazadas (hemos escogido = 13):
E : y2 = x3 + 3x + 1
2
3
3
3
E : y2 = x + 3 13 + 1 13 = x + 11x + 27
(0,30)
(1,6)
(1,25)
(6,7)
(6,24)
(8,17)
(10,15)
(10,16)
(11,1)
(11,30)
(13,25)
(14,11)
(14,20)
(17,6)
(17,25)
(18,11)
>
>
> (21,5)
>
>
> (26,4)
(18,20)
(19,2)
(19,29)
(20,1)
(20,30)
(21,26)
(22,12)
(22,19)
(24,3)
(24,28)
(26,27)
(27,7)
(27,24)
(29,7)
(29,24)
> (30,11)
>
:
(30,20)
(,)
CC-BY-NC-ND PID_00185109
8
> (1,15)
>
>
> (9,7)
<
Puntos de E :
(21,8)
>
>
> (24,14)
>
>
:
(,)
46
(1,16)
(3,5)
(3,26)
(8,10)
(8,21)
(9,24)
(15,8)
(15,23)
(20,1)
(20,30)
(21,23)
(22,6)
(22,25)
(23,4)
(23,27)
(24,17)
(26,8)
(26,23)
(29,11)
(29,20)
Entre las dos curvas tenemos pues 64 puntos. La correspondencia entre mensajes y puntos viene dada por la tabla siguiente.
punto de E
mensaje
punto de E
mensaje
(0,1)
(1,15)
24
(0,30)
(1,16)
25
(1,6)
(3,5)
10
(1,25)
(3,26)
11
6
(6,7)
12
(8,10)
(6,24)
13
(8,21)
(8,14)
16
(9,7)
30
(8,17)
17
(9,24)
31
(10,15)
20
(15,8)
50
(10,16)
21
(15,23)
51
(11,1)
22
(20,1)
46
(11,30)
23
(20,30)
47
(13,6)
26
(21,8)
(13,25)
27
(21,23)
(14,11)
28
(22,6)
32
(14,20)
29
(22,25)
33
(17,6)
34
(23,4)
56
(15,25)
35
(23,27)
57
(18,11)
36
(24,14)
18
(18,20)
37
(24,17)
19
(19,2)
38
(26,8)
(19,29)
39
(26,23)
(20,1)
40
(29,11)
14
(20,30)
41
(29,30)
15
(21,5)
42
(,)
63
(21,26)
43
(22,12)
44
(22,19)
45
(24,3)
48
(24,28)
49
(26,4)
52
(26,27)
53
(27,7)
54
(27,24)
55
(29,7)
58
(29,24)
59
(30,10)
60
(30,20)
61
(,)
62
CC-BY-NC-ND PID_00185109
47
5.1.
Protocolos criptogrficos
Algoritmo 5.1.
nA
A B
nB
A B
hacer:
Algoritmo 5.2.
n P
A
A
B
n P
B
A
B
CC-BY-NC-ND PID_00185109
48
Protocolo
Al finalizar el algoritmo, tanto A como B disponen del mismo punto que tomarn como
clave de sesin: K = (5,48).
Utilizacin del software SAGE
En este ejemplo podemos seguir los clculos numricos haciendo uso del software SAGE.
Se puede utilizar instruccin a instruccin, pero tambin se puede utilizar un script que
nos calcule directamente el resultado que queremos.
Antes que nada definiremos el cuerpo finito F113 , que denominaremos F, con la orden:
sage: F = FiniteField(113)
A continuacin definiremos la curva elptica y2 = x3 + 5 x + 7. En general, la curva
definida por los parmetros [a,b,c,d,e] es y2 + axy + cy = x3 + bx2 + dx + e.
Simulador de clculos
en curvas elpticas
Para comprobar los clculos
de este ejemplo podis usar
el programa SAGE, que
encontraris en la direccin
http:www.sagemath.org/.
sage: E = EllipticCurve(F,[0,0,0,5,7])
Elliptic Curve defined by y^2 = x^3 + 5*x + 7 over Finite Field of size 113
Si queremos conocer el orden de la curva elptica:
sage: print(E.cardinality())
127
A continuacin, para indicarle el punto P = (16,51) escribiremos lo siguientes (y calcularemos, tambin, su orden):
sage: P = E.point((16,51))
sage: P.order()
donde estamos explicando que se toma el punto P = (16,51) dentro del dominio de
puntos de la curva E.
El usuario A calcula KA := 98P y el usuario B KB := 101 P:
sage: K_A = 98*P
sage: K_B = 101*P
Finalmente, podemos comprobar que los dos usuarios pueden utilizar la misma clave
comn: K = nA KB = nB KA :
print 101*K_A,98*K_B
Tras esta ltima instruccin SAGE contesta con los dos valores que le hemos pedido
imprimir:
(5 : 48 : 1) (5 : 48 : 1)
Observar que SAGE est realizando las operaciones en coordenadas proyectivas.
CC-BY-NC-ND PID_00185109
49
Algoritmo 5.3.
EA (m)
A B
A
EB (EA (m))
EB (m)
A B
Algoritmo 5.4.
nA
A B
(mnA )nB
A B
m nB
A B
Versin con curvas elpticas. Veamos la traduccin del protocolo de MasseyOmura. Sea E una curva elptica sobre Fq , N = #E(q). Sea P E el mensaje que
el usuario A quiere enviar a B. Cada usuario U tiene una clave privada nU tal
que mcd(nU ,N) = 1.
Algoritmo 5.5.
n P
A
A
B
n (n P)
A BA B
n P
B
A
B
5.2.
Criptosistema ElGamal
CC-BY-NC-ND PID_00185109
50
calcula = (k )nB ,
m = c 1 .
Versin con curvas elpticas. Sea E una curva elptica sobre Z/p, sea P un
punto de la curva de orden grande N (sera deseable que (P) = E), N |#E(p).
Para cada usuario U , sea nU su clave privada, 1 < nU < N; (bastara tomar
enva a B (C,kP).
Pm = C nB (kP),
5.3.
Criptosistema RSA
Versin clsica. Se basa en la funcin de una va o unidireccional de la pomcd(e, (n)) = 1 y d = e1 (mod (n)). La fortaleza del criptosistema se basa
en que p y q sean nmeros primos grandes y, por lo tanto, n sea difcilmente
factorizable, lo que imposibilita calcular (n).
Supongamos que un usuario A quiere enviar un mensaje m a B. Los parmetros pblicos de B son (e,n), y los privados (p,q, (n),d). A deber seguir los
Recordar
La funcin de Euler (n)
proporciona el cardinal de los
nmeros entre 1 y n que son
primos con n. En el supuesto
de que n sea un nmero
primo n = p, tenemos
(p) = p 1. En el supuesto
de que n = pq es el producto
de dos primos tenemos
(n) = (p 1)(q 1).
siguientes pasos:
Observacin
El usuario A enva c a B.
Actualmente no se conoce
ningn algoritmo de
factorizacin de complejidad
menor que la
sub-exponencial.
CC-BY-NC-ND PID_00185109
51
Cada vez que A quiere enviar un mensaje m a B deber seguir los siguientes
pasos:
a partir del mensaje cifrado c = (c1 ,c2 ) el usuario B puede determinar el valor
de b puesto que este no cambia en el proceso de cifrado. Especficamente,
calcula b = c22 c31 (mod n) y construye la curva y
Observacin
El esquema de KMOV
(Koyama, Maurer, Okamoto,
Vanstone) usa curvas elpticas
definidas sobre Zn , donde
n = pq es el producto de dos
nmeros primos que se
mantienen en secreto. La
seguridad de KMOV es la
misma que la del esquema
RSA. No obstante, el cifrado
en el esquema KMOV es ms
flexible que en el RSA, por
ejemplo, la curva elptica no
se fija, sino que se construye
para cada nuevo mensaje.
Para solucionar este
inconveniente hay otros
esquemas como el de
Demytko (1993), Meyer y
Mller ( 1996), Paillier
(1999), etc.
= x + b.
a partir de la clave privada calcula m = D(c) = dc sobre En (0,b).
5.4.
Firma digital
Versin clsica: DSS. Usaremos la misma nomenclatura que en el criptosistema ElGamal que ya hemos visto anteriormente.
(mod (p 1)).
Ver tambin
El criptosistema ElGamal se
estudia en el mdulo
Elementos de criptografa
de esta asignatura.
CC-BY-NC-ND PID_00185109
52
k s
(mod p).
Versin clsica: DSA. Sea q un nmero primo de unos 160 bits y p otro nmero primo de unos 500 bits tal que p = 1 (mod q). Sea un generador del
subgrupo cclico de orden q de (Z/p) . Para cada usuario U , su clave privada es
nU , un nmero escogido al azar, 0 < nU < q y la clave pblica es U = nU .
El usuario A quiere firmar un mensaje m:
(mod q),
Versin con curvas elpticas: ECDSA. Sea E una curva elptica sobre Z/p, sea
P un punto de la curva de orden primo n. Cada usuario U toma al azar un
nmero nU [1,n 1] que ser su clave privada, la clave pblica de U ser
PU = nU P. El usuario A quiere firmar un mensaje m:
calcula k1 (mod n)
CC-BY-NC-ND PID_00185109
53
Dada una curva elptica, deberemos calcular su cardinal y ver si satisface las
condiciones anteriores. Aunque hay un algoritmo polinomial (Schoof 1985)
para hacer este clculo, su complejidad es del orden de log8 (p), que para valores demasiado grandes de p no es prctico.
5.5.
5.5.1.
Seguridad
5.5.2.
Eficiencia
CC-BY-NC-ND PID_00185109
54
de la firma y el descifrado. Tanto en el DSA como en el ECC se pueden precalcular varias tablas para mejorar el rendimiento. Tambin se pueden utilizar
bases normales y ptimas para trabajar en cuerpos finitos de la forma F2m .
Teniendo en cuenta el estado actual del arte en las implementaciones resulta
que la ECC es un orden de magnitud ms rpido que el RSA y, tambin, que
el DSA.
2) Tamao de la clave, o sea, la cantidad de bits necesarios para guardar la
pareja de claves y los otros parmetros del sistema.
La tabla siguiente compara la medida de los parmetros del sistema y de las
claves (pblica y privada) para los diferentes sistemas.
Medida de los parmetros y claves
Sistema de parmetros (bits)
RSA
2208
1088
2048
DSA
2208
1024
160
ECC
481
161
160
1024
DSA
320
ECC
320
1024
ElGamal
2048
ECC
321
En resumen, el sistema ECC tiene una gran eficiencia y, en las implementaciones, esto significa rapidez, bajo consumo y reduccin de la medida del cdigo
transmitido.
Ver tambin
Las bases normales se
estudian en el mdulo
Cuerpos finitos.
CC-BY-NC-ND PID_00185109
55
6.1.
ECC estndares
Los progresos realizados en la criptografa con curvas elpticas desde su aparicin en la dcada de los ochenta, hasta la actualidad, lo han transformado
en algo ms prctico que los esquemas propuestos inicialmente. Las mejoras
introducidas han permitido la creacin de implementaciones que ofrecen la
posibilidad de comenzar a extender el uso de este tipo de criptografa.
Para promover la difusin de las mejores tcnicas conocidas as como la interoperatibidad entre aplicaciones, han ido surgiendo esfuerzos por estandarizar la criptografa elptica. Este esfuerzo ha sido liderado por la corporacin
Certicom*, haciendo las mayores aportaciones en materia de criptografa con
curvas elpticas a los principales estndares de clave pblica existentes.
6.1.1.
Estndares principales
* http://www.certicom.com
CC-BY-NC-ND PID_00185109
56
La IEEE incluy la criptografa con curvas elpticas en su estndar de criptografa de clave pblica P1363 en febrero del 2000. El estndar es muy general
y fue desarrollado principalmente por investigadores de Certicom (Vanstone
y Menezes). En l se describen algoritmos tpicos de criptografa de clave pblica sobre curvas elpticas. Algunas de las caractersticas de este estndar son
las siguientes:
Apoyo para esquemas de firmado ECDSA (elliptic curve digital signature algorithm) y ECNR (Elliptic Curve Nyberg-Rueppel) signature scheme.
Apoyo para algoritmos de intercambio de claves ECDH (elliptic curve DiffieHellman) key agreement y ECMQV (elliptic curve Menezes-Qu-Vastone) key
agreement.
La International Organization for Standarizatcion (ISO) fue otra de las principales organizaciones para la estandarizacin que apuesta por aadir la criptografa con curvas elpticas en sus estndares criptograficos. La descripcin
principal del uso de estas tcnicas se hace en el estndar 15946 (cryptographic
techniques based on elliptic curves). Mientras que la primera parte del estndar
hace una descripcin general de los mtodos basados en curvas elpticas, la segunda y tercera parte ya introducen el uso del esquema ECDSA para las firmas
digitales, y algunos algoritmos de intercambio de claves (ECDH, ECMQV).
Esta no es la nica repercusin de la criptografa de curva elptica sobre los estndares de la ISO. Tambin podemos encontrar modificaciones a otros estndares de firma digital, concretamente al 14888 (digital signature with appendix
part 3: certificate-based mechanisms) y al 9796-4 (digital signature with message
recovery, discrete logarithm-based mechanisms).
Ver tambin
Los pairings se estudian en el
mdulo Pairings y sus
aplicaciones .
CC-BY-NC-ND PID_00185109
57
FIPS 186-2
Uno de los primeros xitos de la estandarizacin de los algoritmos criptogrficos basados en curvas elpticas fue la adopcin de esta tecnologa por el
National Institute of Standards and Technology (NIST). El estndar FIPS (federal information processing standard) 186-2 fue extendido en febrero del 2000
ampliando el apartado dedicado al DSS (digital signature standard) para incluir
la versin del ECDSA especificada en el estndar de ANSI X9.62.
El SECG (standards for efficient cryptography group) fue creado por la empresa
Certicom, para promover estndares de curva elptica as como la difusin de
los mejores mtodos para implementar este tipo de criptografa. Su principal
objetivo es crear un estndar, basado en los principales que existen, pero haciendo restricciones sobre los parmetros que estos exigen sobre cada uno de
los esquemas de firmado, cifrado o intercambio de claves que usan. El objetivo
de estas restricciones es hacer posible la interoperatividad de las aplicaciones
basadas en este estndar, con las basadas en cualquiera de los otros estndares
principales.
Los frutos de esta organizacin quedan reflejados en dos estndares. El primero de ellos, recogido en el 2009 en el documento SET 1 (elliptic curve cryptography) hace una descripcin de los esquemas permitidos (ECDSA, ECDH,
ECMQV y ECIES). Adems, se describen todas las primitivas criptogrficas que
se usan en estos esquemas y la notacin ASN1 (abstract syntax notation one)
para representar las estructuras necesarias (claves, certificados, contenidos cifrados, etc) que se utilizan.
CC-BY-NC-ND PID_00185109
58
SET 3 trata sobre esquemas de firma basados en curvas elpticas con reconstruccin parcial del mensaje (ECPVS y ECAOS).
RSA
Laboratorios RSA publica dos documentos PKCS11 y PKCS13 para la estandarizacin del uso de las curvas elpticas (generacin de claves, firmas digitales,
cifrado con clave pblica, etc.). El objetivo de ambos documentos era crear
un nuevo estndar criptogrfico al estilo de otras PKCS (public key cryptography
standard) desarrollados por los Laboratorios RSA. La lnea de la propuesta inicial realizada en enero de 1998 tena los mismos objetivos que los del grupo
SECG creado por Certicom. Hasta hoy no se ha adelantado ms all de la
propuesta inicial de 1998 y aparentemente el desarrollo de este estndar est
congelado.
NSA
NSA (National Security Agency) de USA anuncia, en el 2005, la suite B Cryptography la cual incluye la criptografa basada en curvas elpticas en la seguridad
de los sistemas de datos USA. Esta suite B incorpora la coleccin de algoritmos:
SHA256 y SHA384 (FIPS 180-3); AES128 y AES256 (FIPS 197); ECDH (ANSI
X9.63) y ECDSA (ANSI X9.62, SET 1).
Posteriormente se ha propuesto la suite E para sistemas restringidos (con cdigos de tamao pequeo y requerimientos particulares de hardware, potencia
y ancho de banda).
6.1.2.
Estndares de aplicacin
CC-BY-NC-ND PID_00185109
59
rior como nuevas soluciones para optimizar estos protocolos, sobre todo en
entornos donde el tamao de la clave no puede ser demasiado grande. A continuacin enumeraremos algunos.
El protocolo de intercambio de claves OAKLEY (RFC 2412), basado en el algoritmo de Diffie-Hellman, ha sido modificado para soportar la variante ECDH
sobre curvas elpticas. Las curvas por defecto que se utilizan en este protocolo
estn definidas sobre F2155 y F2185 .
WAP WTLS
WTLS (wireless transporte security layer) es la capa de seguridad para WAP (wireless application protocol). Esta especificacin se ha convertido en el estndar
de facto para proveer seguridad, integridad y autenticidad para aplicaciones de
telfonos mviles y otros dispositivos pequeos. Los esquemas de firma (DSA)
y de intercambio de claves (DH) descritos en esta especificacin han sido ampliados para soportar ECDSA para las firmas y ECDH para el intercambio de
claves. Los parmetros utilizados para estos dos algoritmos siguen los del estndar del IEEE P1363 descrito en el apartado anterior. Esta especificacin,
junto con el estndar FIPS del NIST demuestran la voluntad por parte de la
industria de adoptar este tipo de criptografa
ATM
6.2.
CC-BY-NC-ND PID_00185109
60
Todas estas aplicaciones comparten un escenario implicando unas restricciones ms severas en el uso del procesador. Comentaremos, bsicamente, las
aplicaciones basadas en tarjetas inteligentes, aun cuando son fcilmente extrapolables a las otras aplicaciones mencionadas.
La implementacin de aplicaciones seguras para tarjetas inteligentes presenta una serie de inconvenientes debido a las restricciones existentes en estos
dispositivos. Estas limitaciones son debidas principalmente a sus disponibilidades de memoria, de ancho de banda y de potencia de clculo.
Para la mayor parte de estas aplicaciones, es necesario el uso de servicios criptogrficos que no encarezcan el producto final. Tales servicios criptogrficos
son necesarios por varias razones. En primer lugar, la tarjeta requiere una serie
de caractersticas de seguridad que permitan la proteccin de la informacin
sensible almacenada a su interior. En segundo lugar, deben proporcionar un
entorno de procesamiento.
6.2.1.
CC-BY-NC-ND PID_00185109
61
mentacin que estos dispositivos requieren (memoria muy reducida y capacidad de clculo muy limitada).
La mayor parte de tarjetas inteligentes disponibles hoy en da en el mercado disponen de una memoria RAM de alrededor de 1.024 bytes, de unos 16
kilobytes de memoria EPROM y de unos 24 kilobytes de memoria ROM. Su
capacidad de procesamiento es tambin muy reducida. Normalmente, tienen
CPU de 32 bits a una frecuencia de unos 5 megaherzios.
Por ltimo, la velocidad de transmisin de estas tarjetas es tambin muy limitada. Para conseguir velocidades de aplicacin aceptables, la informacin
transmitida por la tarjeta habra de ser la mnima necesaria.
6.2.2.
Ventajas de la ECC
Las ventajas de la utilizacin de la ECC para la construccin de los servicios criptogrficos necesarios para tarjetas inteligentes son bsicamente los
siguientes:
Mnimos requerimientos de memoria y de tasa de transmisin. La utilizacin de la ECC permite reducir el tamao de las claves y los certificados.
Esto se traduce en una reduccin de la memoria necesaria por parte de la
tarjeta inteligentes. Por otro parte, tambin permite una reduccin de los
datos a transmitir entre tarjeta y aplicacin. Por este motivo, la tasa de
transmisin necesaria se reduce considerablemente.
CC-BY-NC-ND PID_00185109
62
Generacin interna de claves. La clave privada asociada a una clave pblica debe permanecer almacenada de forma secreta. Adems, para garantizar
el no repudio, la clave privada habra de ser completamente inaccesible
por terceras partes.
Con la utilizacin de otros algoritmos, la introduccin de claves dentro
de la tarjeta se debe hacer de forma personalizada en un entorno seguro.
Debido a la complejidad de los clculos necesarios, la generacin de claves
dentro de la propia tarjeta es ineficiente y generalmente impracticable.
Utilizando ECC se consigue que el tiempo necesario para generar una pareja de claves sea tan reducido que incluso dispositivos de caractersticas de
clculo tan modestas como las tarjetas inteligentes pueden generar tal pareja. Esto significa que el proceso de personalizacin puede ser evitado en
aquellas aplicaciones donde la no repudiacin sea realmente importante.
6.2.3.
Conclusiones
Las tarjetas inteligentes tienen unas restricciones de implementacin muy rgidas debido a sus limitaciones de clculo, parmetros de almacenamiento y
tasas de transferencia. Como resultado de estas restricciones, implementar un
sistema de clave pblica con tarjetas inteligentes requiere el uso de tarjetas de
ms alto nivel, con mayor capacidad de almacenamiento y con coprocesador
criptogrfico.
La reduccin del tamao de las clave y los certificados que permite la ECC
para construir sistemas de clave pblica, ofrece unas ventajas incuestionables
para la implementacin de aplicaciones seguras en tarjetas inteligentes.
CC-BY-NC-ND PID_00185109
63
Ejercicios de autoevaluacin
1. Dada la cnica x2 + xy + y2 sobre F2 , calcular sus puntos racionales.
2. Dada la cnica x2 + xy + y2 sobre F8 , calcular sus puntos racionales.
3. Dada la curva y2 = x3 + 3x + 2 sobre F23 y los dos puntos de la misma P = (16,11),Q = (8,20),
calcular P + Q, 2P, 4P.
4. Dada la curva y2 + xy = x3 + x2 + 1 sobre F4 .
a) Comprobar que no tiene puntos singulares.
b) Dar un punto P de la curva. Por ejemplo, fijar un valor de x (por ejemplo x = 0) y resolver
la ecuacin cuadrtica resultante para ver si encontramos un valor vlido para y (en
nuestro ejemplo, y2 = 1).
5. Dada la curva y2 + xy = x3 + x2 + sobre F4 .
a) Comprobar que no tiene puntos singulares.
b) Dar un punto P de la curva.
c) Calcular el orden del punto P. Es decir, calcular el mnimo a, tal que aP = 0, donde 0 es el
punto del infinito.
d) Podemos saber cuntos puntos tiene la curva, utilizando los teoremas conocidos?
6. Implementar usando SAGE el sistema criptogrfico ElGamal sobre curvas elpticas. Usar
un nmero primo de ms de 10 cifras y cifrar el texto
Cifrar con ElGamal elptico hace difcil el descifrado.
Mostrar el texto en claro y el texto cifrado.
El mtodo de codificacin ser una variante, debida a Menezes y Vanstone conocida como
MV-ElGamal. Un punto P de orden grande y la curva E son informacin pblica. La clave
privada es un entero nU ms pequeo que el orden de P y la clave pblica es PU = nU P. El
mensaje m lo dividiremos en dos bloques mdulo p, o sea (m1 ,m2 ) Fp Fp . La funcin de
cifrado viene dada por
EU (m) = (rP,c1 ,c2 ) E P P
donde r es un nmero aleatorio, (x,y) = rPU y c1 = xm1 (mod p), c2 = ym2 (mod p). Supondremos que x,y = 0, de lo contrario buscaremos otro valor de r.
La correspondiente funcin de descifrado es:
CC-BY-NC-ND PID_00185109
64
Soluciones
1. Los nicos puntos posible de la curva son (0,0),(0,1),(1,0),(1,1). Solo hace falta probar qu
valores satisfacen la ecuacin y ver que los puntos racionales son (0,1),(1,0),(1,1).
2. El problema, ahora, no es tan sencillo como el anterior. Si en el cuerpo hay muchos elementos no podemos irlos probando todos de uno en uno. Podemos hacer como en el ejemplo 1.5.
Supongamos que el cuerpo finito lo hemos construido utilizando el polinomio primitivo
x3 + x + 1. Ya sabemos por el ejercicio anterior que (0,1) es un punto de la curva. El haz de
rectas que pasan por este punto es Ax + By + C = 0. Dando valores en el punto (0,1) obtenemos
B + C = 0, o sea B = C = 0 (si B y C fueran cero la recta sera x = 0 y no pasara por otros puntos
que ya conocemos (los (1,0) y (1,1)). Si cortamos esta recta con la curva inicial obtenemos
los puntos que buscamos, o sea, las soluciones del sistema de ecuaciones:
8
<
:
Dx + y + 1
x2
+ xy +
y2
+1
2D
+1
y, al ir dando valores a D
F
8
D2 +D+1
D2 +D+1
obtenemos las ocho soluciones (1,0); (1,1); (2 ,); (,2 ); (4 ,); (,4 ); (2 ,4 ); (4 ,2 ) que,
junto con la solucin inicial (0,1), da los nueve puntos racionales que buscbamos.
;y=
CC-BY-NC-ND PID_00185109
65
CC-BY-NC-ND PID_00185109
66
Cifrar c
1130980978
1634869347
Cifrar c
on ElGam
1869488197
1816617325
on ElGam
al elipt
1634476133
1818849396
al elipt
ico hace
1768124192
1751212901
ico hace
dificil
543451494
1768122732
dificil
el desc
543517728
1684370275
el desc
ifrado
1768321633
25711
ifrado
CC-BY-NC-ND PID_00185109
67
Bibliografa
Blake, I.; Seroussi, G.; Smart, N. (2000). Elliptic Curves in Cryptography. London Mathematical Society Lecture Note Series (nm. 265). Cambridge: Cambridge U. Press.
Fulton, W. (1969). Algebraic Curves. An Introduction to Algebraic Geometry. Nueva York: Benjamin Inc. (Versin en castellano: Curvas algebraicas (1972). Barcelona: Ed. Reverte.)
Hankerson, D.; Menezes, A.; Vanstone, S. (2004). Guide to Elliptic Curve Cryptography.
Nueva York: Springer-Verlag.
Koblitz, N. (2004). Algebraic Aspects of Cryptography. Algorithms and computations in
Mathematics (vol. 3). Berln, Heidelberg, Nueva York: Springer-Verlag.
Menezes, A. (1993). Elliptic Curve Public Key Cryptosystems. Massachusetts: Kluwer Academic
Publishers, Norwell.
Silverman, J. H. (1986). The Arithmetic of Elliptic Curves. Graduate Texts in Mathematics
(nm. 106). Nueva York: Springer-Verlag.
Washington, L. C. (2008). Elliptic Curves: Number Theory and Cryptography. Discrete
Mathematics and its Applications. Nueva York: Chapman & Hall/CRC.