Criptografia Avanzada (Modulo 4)
Criptografia Avanzada (Modulo 4)
curvas elpticas
Lloren Huguet Rotger
Josep Rif Coma
Juan Gabriel Tena Ayuso
PID_00200952
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
[Link]
CC-BY-NC-ND PID_00200952
ndice
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.
1.1.
Definiciones previas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.
Plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.
11
1.4.
2.
3.
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.
4.
5.
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_00200952
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
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
6.
6.2.
CC-BY-NC-ND PID_00200952
Introduccin
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_00200952
CC-BY-NC-ND PID_00200952
Objetivos
En los materiales didcticos de este mdulo el estudiante encontrar los contenidos necesarios para alcanzar los objetivos siguientes:
CC-BY-NC-ND PID_00200952
char(K) = p.
Si para todo n N, 1
| + 1 +{z + 1} 6= 0 decimos que char(K) = 0.
n
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_00200952
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 6= 40 = F[2,2,2].
Ahora bien, s que tiene sentido decir que F[x,y,z]=0 puesto que si 6= 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_00200952
11
Relacin afn-proyectivo
Consideremos como antes el conjunto Ui := {(x0 : : xn ) Pn |xi 6= 0} Pn .
Relacin de coordenadas entre los puntos considerados en el espacio afn y
en el espacio proyectivo.
.
Algoritmo 1.4.
An Ui Pn
zi +1
zn
zi , . . . , zi )
(z0 ; . . . ; zn )
el cual se obtiene a partir de f multiplicando por potencias de x0 cada monomio hasta conseguir un polinomio homogneo de grado gr(f ). Recprocamente, para pasar de un polinomio del espacio proyectivo a uno en el espacio
afn, daremos valor 1 a la coordenada x0 (o a la coordenada que previamente
hayamos fijado).
Ejemplo 1.2.
Coordenadas:
A2 U2 P2
(1,2) (x : y : z) = (1 : 2 : 1)
(2, 21 ) (x : y : z) = (4 : 1 : 2)
Polinomios:
K[x,y] K[x,y,z]
x2 + x3 + xy x2 z + x3 + xyz
x + x2 y + 1 xz2 + x2 y + z3
Recordar
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_00200952
12
.
Definicin 1.6 (Componentes irreducibles de una curva).
Sea f K[x,y]. Podemos descomponer f en producto de factores irredu-
.
Definicin 1.7 (Punto singular).
Sea C = Cf (K) A2 una curva afn y p = (a,b) C. Decimos que p es un
punto mltiple o punto singular de C si satisface las ecuaciones:
8
f
>
>
(p) = 0
>
>
< x
>
>
>
f
>
:
(p) = 0
y
.
Definicin 1.8 (Curva no singular).
Una curva es no singular si todos sus puntos son simples (o sea, no
singulares).
.
Definicin 1.9 (Recta tangente).
Sea p = (a,b) C = Cf (K) un punto simple. Definimos la recta tangente
Recordar
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_00200952
13
.
Definicin 1.10 (Multiplicidad en un punto).
Definimos la multiplicidad de C, en el punto p = (a,b), como el mnimo
k tal que fk (xa,y b) 6= 0 (como polinomio) y la denotaremos por mp (C).
Observacin
mp (C) = 0 p 6 C.
mp (C) = 1 p es un
punto simple de C.
Si mp (C) = 2, decimos
que p es un punto doble.
.
Definicin 1.11 (Nodos y cspides).
Si mp (C) = 2, entonces f2 (x a,y b) se puede descomponer en producto
de 2 factores: f2 (x a,y b) = .
Ejemplo 1.3.
Supongamos que char(K) 6= 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.7,
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
Resolviendo este sistema encontramos y = 0, x(3x + 2a) = 0, x3 + ax2 y2 = 0.
Finalmente, y = 0, x = 0. Por lo tanto, (0,0) es un punto singular.
Observacin
Ntese que los factores y
en la Definicin1.11 no
tienen por qu tener los
coeficientes en el cuerpo K,
sino que pueden tenerlos en
alguna extensin cuadrtica
de K.
En el caso de un nodo
distinguiremos un nodo
racional (si y tienen
coeficientes en K), de un
nodo irracional (en caso
contrario).
CC-BY-NC-ND PID_00200952
14
0,5
0,8
0,6
0,4
0,2
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?
Supongamos la misma curva que en el ejemplo anterior para el caso a = 2. La
podemos ver como una curva proyectiva dada por un polinomio homogneo,
CC-BY-NC-ND PID_00200952
15
Ejemplo 1.4.
.
Corolario 1.13.
Una cnica definida por un polinomio irreducible F de grado 2, no
tiene puntos singulares.
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_00200952
16
.
Definicin 1.15 (Cuerpo p-dico).
Sea p primo. Todo nmero a Q se puede escribir de la forma a =
m
pr , donde mcd(m,p) = 1 y mcd(n,p) = 1. Entonces, definimos la norma
n
1
p-dica de a como: |a|p = r .
p
Observacin
El cuerpo R de los nmeros
reales se puede definir como
el conjunto de todas las
sucesiones fundamentales,
mdulo una cierta relacin
de equivalencia.
Definimos el cuerpo p-dico Qp como el conjunto de todas las sucesiones fundamentales con esta norma, mdulo una cierta relacin de
equivalencia.
.
Definicin 1.16 (Puntos racionales de una curva).
Sea K un cuerpo, y C = Cf (K) una curva. Decimos que p = (p1 ,p2 ) es un
punto racional de la curva si f (p) = 0 y p K2 .
.
Teorema 1.17 (Teorema de Legendre).
Una cnica (con coeficientes en Q) tiene un punto racional si y solo
si tiene un punto racional sobre R y sobre los cuerpos Qp para todo
primo p.
Observacin
El Teorema1.17 es falso para
curvas de grado mayor que
2. Para curvas de grado 2, es
cierto para cualquier nmero
de variables, es decir, curvas
planas o no, definidas por
una forma cuadrtica
(Hasse-Minkowski).
CC-BY-NC-ND PID_00200952
17
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.
CC-BY-NC-ND PID_00200952
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
:
x2 + y 2 = 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 A2
,
1 + A2 1 + A2
As, escogiendo como punto fijo p = (0,1), parametrizamos la cnica inicial de la siguiente
manera:
Algoritmo 1.19.
t
2
2t
, 1t
1+t 2 1+t 2
2t 1 t 2
,
tambin lo es; en
2
2
1+t 1+t
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
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_00200952
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.13 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.21.
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.).
.
Teorema 1.22 (Teorema de la base finita de Mordell. (1923)).
Si C es una cbica no singular sobre Q, existe un conjunto finito de
puntos racionales sobre C tal que todos los otros puntos racionales de
la curva se pueden encontrar haciendo construcciones de tangentes y
secantes a partir de estos.
CC-BY-NC-ND PID_00200952
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).
CC-BY-NC-ND PID_00200952
21
Ax3 + Bx2 y + Cx2 z + Dxyz + Ey2 z + Fy2 x + Gy3 + Hz3 + Iz2 x + Jz2 y = 0
(1)
con a1 , . . . ,a6 K
O en el plano afn, curvas de grado 3 de la forma:
y2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6
Si char(K) 6= 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_00200952
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
b2 2 b4
b
x + x+ 6
4
2
4
(3)
(x +
b32
b2
b
b2 3
) = x3 + 2 x2 + 2 2 x +
34
4
4 3
(3 4)3
y2 = (x +
b22
b2 3
b
( 2 )3 + 2b4 x + b6
) 3x
34
34
(3 4)2
x := x +
b2
34
y2 = x3 + 27c4 x 54c6
y2 = x3 + Ax + B
(4)
(5)
CC-BY-NC-ND PID_00200952
23
y 2 = x3 + a2 x2 + a6
(6)
8
y
y
4
2
0
0
3 2 1
4
5
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) 6= 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 6= 0 = C tiene un nodo.
CC-BY-NC-ND PID_00200952
24
Puntos singulares:
8
f
>
>
=0
>
>
< x
>
>
>
>
: f = 0
y
x =
A
,
3
y = 0
x3 + Ax + B y2 = 0
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 y 2 =
xy
x + y . As, el punto
2A
2A
2A
2A
3B
,0 es un punto doble y, segn la definicin1.11, sabemos que es un nodo.
2A
no sern tres puntos diferentes; habr uno doble (el punto de tangencia). El
CC-BY-NC-ND PID_00200952
25
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
Notacin
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_00200952
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
19 escrito enbinario
es 10011. Entonces, de acuerdo con el algoritmo anterior
`
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_00200952
27
8
>
< y = 11x
>
:
y 2 = x3 + x + 1
6x2 = x3 + x + 1
luego
y3 = 11 17 = 3
El tercer punto de interseccin es pues (17,3).
Finalmente, calcularemos el punto simtrico, sobre F23 , respecto al eje de abscisas: P1 +
P2 = (17,20)
Para calcular 10P1 empezaremos escribiendo en binario 10 1010. Aplicando el algoritmo anlogo al de multiplicar y elevar, tenemos: 10P1 = 2(2(2P1 ) + P1 )
Clculo de la tangente que pasa por P1 :
La ecuacin de la tangente por un punto P es:
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_00200952
28
y 2 = x3 + x + 1
(6x + 15)2 = x3 + x + 1
entonces
0 = x3 13x2 + 5x + 6 = (x 3)2 (x x3 )
ya que el punto de tangencia P1 = (3,10) es una solucin doble del sistema de ecuaciones.
Miramos el coeficiente de grado 2:
13 = 3 3 x3 = x3 = 6 + 13 = 7
y3 = 6 7 + 15 = 11
El punto de interseccin es pues (7,11) y su simtrico sobre F23 es (7,12).
Por lo tanto: Q = 2P1 = (7,12)
Seguimos..., calculamos ahora la tangente a la curva que pasa por Q:
8 f
>
(Q) = 13
>
>
>
< x
>
>
>
f
>
:
(Q) = 1
y
y 2 = x3 + x + 1
8 = 7 7 x3 = x3 = 17
y3 = 10 17 + 11 = 20
CC-BY-NC-ND PID_00200952
29
3 10
8
= = 8 10 = 11
17 3
7
10 = 11 3 + = = 10 10 = 0
Por lo tanto LP1 ,R : y = 11x.
Calculemos ahora la interseccin con la curva: LP1 ,R C:
8
>
< y = 11x
>
:
y 2 = 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
>
:
y 2 = x3 + x + 1
0 = x3 x2 + 3x 3 = (x 9)2 (x x3 )
1 = 9 9 x3 = x3 = 6
y3 = 6 +2 = 19
El punto de interseccin es (6,19) y el simtrico a F23 , es 2S = (6,4). Esta es la solucin
que buscbamos:
10P1 = (6,4)
CC-BY-NC-ND PID_00200952
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 6
3 + 2 + 1 + 2 + 1
3 + 3 + 2
3
2
8 = 6 + b = b = 8 + 7 = 11
LP1 ,P2 : y = x + 11
CC-BY-NC-ND PID_00200952
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 )
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_00200952
32
6 x2 + 9 + 3 x2 + 12 x = x3 + 4 x2 + 1
0 = x3 + 10 x2 + 12 x + 7 = (x 6 )2 (x x3 )
10 = 6 + 6 + x3 = x3
y3 = 13 + 12 =
Solucin:
2P1 = (10 ,)
Observacin
a)P 6= Q
>
y2 y1 2
>
>
x
=
x1 x2
3
>
>
x2 x1
<
>
>
>
y2 y1
>
>
: y3 =
(x1 x3 ) y1
x2 x1
b)P = Q
8
>
>
>
> x3 =
>
>
>
<
>
>
>
>
>
>
> y3 =
:
3x21 + A
2y1
!2
3x21 + A
2y1
x1 x1
(x1 x3 ) y1
CC-BY-NC-ND PID_00200952
33
E : y2 + cy = x3 + ax + b, c 6= 0
P = (x1 ,y1 + c)
a) P 6= Q
>
y1 + y2 2
>
>
x
=
+ x1 + x2
> 3
>
x1 + x2
<
>
>
>
y1 + y2
>
>
: y3 =
(x1 + x3 ) + y1 + c
x1 + x2
b) P = Q
8
x41 + a2
>
>
> x3 =
>
c2
>
<
>
>
>
>
>
: y3 =
x21 + a
c
(x1 + x3 ) + y1 + c
E : y2 + xy = x3 + ax + b, b 6= 0
P = (x1 ,y1 + x1 )
a) P 6= Q
>
y1 + y2 2 y1 + y2
>
>
+
+ x1 + x2 + a
x
=
> 3
>
x1 + x2
x1 + x2
<
>
>
>
y1 + y2
>
>
: y3 =
(x1 + x3 ) + x3 + y1
x1 + x2
b) P = Q
8
b
>
>
x3 = x21 + 2
>
>
>
x1
<
>
>
>
y1
>
2
>
x3 + x3
: y3 = x1 + x1 +
x1
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 =
3
69
(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_00200952
34
Recordar
Teorema 3.1.
`
2.2.1, es un grupo cclico, que puede ser generado por un solo elemento, o bien se puede descomponer como suma directa de dos subgrupos
cclicos con rdenes n1 y n2 , respectivamente, de forma que
E(q)
= Zn1 Zn2
donde n2 divide n1 y N = n1 n2 .
.
Definicin 3.2 (Residuos cuadrticos).
Sea x Fq . Si existe z Fq tal que x = z2 , diremos que x es un resi-
.
Definicin 3.3 (Smbolo de Legendre).
Sea p un nmero primo y sea n Fp . Definimos
el smbolo de Legendre
n
de n respecto p, y lo denotaremos por
, cmo:
p
n
p
8
>
>
< 1
>
>
:
si n es QR (mod p)
si n es QNR (mod p)
Notacin
Escribiremos N = #E(q) para
indicar el nmero de puntos
racionales de E.
CC-BY-NC-ND PID_00200952
35
x 1, si x es QR
x 1, si x es QNR
Recordar
N =1+
( (f (x)) + 1) = 1 + q +
xFq
(f (x))
xFq
Si q es un nmeroprimo,
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(Z/p)
xi =
8
>
>
< p 1, si i = 0 o i = p 1
>
>
:
0, si i 6= 0,p 1
Un carcter cuadrtico es
un homomorfismo del grupo
multiplicativo del cuerpo
finito Fq (que escribiremos
Fq ) en el grupo multiplicativo
{1, 1}.
x = p 1. Con i = p 1 nos
x(Z/p)
CC-BY-NC-ND PID_00200952
36
xi xj = 0. Pero
i,j
xi )2 2
mos:
x(Z/p)
x2i =
xi = 0, i / {0,p 1}.
N =1 + p +
(f (x)) = 1 + p +
xFp
(f (x))
p1
2
xFp
p1
=1+p+
(x + Ax + B)
p1
2
=1+p+
=1+p+
p1
2
X
i=0
fi xi
xFp i=0
xFp
2
X 3X
fi
xFp
3
i
x =1+p+
p1
2
X
i=0
fi
xi + f0
xF
p
= 1 + p + (p 1)f0 + (p 1)fp1 + f0 .
(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).
.
Definicin 3.6 (Curvas supersingulares y anmalas).
Dado el cuerpo K = Fq , con q = pm , p primo, entonces:
CC-BY-NC-ND PID_00200952
37
Observacin
1 + q 2 q N 1 + q + 2 q.
|N (1 + q)| 2 q
Hiptesis de Riemann
(s) =
1
1 s
p
p primo
X 1
nN
ns
(s) =
8
>
>
>
1+
>
>
>
<
1
2
1
3
1
4
+ = , 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 .
j
k
>
>
:si p|t pn |t, donde n = m + 1
CC-BY-NC-ND PID_00200952
38
Ejemplo 3.1.
Las curvas elpticas sobre Z2 se pueden escribir cmo:
y2 + xy = x3 + b2 x2 + b6 , si = b6 6= 0
y2 + b3 y = x3 + b4 x + b6 , si = b43 6= 0
Las dos ltimas curvas son curvas supersingulares, puesto que N = 1 + p y la tercera es
una curva anmala.
CC-BY-NC-ND PID_00200952
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 .
`
x2 + (3 3)x + 2 = 0
8
< = 2y
:
= 2y
Si m = 0
Si m = 2
Si m = 1,3
CC-BY-NC-ND PID_00200952
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.
Observacin
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_00200952
41
.
Teorema 4.2 (Tena, 1994).
Sea K = Fq , donde q = pm y p primo pequeo, E curva elptica sobre K.
Una condicin necesaria para que E sea cuasiprima es que m sea primo.
n
de Pollard, que necesita
pasos (sumas de puntos en curvas elpticas). Este
2
mtodo se puede paralelizar
con r procesadores y conseguir rebajar el nmero
n
.
de pasos necesarios a
2r
.
Teorema 4.3 (MOV -Menezes, Okamoto y Vanstone-, 1993).
El clculo del logaritmo elptico sobre Z/p es equivalente al clculo del
logaritmo discreto sobre Fpk para algn entero k.
exp
13 `
32 i
log log(pk )
c + o(s) log(pk )
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
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.
Observacin
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_00200952
42
Para resistir la reduccin MOV n (orden del punto escogido) no debe dividir
pk 1, k pequeo.
Para resistir los ataques contra curvas elpticas supersingulares, el nmero
de puntos de la curva no debe ser igual a 1 mdulo p.
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_00200952
43
x3 + Ax + B.
...
k
..
.
k+1
..
.
k+2
..
.
...
mk
..
.
mk + 1
..
.
mk + 2
..
.
...
(C 1)k
...
...
...
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 1
CC-BY-NC-ND PID_00200952
44
mismo proceso hasta encontrar x tal que f (x) tiene raz cuadrada, tomando
entonces y =
f (x).
1
.
2k
m (mk + j,y)
jk
(,)
k
entrelazadas.
.
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_00200952
m=
8
>
2x,
>
>
>
>
>
>
>
>
>
2x + 1,
>
>
>
>
>
>
>
>
2p,
>
>
<
s P E, 0 y
s P E,
2x
s P E , 0 y
,
>
>
>
>
>
>
>
2x
>
>
+ 1,
>
>
>
>
>
>
>
2x
>
>
+ 1,
>
>
:
p1
2
p1
<yp
2
s P = (,) E
p1
2
p1
<yp
2
s P E ,
s P = (x,0) E
s P = (,) E
2p + 1,
donde
45
2x
se ha de reducir mdulo 2p.
P=
8
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
<
m
, ) E,
2
q
m
( , 3 ) E ,
2
m
( ,0) E,
2
(
(,) E,
>
>
m1
>
>
, ) E,
(
>
>
2
>
>
q
>
>
m1
>
>
(
3 ) E ,
>
>
2
>
>
>
>
>
m1
>
>
(
,0) E ,
>
>
2
>
:
(,) E ,
si m es par y 6= 0 es QR
(mod p)
si m es par y 6= 0 es NQR
(mod p)
m
6 py=0
=
2
m
si m es par,
=p
2
si m es par,
si m es impar y 6= 0 es QR
si m es impar y 6= 0 es NQR
(mod p)
(mod p)
(m 1)
6 py=0
=
2
(m 1)
si m es impar,
=p
2
si m es impar,
donde x3 + Ax + B (mod p) y
elemento .
Ejemplo 4.1.
Sea p = 31 y la pareja de curvas entrelazadas (hemos escogido = 13):
E : y2 = x3 + 3x + 1
E : y2 = x3 + 3 132 + 1 133 = x3 + 11x + 27
E tiene 39 puntos y E tiene 25:
Puntos de E:
8
>
>
(0,1)
>
>
>
>
>
>
(8,14)
>
>
>
>
>
>
>
(13,6)
>
<
(18,11)
>
>
>
>
>
>
(21,5)
>
>
>
>
>
> (26,4)
>
>
>
>
:
(30,11)
(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,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,20)
(,)
CC-BY-NC-ND PID_00200952
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,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_00200952
47
A B
nB
A B
hacer:
.
Algoritmo 5.2.
n P
A
A
B
n P
B
A
B
CC-BY-NC-ND PID_00200952
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:[Link]/.
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([Link]())
127
A continuacin, para indicarle el punto P = (16,51) escribiremos lo siguientes (y calcularemos, tambin, su orden):
sage: P = [Link]((16,51))
sage: [Link]()
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_00200952
49
A B
A
EB (EA (m))
EB (m)
A B
con esta caracterstica es EA (x) = xnA en Z/p, con p primo y nA clave privada
del usuario A. En este caso concreto, el protocolo se denomina protocolo de
Massey-Omura:
.
Algoritmo 5.4.
mnA
A B
(mnA )nB
A B
mnB
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
pblico. Cada usuario U tiene una clave privada nU Z/p {0,1,p 1} y hace
pblica la clave pblica U = nU . Suponemos que el usuario A quiere enviar
el mensaje m al usuario B. A debe seguir los siguientes pasos:
CC-BY-NC-ND PID_00200952
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 hPi = E), N |#E(p).
Para cada usuario U, sea nU su clave privada, 1 < nU < N; (bastara tomar
Pm = C nB (kP),
encuentra el mensaje m asociado con el punto Pm .
Recordar
tenciacin: E(e,n) (x) = x (mod n) donde 1 < x < n = pq, 1 < e < (n) con
mcd(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
siguientes pasos:
Observacin
Actualmente no se conoce
ningn algoritmo de
factorizacin de complejidad
menor que la
sub-exponencial.
CC-BY-NC-ND PID_00200952
51
Cada vez que A quiere enviar un mensaje m a B deber seguir los siguientes
pasos:
Zn .
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 c13 (mod n) y construye la curva y2 = x3 + b.
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.
calcula k ,
(mod (p 1)).
Ver tambin
El criptosistema ElGamal se
estudia en el mdulo
Elementos de criptografa
de esta asignatura.
CC-BY-NC-ND PID_00200952
52
h(m) = (nA ) (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:
h(m) + nA r = k s
(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_00200952
53
5.5.2. Eficiencia
Para comparar los niveles de eficiencia, deberemos tener en cuenta:
CC-BY-NC-ND PID_00200952
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
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_00200952
55
* [Link]
CC-BY-NC-ND PID_00200952
56
Apoyo para esquemas de firmado ECDSA (elliptic curve digital signature al-
Ver tambin
Los pairings se estudian en el
mdulo Pairings y sus
aplicaciones .
CC-BY-NC-ND PID_00200952
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.
Este estndar es un punto de referencia para la comercializacin de productos
que contengan criptografa de curva elptica, puesto que desde su creacin,
las agencias gubernamentales americanas pueden comprar productos basados
en este tipo de criptografa sin pedir permisos especiales. El NIST ha incluido
tambin especificaciones para algoritmos de criptografa de curva elptica en
su documento MISPC (minimum interoperability specification).
SEC 1, SEC 2, SEC 3 y SEC 4
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.
El esquema de cifrado ECIES tiene una larga historia en su nomenclatura y
ha ido sufriendo a la vez pequeas modificaciones. Lo podemos encontrar en
la literatura como ECAES (elliptic curve augmented encryption scheme) o simplemente como ECES (elliptic curve encryption scheme). La versin definida en el
documento SET 1 es la ms extensa y actualizada. Este esquema se basa en
utilizar criptografa simtrica para cifrar el mensaje deseado a partir de una
clave generada en el proceso de inicializacin del mtodo. Una vez se ha cifrado el mensaje se transmite el contenido cifrado y se envia la clave generada
utilizando el esquema ECDH.
CC-BY-NC-ND PID_00200952
58
CC-BY-NC-ND PID_00200952
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.
IETF (IPSec, TLS, S/MIME, SSH, DNSSEC)
El Working Group de la IETF (Internet Engineering Task Force) ha adoptado
tambin la criptografa con curvas elpticas en sus estndares. Las especificaciones ms importantes hacen referencia a los protocolos IPSec, TLS, S/MIME,
SSH, DNSSEC.
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
El Security specification draft para redes ATM (asyncronous transfer Mode) es
el documento que especifica los mecanismos de seguridad que pueden ser
aplicados sobre este tipo de redes. Entre estos mecanismos hay sistemas para
garantizar la confidencialidad, la autenticidad, la integridad o el control de
acceso. Algunos de los mecanismos se basan en criptografa de clave pblica
y, en ellos, se ha incluido la criptografa con curvas elpticas como posible
candidata a utilizar.
CC-BY-NC-ND PID_00200952
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.
En el 2001, Europay, Mastercard y VISA dan a conocer un informe tcnico
sobre curvas elpticas, el EMV40. En l se introduce el uso de curvas elpticas
como sustituto del RSA para la autentificacin y el cifrado.
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.
Las tarjetas inteligentes son pequeos dispositivos porttiles, que ofrecen al
usuario integridad de la informacin almacenada en su interior y capacidad
de procesamiento. Esta capacidad de procesamiento hace que las tarjetas inteligentes sean de gran utilidad para la implementacin de un gran nmero
de aplicaciones relacionadas con el comercio electrnico, la identificacin de
personas...
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.
La generacin de una clave pblica y privada en el interior de una tarjeta
inteligente, as como la proteccin de la clave privada en su interior, es crtica. Para poder proporcionar servicios criptogrficos, la clave almacenada en
la tarjeta nunca ha de ser revelada. Por este motivo, la propia tarjeta deber
autoprotegerse haciendo uso de sus servicios criptogrficos.
CC-BY-NC-ND PID_00200952
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.
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_00200952
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_00200952
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
CC-BY-NC-ND PID_00200952
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 6= 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
+1
1
Resolviendo este sistema obtenemos: x = D2 +D+1
; y = DD
2 +D+1 y, al ir dando valores a D F8
2
2
obtenemos las ocho soluciones (1,0); (1,1); ( ,); (, ); (4 ,); (,4 ); (2 ,4 ); (4 ,2 ) que,
junto con la solucin inicial (0,1), da los nueve puntos racionales que buscbamos.
CC-BY-NC-ND PID_00200952
65
CC-BY-NC-ND PID_00200952
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_00200952
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.