Criptografia_avanzada_(Modulo_4)
-
Upload
maria-lunes -
Category
Documents
-
view
8 -
download
0
description
Transcript of Criptografia_avanzada_(Modulo_4)
-
Criptografa concurvas elpticasLloren 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 auna licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa deCreative Commons. Podis copiarlos, distribuirlos y transmitirlos pblicamente siempre que citisel autor y la fuente (FUOC. Fundaci per a la Universitat Oberta de Catalunya), no hagis un usocomercial y no hagis una obra derivada. La licencia completa se puede consultar enhttp://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
-
CC-BY-NC-ND PID_00200952 Criptografa con curvas elpticas
ndice
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. Curvas y puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1. Definiciones previas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2. Plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3. Curvas afines y proyectivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4. Puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.1. Puntos racionales de una curva de grado 1 . . . . . . . . . . . 17
1.4.2. Puntos racionales de una curva de grado 2 . . . . . . . . . . . 17
1.4.3. Puntos racionales de una curva de grado 3 . . . . . . . . . . . 18
1.4.4. Puntos racionales de una curva de grado 4 . . . . . . . . . . . 19
2. Geometra de las curvas elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1. Ecuacin de Weierstrass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. La ley de grupo de una curva elptica . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1. Ley de grupo en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2. Ecuacin general de P + Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3. Curvas elpticas sobre cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1. Nmero de puntos de una curva elptica . . . . . . . . . . . . . . . . . . . . . . 34
3.2. Extensin de una curva sobre un cuerpo a una curva sobre un
cuerpo extendido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4. El uso de las curvas elpticas en criptografa . . . . . . . . . . . . . . . . . 40
4.1. El problema del logaritmo elptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2. Eleccin de la curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3. Asignacin de mensajes a puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3.1. Creacin de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3.2. Mtodo de curvas entrelazadas . . . . . . . . . . . . . . . . . . . . . . . 44
5. Criptografa y protocolos criptogrficos basados en curvas
elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1. Protocolos criptogrficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.1. Protocolo de Diffie-Helman . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.2. Protocolo de tres-pasos de Shamir . . . . . . . . . . . . . . . . . . . . 49
5.2. Criptosistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3. Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.4. Firma digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.5. Comparacin de los sistemas de clave pblica . . . . . . . . . . . . . . . . 53
-
CC-BY-NC-ND PID_00200952 Criptografa con curvas elpticas
5.5.1. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.5.2. Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6. ECC estndares y aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.1. ECC estndares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.1.1. Estndares principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.1.2. Estndares de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2. Aplicaciones de la ECC. Tarjetas inteligentes . . . . . . . . . . . . . . . . . . 59
6.2.1. Restricciones de las tarjetas inteligentes . . . . . . . . . . . . . . 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_00200952 5 Criptografa con curvas elpticas
Introduccin
La teora de curvas elpticas sobre cuerpos finitos encuentra aplicaciones en
diversas disciplinas, como por ejemplo la teora de nmeros o la criptografa.
Resultan sorprendentes sus relaciones con problemas tan diversos como la
realizacin de tests de primalidad, la factorizacin de nmeros enteros o la
demostracin del ltimo teorema de Fermat, entre otras.
Veamos unas pinceladas de estas relaciones para centrarnos despus en la apli-
cacin 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.
Relacionadas con la teora de nmeros podemos destacar dos aplicaciones:
El problema de losnmeros congruentes
Fue enunciado por primeravez por el matemtico persaal-Karaji (hacia el siglo X a.C.). Actualmente, la solucindel problema depende de laconjetura deBirch-Swinnerton-Dyer sobrecurvas elpticas. El problemaes uno de los siete problemasdel milenio que el ClayMathematics Institute dot,en el ao 2000, con unpremio de un milln dedlares para quien aportara lasolucin de cualquiera deellos.
Nmeros congruentes. Un nmero racional N se dice que es congruentesi existe un tringulo con aristas racionales cuya rea es N. Durante mucho
tiempo el problema ha permanecido sin que se conociese ningn algorit-
mo capaz de resolverlo, es decir, de comprobar si un nmero dado N era
congruente o no. Actualmente, est demostrado que N es un nmero con-
gruente si y solo si la curva elptica y2 = x3 N2x = x(x N)(x + N) tiene
algn punto racional diferente de (0,0), (N,0) y del punto del infinito dela curva.
Teorema de Fermat. En 1985 Gerhard Frey observ que si An + Bn = Cn eraun contraejemplo al ltimo teorema de Fermat, entonces la curva elptica
y2 = x(xAn)(x+Bn) tena por discriminante (AnBn(An +Bn))2 = (ABC)2n.
Discriminante
El discriminante de una curvaelptica y2 = x3 + ax + b vienedado por = 4a3 + 27b2 y esnulo si y solo si la curva tienepuntos singulares (puntos enlos que las dos derivadasparciales se anulan).
Tal curva contradeca la denominada conjetura de Taniyama. Posterior-
mente, A. Wiles prob que ninguna curva poda contradecir esta conjetura
y, por lo tanto, qued probado que no existe ningn contraejemplo al l-
timo teorema de Fermat.
En el campo de la criptografa, la aplicacin de estas curvas la podemos en-
contrar en la descomposicin de un nmero en factores, en los sistemas crip-
togrficos 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 mu-
chos aspectos, mejor que los conocidos anteriormente. La mejora y eficiencia
-
CC-BY-NC-ND PID_00200952 6 Criptografa con curvas elpticas
de este nuevo mtodo todava no es significativo en la prctica (el tiempo para
factorizar contina siendo el mismo) pero, an as, el hecho de haber encon-
trado un mecanismo diferente hace que los sistemas criptogrficos basados en
el problema de la factorizacin no resulten, al fin y al cabo, tan seguros co-
mo parecan. El algoritmo de factorizacin con curvas elpticas de Lenstra es
anlogo al mtodo clsico denominado p 1 de Pollard.
Los avances en estos mtodos as como en las prestaciones de los ordenado-
res 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 re-
sulta especialmente til para la seguridad en aplicaciones basadas en circuitos
integrados y tarjetas inteligentes.
-
CC-BY-NC-ND PID_00200952 7 Criptografa con curvas elpticas
Objetivos
En los materiales didcticos de este mdulo el estudiante encontrar los con-
tenidos necesarios para alcanzar los objetivos siguientes:
1. Conocer el concepto de curva en el espacio proyectivo y en el espacio afn.
2. Conocer el concepto de curva elptica sobre un cuerpo finito y los parme-
tros que la definen.
3. Conocer el uso de las curvas elpticas en criptografa y los principales pro-
blemas que hay que tener en cuenta en su utilizacin.
4. Conocer los principales algoritmos y protocolos basados en curvas elpticas
(Diffie-Helman, Shamir, ElGamal, firma digital).
5. Conocer los estndares y las aplicaciones ms corrientes que utilizan las
curvas elpticas.
-
CC-BY-NC-ND PID_00200952 9 Criptografa con curvas elpticas
1. Curvas y puntos racionales.
1.1. Definiciones previas
Ver tambin
En el mdulo Cuerposfinitosde esta asignaturaencontraris de formadetallada algunos de losconceptos que tambinusaremos en este mdulo.
Ya hemos estudiado de forma detallada algunos de los conceptos que tambin
usaremos en este mdulo. Vamos a recordar solo algunos:
La caracterstica de un cuerpo K es el mnimo nmero p tal que para todox K se cumple que 1 + 1 + + 1| {z }
p
= 0, donde 0 es el elemento neutro de la
suma y 1 es el elemento neutro del producto en el cuerpo K. Escribiremos
char(K) = p.
Si para todo n N, 1 + 1 + + 1| {z }n
6= 0 decimos que char(K) = 0.
Por ejemplo, si K = Fq donde q = pm, p primo, entonces char(K) = p. Para los cuerposQ de los nmeros racionales, R de los nmeros reales y C de los nmeros complejos
se tiene, char(Q) = char(R) = char(C) = 0.
Sea K un cuerpo y x K = K {0}. El orden de x es el mnimo nmeror > 0 tal que xr = 1.
Sea K un cuerpo. La clausura algebraica de K es el cuerpo ms pequeoque contiene a K y tal que cualquier polinomio con coeficientes en K tiene
todas las races en este cuerpo.
1.2. Plano proyectivo
.
Definicin 1.1 (Plano afn y plano proyectivo).
Sea K un cuerpo. El plano afn sobre K, que denominaremos A2 (o A2(K))
es el conjunto de puntos de K2. El plano proyectivo sobre K, P2 (o P2(K)),
es el conjunto de puntos (x,y,z) K3 {(0,0,0)} con la relacin de equi-valencia tal que:
(x,y,z) (x,y,z) si, y solo si, K = K {0} tal que x = x, y = y,z = z.
-
CC-BY-NC-ND PID_00200952 10 Criptografa con curvas elpticas
As definimos P2 = K3 {0}/ . Cada una de las clases de equivalencia se llamapunto proyectivo y lo denotaremos por (x : y : z). Para todo K, diremosque (x,y,z) y (x,y,z) son dos representantes de la misma clase (x : y : z).
Nota
Anlogamente se define elespacio proyectivo
n-dimensionalPn = Kn+1 {0}/ , cuyasclases de equivalencia sedenominan puntos y sedenotan por(x0 : x1 : : xn).
Dado un punto proyectivo (x0 : x1 : x2) sabemos que para algn i = 0,1,2 xi 6= 0.Definimos el conjunto abierto Ui = {(x0 : x1 : x2)|xi 6= 0}
Sea (x : y : z) U3. Existe un nico representante de este punto de la forma( xz ,
yz ,1). De este modo, dado que z 6= 0, podemos identificar puntos proyectivos
con puntos afines:
.
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
El paso del plano proyectivoal plano afn se podra hacercon cualquiera de las trescoordenadas. En general, loharemos con la z o con la x0si escribimos los puntos conla notacin (x0 : x1 : : xn).
.
Definicin 1.3 (Polinomio homogneo).
Un polinomio F(z0, . . . ,zn) K[z0, . . . ,zn] diremos que es un polinomiohomogneo si todos sus monomios tienen el mismo grado. Denotare-
mos por F[z0, . . . ,zn] un tal polinomio.
Ejemplo 1.1.
z0z3 z22 es un polinomio homogneo de grado 2.
z1 z3 es un polinomio homogneo de grado 1.
z23 es un polinomio homogneo de grado 3.
Dado F[x,y,z], un polinomio homogneo de grado r, no tiene sentido dar valo-
res a F en el plano proyectivo. Por ejemplo, si F[x,y,z] = x3 +3y2z+ 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] = rF[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 Criptografa con curvas elpticas
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(a1, . . . ,an) (a1; . . . ; ai1; 1; ai+1; . . . ; an)( z0zi , . . . ,
zi1zi,zi+1
zi, . . . , znzi ) (z0; . . . ; zn)
Relacin de polinomios. Dado f (x1, . . . ,xn) K[x1, . . . ,xn] en el espacio afn, setiene F[x0, . . . ,xn] K[x0, . . . ,xn], su homogeneizado en el espacio proyectivo,el cual se obtiene a partir de f multiplicando por potencias de x0 cada mo-
nomio hasta conseguir un polinomio homogneo de grado gr(f ). Recproca-
mente, 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, 1
2) (x : y : z) = (4 : 1 : 2)
Polinomios:
K[x,y] K[x,y,z]x2 + x3 + xy x2z + x3 + xyzx + x2y + 1 xz2 + x2y + z3
1.3. Curvas afines y proyectivas
Recordar
Un cuerpo K es la clausuraalgebraica de un cuerpo K siK K y K mnimo, con lapropiedad de que cualquierpolinomio de K[x] sedescompone en factores degrado uno.
.
Definicin 1.5 (Curva afn y curva proyectiva).
Sean f (x,y) K[x,y] y F[x,y,z] K[x,y,z] no constantes. Entonces el con-junto Cf (K) = {(x,y)|f (x,y) = 0} se denomina curva afn y CF(K) = {(x :y : z)|F[x,y,z] = 0} curva proyectiva.
-
CC-BY-NC-ND PID_00200952 12 Criptografa con curvas elpticas
.
Definicin 1.6 (Componentes irreducibles de una curva).
Sea f K[x,y]. Podemos descomponer f en producto de factores irredu-cibles f = f e11 . . . f
ess . (Del mismo modo para F K[x,y,z]).
Con esta descomposicin, podemos escribir la curva como unin de sus
componentes irreducibles: Cf (K) = Cf1 (K) Cfs(K).
.
Definicin 1.7 (Punto singular).
Sea C = Cf (K) A2 una curva afn y p = (a,b) C. Decimos que p es unpunto mltiple o punto singular de C si satisface las ecuaciones:
8>>>>>>>:
f
x(p) = 0
f
y(p) = 0
Recordar
La notacinf
x(p) significa
calcular la derivada parcial def (x) respecto a la variable x ydar valores en el punto p.
.
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 tangentea C en el punto p como la recta dada por la ecuacin:
f
x(p)(x a) +
f
y(p)(y b) = 0
Sea C = Cf (K), p = (a,b). Podemos escribir f como suma de componentes ho-
mogneas:
f (x a,y b) = f0(x a,y b) + + fm(x a,y b),
donde gr(fi(x a,y b)) = i.
-
CC-BY-NC-ND PID_00200952 13 Criptografa con curvas elpticas
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.10 (Multiplicidad en un punto).
Definimos la multiplicidad de C, en el punto p = (a,b), como el mnimo
k tal que fk(xa,yb) 6= 0 (como polinomio) y la denotaremos pormp(C).
Observacin
Ntese que los factores y en la Definicin1.11 notienen por qu tener loscoeficientes en el cuerpo K,sino que pueden tenerlos enalguna extensin cuadrticade K.En el caso de un nododistinguiremos un nodoracional (si y tienencoeficientes en K), de unnodo irracional (en casocontrario).
.
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) = .
Si 6= , diremos que p es un nodo. Si = , diremos que p es una cspide.
Donde la anterior igualdad o desigualdad de y se entiende salvo un
factor constante.
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
x= 3x2 + 2ax = 0
f
y= 2y = 0
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.
Para estudiar la multiplicidad del punto singular (0,0) utilizaremos la definicin1.10,pero antes descompongamos f (x,y) en suma de funciones homogneas f0(x 0,y 0),f1(x 0,y 0), f2(x 0,y 0), f3(x 0,y 0), de grados 0,1,2,3, respectivamente.
Vemos que f (x 0,y 0) = f (x,y) = 0 + 0 + (ax2 y2) + x3.
Por lo tanto, f0(x,y) = f1(x,y) = 0, f2(x,y) = ax2 y2 = (
ax + y)(
ax y), f3(x,y) = x
3.
As, de acuerdo con la definicin 1.10, vemos que mp(C) = 2 y, por lo tanto, p = (0,0)es un punto doble. Ahora, de acuerdo con la Definicin 1.11 vemos que para a = 0 elpunto p = (0,0) es una cspide y para todos los valores a 6= 0, el punto p = (0,0) es unnodo. Dependiendo de si
a K o no el nodo ser racional o irracional.
Las figuras siguientes corresponden a la curva y2 = x3 + ax2 para a = 1 y a = 0,respectivamente.
-
CC-BY-NC-ND PID_00200952 14 Criptografa con curvas elpticas
Nodo racional en el punto (0,0) de la curva y2 = x3 + x2
y
x
1
0,5
0
0,5
1
1 0,8 0,6 0,4 0,2 0,2 0,4 0,6
Cspide en el punto (0,0) de la curva y2 = x3
y
x
1
0,5
0
0,5
1
1
0,80,2 0,4 0,6
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 Criptografa con curvas elpticas
F[x,y,z] = x3 + 2x2z y2z = 0. Podemos pasar la curva proyectiva al plano afn
dando el valor z = 1; as, obtenemos la curva f (x,y) = x3 + 2x2 y2 = 0, que est
dada por la misma ecuacin que ya habamos visto en el ejemplo anterior y
de la que ya sabemos que el punto (x = 0,y = 0) es un punto singular. Para
evitar este punto singular podramos pasar al afn usando otra coordenada;
por ejemplo, y = 1, obteniendo una nueva curva: g(x,z) = x3 +2x2z z = 0, en
la que el punto (x = 0,z = 0) pertenece a la curva y no es singular.
Observacin
El uso de coordenadasproyectivas tambin permiterealizar clculos en curvaselpticas sobre cuerpos finitossin necesidad de haceroperaciones de divisin en elcuerpo. Esto es importante,puesto que las operacionesde dividir soncomputacionalmentecostosas.
Estas dos curvas afines (las dadas por f y g) son curvas asociadas a la mis-
ma curva proyectiva. As, aunque una de las curvas afines contenga un punto
singular podramos encontrar otra curva afn asociada a la misma curva pro-
yectiva que no tenga ninguno.
.
Teorema 1.12 (Teorema de Bezout).
Sean C = {(x : y : z) P2|F[x,y,z] = 0} y D = {(x : y : z) P2|G[x,y,z] = 0}dos curvas proyectivas de grados m y n respectivamente (m = gr(F),
n = gr(G)). Si C y D no tienen componentes irreducibles en comn,
entonces C y D tienen mn puntos en comn contando sus multiplici-
dades.
Ejemplo 1.4.
Dos rectas diferentes (curvas proyectivas de grado 1) se cortan siempre en un punto.En efecto, si las consideramos en el plano afn, sabemos que dos rectas diferentes o
bien se cortan en un punto o bien son paralelas y, en este caso, se cortan en un punto
de la recta del infinito del plano proyectivo.
Dos cnicas diferentes (curvas proyectivas de grado 2) se cortan exactamente en 4puntos.
.
Corolario 1.13.
Una cnica definida por un polinomio irreducible F de grado 2, no
tiene puntos singulares.
Demostracin: Una cnica es una curva proyectiva de grado 2. Suponemos
que esta cnica tiene un punto singular. Tomemos otro punto de la cnica y
consideramos la recta que pasa por estos dos puntos; esta recta es una curva
proyectiva de grado 1.
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
-
CC-BY-NC-ND PID_00200952 16 Criptografa con curvas elpticas
comn ser de 3 o ms. Ello contradice el teorema de Bezout, a menos que la
recta y la cnica tengan una componente irreducible en comn, componente
que debera ser la propia recta. Pero dado que F es irreducible, la cnica solo
tiene una componente irreducible
1.4. Puntos racionales
El cuerpo de los nmeros racionales lo representaremos por Q.
.
Definicin 1.14 (Sucesin fundamental).
Una sucesin de nmeros an, con ai Q decimos que es una sucesinfundamental si > 0 n N tal que |an am| < , m,n > n, donde lanorma es la norma eucldea.
Observacin
El cuerpo R de los nmerosreales se puede definir comoel conjunto de todas lassucesiones fundamentales,mdulo una cierta relacinde equivalencia.
.
Definicin 1.15 (Cuerpo p-dico).
Sea p primo. Todo nmero a Q se puede escribir de la forma a =prm
n, donde mcd(m,p) = 1 y mcd(n,p) = 1. Entonces, definimos la norma
p-dica de a como: |a|p = 1pr.
Definimos el cuerpo p-dico Qp como el conjunto de todas las suce-
siones 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 paracurvas de grado mayor que2. Para curvas de grado 2, escierto para cualquier nmerode variables, es decir, curvasplanas o no, definidas poruna forma cuadrtica(Hasse-Minkowski).
-
CC-BY-NC-ND PID_00200952 17 Criptografa con curvas elpticas
1.4.1. Puntos racionales de una curva de grado 1
Una curva de grado 1 es una recta. La ecuacin de una tal recta se puede
escribir como Ax + By + C = 0.
Consideremos una parametrizacin de la recta o sea, expresaremos los puntos
de la recta en funcin de un parmetro. Una manera de hacerlo sera:
.
Algoritmo 1.18.
t (t,CAtB )
Ahora, dando a t valores en el cuerpo obtenemos puntos racionales de nuestra
recta. En particular si el cuerpo base es infinito, como Q, R,..., las rectas tienen
infinitos puntos racionales.
1.4.2. Puntos racionales de una curva de grado 2
Una curva de grado 2 es una cnica. En el caso K = Q,R,..., (cuerpos ordena-
dos) 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 2, 3 y 4 son curvas degeneradas o no irreducibles y, por lo tanto, no
las trataremos.
Los casos 5, 6, 7 son proyectivamente equivalentes; es decir, en el plano pro-
yectivo, podemos pasar de unos a otros va un cambio de variables.
-
CC-BY-NC-ND PID_00200952 18 Criptografa con curvas elpticas
Ejemplo 1.5. Clculo de puntos racionales en una cnica
Consideremos, como ejemplo, la cnica afn x2 + y2 = 1 y calculemos sus puntos racio-nales. En primer lugar, se ve fcilmente que el punto p = (0,1) es un punto racional de lacurva. Ahora, vamos a ver si podemos calcular los restantes.
Los puntos de la cnica los podemos pensar como intersecciones de la cnica con rectas
que pasan por este punto fijado p = (0,1).
Consideramos las rectas r : Ax + By + C = 0, del haz de rectas que pasan por el punto p.Como p = (0,1) pertenece a la recta, se tiene que B + C = 0, o sea C = B.
Podemos, por tanto, escribir la ecuacin de la recta r como Ax + By B = 0 o, tambin,ABx + y 1 = 0.
Hagamos A =A
By, entonces la recta ser, Ax + y 1 = 0.
As, el haz de rectas que pasan por p = (0,1) es {Ax + y 1 = 0}A (o sea, variando losvalores 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:x = 0 punto (0,1)x(1 + A2) 2A = 0, x =
2A
1 + A2 punto
2A
1 + A2,1 A2
1 + A2
As, escogiendo como punto fijo p = (0,1), parametrizamos la cnica inicial de la siguientemanera:
Algoritmo 1.19.
t
2t1+t2
, 1t2
1+t2
Para cada t del cuerpo base, el punto de la curva
2t
1 + t2,1 t2
1 + t2
tambin lo es; en
particular si el cuerpo es infinito, la curva dada por f (x,y) = x2 + y2 1 tiene infinitospuntos racionales.
1.4.3. Puntos racionales de una curva de grado 3
Observacin
Hemos demostrado que, enel caso de un cuerpo infinito,si una cnica tiene un puntoracional, posee infinitos. Conesto no podemos decir quetoda cnica tiene infinitospuntos racionales porqueexisten curvas sin ningnpunto racional; por ejemplo,x2 + y2 = 1 sobre Q.
Una curva de grado 3 es una cbica.
.
Proposicin 1.20.
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 sin-
gular tiene multiplicidad 2.
-
CC-BY-NC-ND PID_00200952 19 Criptografa con curvas elpticas
Demostracin: Suponemos que tenemos una cbica con dos puntos singu-
lares. 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 exacta-
mente 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.
1.4.4. Puntos racionales de una curva de grado 4
.
Teorema 1.23 (Teorema de Faltings (1983)).
Las curvas irreducibles de grado 4 tienen un nmero finito de puntosracionales sobre el cuerpo Q.
-
CC-BY-NC-ND PID_00200952 20 Criptografa con curvas elpticas
Resumimos lo que hemos dicho hasta ahora sobre los puntos racionales so-
bre Q:
Curvas de grado 1: hay infinitos puntos racionales.
Curvas de grado 2: si hay un punto racional, hay infinitos. Hilbert y Hur-witz (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, conjun-to que es finitamente generado. Mordell, 1923.
Curvas de grado 4: hay un nmero finito de puntos racionales. Conjetura-do por Mordell y demostrado por Faltings, 1983.
-
CC-BY-NC-ND PID_00200952 21 Criptografa con curvas elpticas
2. Geometra de las curvas elpticas.
Comencemos dando una definicin ms formalizada de curva elptica.
.
Definicin 2.1 (Curva elptica).
Una curva elptica es una curva plana no singular de grado 3 junto con
un punto racional prefijado, que denominaremos punto base.
2.1. Ecuacin de Weierstrass
Cualquier curva elptica puede ser escrita en P2 como una ecuacin cbica de
la siguiente forma:
Ax3 + Bx2y + Cx2z +Dxyz + Ey2z + Fy2x +Gy3 +Hz3 + Iz2x + Jz2y = 0
Tomando un sistema de referencia adecuado, tales curvas se pueden expresar
en la forma de Weierstrass:
y2z + a1xyz + a3yz2 = x3 + a2x
2z + a4xz2 + a6z
3 (1)
con a1, . . . ,a6 K
O en el plano afn, curvas de grado 3 de la forma:
y2 + a1xy + a3y = x3 + a2x
2 + a4x + a6 (2)
Si char(K) 6= 2, entonces
(y +1
2a1x +
1
2a3)
2 = y2 + a1xy + a3y +1
4a1x
2 +1
4a23 +
1
2a1a3x
(y +1
2a1x +
1
2a3)
2 (1
4a1x
2 +1
4a23 +
1
2a1a3x) = x
3 + a2x2 + a4x + a6
-
CC-BY-NC-ND PID_00200952 22 Criptografa con curvas elpticas
Podemos pues simplificar la ecuacin (1) haciendo el cambio
y := y +1
2a1x +
1
2a3
y nos queda:
y2 = x3 + (a2 +1
4a1)x
2 + (a4 +1
2a1a3)x + (a6 +
1
4a23)
Por tanto, si char(K) 6= 2, la ecuacin de Weierstrass se puede escribir:
y2 = x3 +b24x2 +
b42x +
b64
(3)
Suponemos ahora que adems la caracterstica del cuerpo es diferente de 3 ,
(x +b23 4)
3 = x3 +b24x2 +
b2242 3x +
b32(3 4)3
y2 = (x +b23 4)
3 3xb22
(3 4)2 (b23 4)
3 + 2b4x + b6
Hagamos ahora el cambio,
x := x +b23 4
y nos queda la ecuacin:
y2 = x3 + 27c4x 54c6
Hemos simplificado ms todava la ecuacin puesto que hemos eliminado el
coeficiente de x2.
Finalmente si char(K) 6= 2,3, la ecuacin (1) se puede escribir de manera mssimple cmo:
y2 = x3 + Ax + B (4)
De manera similar, cuando tenemos un cuerpo de caracterstica 2 o 3, tambin
se puede simplificar la ecuacin (1).
Si char(K) = 2, entonces la ecuacin de la curva elptica tiene una de las dos
formas siguientes:
Si a1 6= 0 en la ecuacin (1) : y2 + xy = x3 + b2x2 + b6, donde b6 6= 0
Si a1 = 0 en la ecuacin (1) : y2 + b3y = x
3 + b4x + b6, donde b3 6= 0(5)
-
CC-BY-NC-ND PID_00200952 23 Criptografa con curvas elpticas
Si char(K) = 3, entonces tenemos:
y2 = x3 + a2x2 + a6 (6)
Las dos primeras curvas y2 = x3 10x + 9 y y2 = x3 2x + 3 definidas sobrelos nmeros reales. La ltima, y2 = x3 + 10x + 9 sobre F1031
y
x
8
6
4
2
2
4
6
8
0
543213 2 1
y
x
0
43211
10
5
10
5
0
1.000
800
600
400
200
0 1.000800600400200
.
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:
6= 0 C no tiene puntos singulares. = 0 y A = 0 = C tiene una cspide. = 0 y A 6= 0 = C tiene un nodo.
-
CC-BY-NC-ND PID_00200952 24 Criptografa con curvas elpticas
Demostracin: Sea C : y2 = x3 +Ax+B, f (x,y) = x3 +Ax+B y2. C tiene puntos
singulares si, y solo si,f
x(p) = 0,
f
y(p) = 0.
8>>>>>>>:
f
x= 3x2 + A
f
y= 2y
Puntos singulares:
8>>>>>>>:
f
x= 0 x =
rA
3,
f
y= 0 y = 0
x3 + Ax + B y2 = 0 A3x + Ax + B = 0 x = 3B
2A
entonces
x2 =9B2
4A2=A
3 4A3 + 27B2 = 0
1) C no tiene puntos singulares si, y solo si, 4A3 + 27B2 6= 0.
2) Sea 4A3 + 27B2 = 0 y A = 0, entonces B = 0 y f (x,y) = x3 y2. El punto (0,0)
es un punto singular, adems, segn la definicin1.11, sabemos que es una
cspide.
3) Sea 4A3 + 27B2 = 0 y A 6= 0. El punto3B2A
,0es un punto singular. f (x,y) =
x3 +Ax+By2 se puede escribir como f (x,y) =x
3B
2A
3+9B
2A
x
3B
2A
2(y0)2,
entonces f2x
3B
2A,y 0
=9B
2Ax2 y2 =
r9B2A
x yr9B
2Ax + y
. As, el punto3B
2A,0es un punto doble y, segn la definicin1.11, sabemos que es un nodo.
2.2. La ley de grupo de una curva elptica
Sea C P2 una curva elptica dada por la ecuacin de Weierstrass. DenotemosO al punto base de la curva. Sea L P2 una recta. Como la ecuacin de la curvatiene grado 3, L y C se intersecan en, exactamente, 3 puntos, digamos L C ={P,Q,R}. Observemos, sin embargo, que si L es tangente a C, entonces P,Q,Rno sern tres puntos diferentes; habr uno doble (el punto de tangencia). El
hecho de que L C, contando multiplicidades, d tres puntos se deduce delteorema de Bezout (teorema 1.12).
-
CC-BY-NC-ND PID_00200952 25 Criptografa con curvas elpticas
2.2.1. Ley de grupo en C
Sean P,Q C y L la recta que pasa por estos dos puntos (la tangente en el casoP = Q), y R el tercer punto de interseccin de L y C. Sea L la recta que une R y
O. Entonces LC = {R,O,P+Q}; es decir P+Q es el tercer punto de interseccinde la curva y la recta que pasa por R y O.
Definimos as una operacin sobre los puntos de la curva elptica de forma
que P + Q sea el punto calculado a partir de P y Q tal y como acabamos de
describir en el prrafo anterior. La operacin que hemos definido dota a C de
estructura de grupo abeliano.
.
Proposicin 2.3.
La ley de grupo en C tiene las siguientes propiedades:
Si L C = {P,Q,R} (puntos no necesariamente diferentes), entonces(P +Q) + R = O.
P +O = P, P C. P +Q = Q + P, P,Q C. P C (P) C tal que P + (P) = O. (P +Q) + R = P + (Q + R), P,Q,R C
Notacin
Para n Z, P Cescribiremos: nP = P + + P n veces, si
n > 0. nP = (P) + + (P) |n|
veces, si n < 0 0P = O
Para facilitar los clculos, tomaremos como punto base el punto del infinito
de la curva, O = (0 : 1 : 0). Dados dos puntos de la curva, P y Q calculemos
R (en la figura siguiente, R es el tercer punto donde la recta que pasa por P y
Q corta a la curva). Si ahora queremos calcular la interseccin de la recta que
pasa por R y O con la curva elptica, basta encontrar el simtrico de R respecto
al eje de las x.
Suma de dos puntos
P + Q
P
Q
-
CC-BY-NC-ND PID_00200952 26 Criptografa con curvas elpticas
Finalmente, detallamos un algoritmo, anlogo al algoritmo de multiplicar y
elevar al cuadrado, para calcular nP con el mnimo nmero posible de opera-
ciones.
Antes que nada calcularemos la expansin binaria de n: n b1b2 . . . br, bi {0,1} (br es el bit menos significativo, o sea, las unidades).
.
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 en binario es 10011. Entonces, de acuerdo con el algoritmo anterior
19P = 2
22`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
Empezaremos calculando la recta que pasa por P1 y P2, que denominaremos L : y = x+
=7 10
9 3=
1
2= 12 = 11
10 = 11 3 + = = 10 10 = 0
-
CC-BY-NC-ND PID_00200952 27 Criptografa con curvas elpticas
Por lo tanto L : y = 11x.
Ahora calcularemos la interseccin de esta recta con la curva, o sea L C:
8>:
y = 11x
y2 = x3 + x + 1
Sustituyendo la y en la ecuacin de la curva obtenemos
6x2 = x3 + x + 1
luego
0 = x3 + 17x2 + x + 1 = (x 3)(x 9)(x x3)
puesto que sabemos que pasa por los puntos P1 y P2.
Recordar
De acuerdo con el teoremade Bezout, una recta corta auna curva elptica en trespuntos P,Q,R. Si dos de estospuntos son iguales, digamosP = Q, entonces la recta estangente a la curva en elpunto P.
Igualamos los coeficientes de grado 2:
17 = 3 9 x3 = x3 = 12 17 = 17
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 algorit-mo 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
x(P)(x x1) +
f
y(P)(y y1) = 0
Tenemos f (x,y) = y2 x3 x 1
8>>>>>>>:
f
x(P1) = 4 1 = 18
f
y(P1) = 20
Por lo tanto 18(x 3) + 20(y 10) = 18x + 20y + 22 = 0 10y = 14x + 12 5y = 7x + 6y = 6x + 15, (51 = 14).
LP1 : y = 6x + 15 recta tangente por P1.
-
CC-BY-NC-ND PID_00200952 28 Criptografa con curvas elpticas
Ahora calcularemos la interseccin LP1 C
8>:
y = 6x + 15
y2 = x3 + x + 1
Sustituyendo y en la ecuacin de la curva tenemos
(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
x(Q) = 13
f
y(Q) = 1
Por lo tanto 13(x 7) + (y 12) = 13x + y + 11 = 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
0 = x3 8x2 12x 5 = (x 7)2(x x3)
Miramos el coeficiente de grado 2:
8 = 7 7 x3 = x3 = 17
y3 = 10 17 + 11 = 20
-
CC-BY-NC-ND PID_00200952 29 Criptografa con curvas elpticas
El punto de interseccin es (17,20) y, el simtrico sobre F23, es (17,3).
O sea: R = 2Q = (17,3)
Ahora, la recta que pasa por P1 y R, LP1,R : y = x +
=3 10
17 3=
8
7= 8 10 = 11
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
y2 = x3 + x + 1
El punto de interseccin es (9,7) y el simtrico sobre F23, es S = R + P1 = (9,16).
Calcularemos la tangente que pasa por S:
8>>>>>>>:
f
x(Q) = 9
f
y(Q) = 9
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
El punto de interseccin es (6,19) y el simtrico a F23, es 2S = (6,4). Esta es la solucinque buscbamos:
10P1 = (6,4)
-
CC-BY-NC-ND PID_00200952 30 Criptografa con curvas elpticas
Ejemplo 2.3.
Sea K = F16, C : y2 + xy = x3 + 4x2 + 1, P1 = (
6,8), P2 = (3,13).
Construir el cuerpo F16 (utilizando el polinomio primitivo x4 + x + 1)
Calcular P1 + P2
Calcular 2P1
En primer lugar construiremos el cuerpo finito F16 = Z2[x]x4 + x + 1 .
Sea = [x], la lista de los elementos en forma exponencial y su equivalente forma poli-nomial es entonces:
= [x]
2 = [x]2 = [x2]
3 = [x]3 = [x3]
4 = [x]4 = [x4] = [x + 1] = [x] + 1 = + 1
5 = 4 = 2 +
6 = 3 + 2
7 = 4 + 3 = 3 + + 1
8 = 2 + 1
9 = 3 +
10 = 2 + + 1
11 = 3 + 2 +
12 = 3 + 2 + + 1
13 = 3 + 2 + 1
14 = 3 + 1
15 = 1
Ahora calcularemos P1 + P2 =
Recta que pasa por P1 y P2, LP1,P2 : y = ax + b
a =13 8
3 6=3 + 2 + 1 + 2 + 1
3 + 3 + 2=3
2=
Por lo tanto, y = x + b. El punto P1 pertenece a LP1,P2 :
8 = 6 + b = b = 8 + 7 = 11
LP1,P2 : y = x + 11
-
CC-BY-NC-ND PID_00200952 31 Criptografa con curvas elpticas
LP1,P2 C
8>:
y = x + 11
y2 + xy = x3 + 4x2 + 1
Sustituyendo el valor de y en la segunda ecuacin, tenemos:
2x2 + 10 + x2 + 11x = x3 + 4x2 + 1
0 = x3 + 8x2 + 12x + 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
Sobre F4, el simtrico de un punto es l mismo.
Solucin:
P1 + P2 = (1,6)
En segundo lugar, vamos a calcular 2P1
Tangente que pasa por P1:
8>>>>>>>:
f
x(P1) =
9
f
y(P1) =
6
9(x 6) + 6(y 8) = 0 3x + 9 + y + 8 = 0
LP1 : y = 3x + 12
LP1 C
8>:
y = 3x + 12
y2 + xy = x3 + 4x2 + 1
-
CC-BY-NC-ND PID_00200952 32 Criptografa con curvas elpticas
Sustituyendo el valor de y en la segunda ecuacin, tenemos:
6x2 + 9 + 3x2 + 12x = x3 + 4x2 + 1
0 = x3 + 10x2 + 12x + 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
Dada una curva elptica, para calcular el resultado de hacer operaciones de
acuerdo con la ley de grupo definida en el subapartado 2.2.1, podemos usar
una frmula que resume los clculos que acabamos de hacer en los ejercicios
anteriores.
Observacin
Verificar, si se desea, que elpunto base O = (0,1,0)pertenece a la curvaC : y2 = x3 + Ax + B.
Consideramos la curva elptica C sobre K con char(K) 6= 2,3, con ecuacinC : y2 = x3 + Ax + B. El punto base (en la recta del infinito) es O = (0 : 1 : 0)
de forma que el simtrico P de un punto P = (x,y) se puede tomar como P =
(x, y). Sean P = (x1,y1),Q = (x2,y2),P +Q = (x3,y3), con P,Q C, P = (x1, y1).Suponemos que Q 6= P. Entonces:
a)P 6= Q
8>>>>>>>>>:x3 =
y2 y1x2 x1
2 x1 x2
y3 =
y2 y1x2 x1
(x1 x3) y1
b)P = Q
8>>>>>>>>>>>>>:
x3 =
3x21 + A
2y1
!2 x1 x1
y3 =
3x21 + A
2y1
!(x1 x3) y1
-
CC-BY-NC-ND PID_00200952 33 Criptografa con curvas elpticas
Si Q = P, P +Q = O (punto base de C).
Si char(K) = 2, tenemos dos casos (ver ecuacin 5):
E : y2 + cy = x3 + ax + b, c 6= 0P = (x1,y1 + c)
a) P 6= Q
8>>>>>>>>>:x3 =
y1 + y2x1 + x2
2+ x1 + x2
y3 =
y1 + y2x1 + x2
(x1 + x3) + y1 + c
b) P = Q
8>>>>>>>>>:
x3 =x41 + a
2
c2
y3 =
x21 + a
c
!(x1 + x3) + y1 + c
E : y2 + xy = x3 + ax + b, b 6= 0P = (x1,y1 + x1)
a) P 6= Q
8>>>>>>>>>:x3 =
y1 + y2x1 + x2
2+y1 + y2x1 + x2
+ x1 + x2 + a
y3 =
y1 + y2x1 + x2
(x1 + x3) + x3 + y1
b) P = Q
8>>>>>>>>>:
x3 = x21 +
b
x21
y3 = x21 +
x1 +
y1x1
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 917 7
2 7 17 =
9
8 1 = 3,
y3 =6 9
17 7(7 3) 9 =
3
44 9 = 22.
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 Criptografa con curvas elpticas
3. Curvas elpticas sobre cuerpos finitos.
3.1. Nmero de puntos de una curva elptica
En todo este apartado K = Fq representar un cuerpo finito, con q = pm ele-
mentos, para un cierto m N y p primo. Si E es una curva elptica sobre Kescribiremos E o E(q) para designarla.
Recordar
Zn representa el anillo de losenteros mdulo n.
Notacin
Escribiremos N = #E(q) paraindicar el nmero de puntosracionales de E.
.
Teorema 3.1.
`E(q), +
, donde + representa la ley de grupo definida en el subapartado
2.2.1, es un grupo cclico, que puede ser generado por un solo elemen-
to, 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 = n1n2.
.
Definicin 3.2 (Residuos cuadrticos).
Sea x Fq. Si existe z Fq tal que x = z2, diremos que x es un resi-duo cuadrtico (QR). En caso contrario, diremos que x es un no-residuo
cuadrtico (QNR).
.
Definicin 3.3 (Smbolo de Legendre).
Sea p un nmero primo y sea n Fp. Definimos el smbolo de Legendrede n respecto p, y lo denotaremos por
n
p
, cmo:
n
p
=
8>>>:
1 si n es QR (mod p)
1 si n es QNR (mod p)
-
CC-BY-NC-ND PID_00200952 35 Criptografa con curvas elpticas
Suponemos que char(K) 6= 2,3, E : y2 = x3 +Ax+B. La curva E contiene el puntodel infinito (0 : 1 : 0), por lo tanto, el nmero de puntos de la curva es N 1.Tomemos ahora x Fq (x puede tomar q valores diferentes), si y Fq talque y2 = x3 + Ax + B, entonces y tambin cumple esta ecuacin. Por lo tanto,
podemos decir que N 1 + 2q.
Definimos ahora el carcter cuadrtico :
.
Algoritmo 3.4.
Fq {1, 1}x 1, si x es QRx 1, si x es QNR
Recordar
Un carcter cuadrtico esun homomorfismo del grupomultiplicativo del cuerpofinito Fq (que escribiremosFq ) en el grupo multiplicativo{1, 1}.
Si q es un nmero primo,
entonces (x) =
x
q
.
Sea f (x) = x3 + Ax + B. Fijado x Fq, si f (x) es QR, entonces tenemos 2 puntosde la curva; en cambio, si es QNR no tenemos ninguno. As, podemos escribir
N en funcin de f (x):
N = 1 +XxFq
((f (x)) + 1) = 1 + q +XxFq
(f (x))
Vemos el caso particular q = p , Fq = Z/p.
x Z/p, xp1 = 1 (mod p) = x p12 =
8>>>:+1, si x es QR
1, si x es QNR
.
Lema 3.5.
Sea p un nmero primo.
Xx(Z/p)
xi =
8>>>:p 1, si i = 0 o i = p 1
0, si i 6= 0,p 1
Demostracin: Si i = 0, es claro queX
x(Z/p)
x = p 1. Con i = p 1 nos
encontramos en la misma situacin puesto que xp1 = 1 (mod p).
-
CC-BY-NC-ND PID_00200952 36 Criptografa con curvas elpticas
Consideramos el caso i 6= 0,p 1:
x (Z/p) tenemos que xp x = 0. Por lo tanto, podemos escribir xp x =(x x1) (x xp), donde Z/p = {x1, . . . ,xp}.
Mirando el coeficiente de xp1 en la ecuacin xp x = 0, tenemos 0 = x1+ +xp.Tambin, mirando el coeficiente de xp2 tenemos
Xi,j
xixj = 0. PeroP
x2i =
(P
xi)2 2
Pxixj = 0. Haciendo lo mismo para cada exponente i encontrara-
mos:X
x(Z/p)
xi = 0, i / {0,p 1}.
Usaremos este lema para encontrar el valor de N:
N =1 + p +XxFp
(f (x)) = 1 + p +XxFp
(f (x))p12
= 1 + p +XxFp
(x3 + Ax + B)p12 = 1 + p +
XxFp
3p12X
i=0
fixi
= 1 + p +
3p12X
i=0
fiXxFp
xi = 1 + p +
3p12X
i=0
fiXxFp
xi + f0
= 1 + p + (p 1)f0 + (p 1)fp1 + f0.
Por lo tanto, N = 1 fp1 (mod p).
Casos especiales:
Si fp1 = 0 (mod p) y, ms concretamente, si N = 1 + p, E se denominacurva supersingular. Este tipo de curvas es importante, puesto que existe
un algoritmo para romper el logaritmo elptico definido sobre ellas.
Si fp1 = 1 (mod p) y, concretamente, si N = p, E se denomina curva anma-la. En este caso tambin es sencillo romper el logaritmo elptico (Semaev-
Smart-Satoh-Araki).
.
Definicin 3.6 (Curvas supersingulares y anmalas).
Dado el cuerpo K = Fq, con q = pm, p primo, entonces:
Si N = 1+q t, donde p | t, diremos que E es una curva supersingular.
Si N = 0 (mod p), diremos que E es una curva anmala.
-
CC-BY-NC-ND PID_00200952 37 Criptografa con curvas elpticas
Observacin
El teorema de Hasse nos daun intervalo bastanteajustado para el valor N:1+q2
q N 1+q+2q.
.
Teorema 3.7 (Teorema de Hasse, 1930).
Consideramos la curva elptica E(q) y sea N el nmero de puntos racio-
nales de E(q). Se cumple:
|N (1 + q)| 2q
Para la demostracin de este teorema, se necesita la hiptesis de Riemann.
Hiptesis de Riemann
Es uno de los problemasabiertos ms importantes yfamosos de la matemticacontempornea. Es el cuartoproblema del milenio que elClay Mathematics Institutedot con un premio de unmilln de dlares para laprimera persona que aporteuna demostracin correctade la conjetura.
.
Definicin 3.8 (La funcin de Riemann).
La funcin de Riemann viene dada por:
(s) =Y
p primo
1
1 1
ps
!=XnN
1
ns
Para valores reales de s tenemos:
(s) =
8>>>>>>>>>>>:
1 + 12 +13 +
14 + =, si s = 1
tiene solucin, si s > 1
diverge, si s < 1.
La hiptesis de Riemann dice que, sobre el cuerpo de los nmeros com-
plejos, los ceros no triviales de (s) se encuentran todos sobre la recta
Re(s) = 12 .
Ahora nos planteamos el problema inverso. Dado un valor N, existe una
curva elptica que tenga este nmero de puntos?
.
Teorema 3.9.
Sobre el cuerpo finito Fq, donde q = pm y p primo, si t es cualquier valor
tal que:
8>>>:|t| 2q
si p|t pn|t, donde n =jm + 1
2
k
entonces, podemos encontrar una curva elptica con N = 1+q+t puntos.
-
CC-BY-NC-ND PID_00200952 38 Criptografa con curvas elpticas
Ejemplo 3.1.
Las curvas elpticas sobre Z2 se pueden escribir cmo:
y2 + xy = x3 + b2x2 + b6, si = b6 6= 0
y2 + b3y = x3 + b4x + b6, si = b
43 6= 0
Por el teorema de Hasse, 3 22 N 3 + 2
2 1 N 5.
E : y2 + y = x3 + x + 1, N = 1 (solo tiene el punto del infinito). E : y2 + y = x3 + x, N = 5. E : y2 + xy = x3 + x2 + 1, N = 2. E : y2 + xy = x2 + 1, N = 4. E : y2 + y = x3 + 1, N = 3. E : y2 + y = x3, N = 3.
Las dos ltimas curvas son curvas supersingulares, puesto que N = 1 + p y la tercera esuna curva anmala.
Cmo podemos calcular el nmero de puntos N de una curva elptica? Hay
diferentes mtodos:
1) Por fuerza bruta, probando toda pareja de puntos (x,y) F2q .
2) A partir de P = (x,y) E, y 6= 0, calculamos 2P, 3P, hasta obtener elsubgrupo P E. Si E fuera cclico (n1 = N,n2 = 1) y P fuera un generadorde E, obtendramos P = E. En el supuesto de que N fuese un nmero primo,tendramos que todos los P 6= O son generadores.
3) Algoritmo de Schoof (1985). Calcula el nmero de puntos de una curva
con una complejidad O(log82(q)).
Hay casos particulares algo ms sencillos; por ejemplo, curvas del tipo y2 =
x3+Ax o y2 = x3+B. En estos casos se usa el algoritmo de Munuera-Tena (1993)
con complejidad del orden de O(log32(p)).
3.2. Extensin de una curva sobre un cuerpo a una curva sobre un
cuerpo extendido
Una curva elptica definida sobre Fp puede considerarse tambin definida so-
bre 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_00200952 39 Criptografa con curvas elpticas
Ejemplo 3.2.
Consideramos la curva E : y2 + y = x3. Sabemos que E tiene 3 puntos sobre Z/2. Vamos acalcular cuntos puntos tiene la curva definida por la misma funcin, sobre F2m .
Calculamos y , haciendo t =`N (p + 1)
en la ecuacin anterior:
x2 + (3 3)x + 2 = 08 2160).
-
CC-BY-NC-ND PID_00200952 42 Criptografa con curvas elpticas
Para resistir el ataque de Semaev-Smart-Araki, el nmero de puntos de lacurva no debe ser mltiple de p.
Para resistir la reduccinMOV n (orden del punto escogido) no debe dividirpk 1, k pequeo.
Para resistir los ataques contra curvas elpticas supersingulares, el nmerode 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 tcni-
ca 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 consi-
derarla 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 so-
bre 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 resis-
tente 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. En-
tonces, 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, cono-
ciendo 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
que el cuerpo Q(pt2 4q) tiene un nmero pequeo de clases de ideales. Para
-
CC-BY-NC-ND PID_00200952 43 Criptografa con curvas elpticas
curvas elpticas sobre Fp este mtodo se denomina mtodo de Atkin-Morain y,
sobre F2m , mtodo de Lay-Zimmerman.
4) Mtodo de eleccin aleatoria. Como su nombre indica, en este mtodo se
elige la curva de manera aleatoria. Fijado un cuerpo finito Fq, suponemos que
char(K) 6= 2,3 y la curva E : y2 = x3 + Ax + B. Seleccionamos A,B Fq de formaaleatoria, pero satisfaciendo 4A3 + 27B2 6= 0. Calculamos entonces el nmerode puntos de la curva sobre Fq y lo factorizamos. Este proceso se repetir hasta
encontrar una curva que pueda resistir los ataques anteriores.
Este mtodo es especialmente usado en el caso de trabajar con curvas elpticas
sobre Fp, puesto que resultados de Lenstra demuestran su funcionalidad. Para
curvas elpticas sobre F2m hay resultados similares en los trabajos de Water-
house y Schoof.
4.3. Asignacin de mensajes a puntos
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) 6= 2,3. E : y2 = f (x) =x3 + Ax + B.
4.3.1. Creacin de una tabla
Sea m el mensaje que queremos transmitir, 0 < m < C, donde C es una cota
superior del nmero de mensajes diferentes. Tomamos k arbitrario (que llama-
remos grado de fiabilidad), escogemos p primo tal que p > Ck, p con al menos
160 bits para asegurar la fortaleza del sistema. Podemos suponer los elementos
1, . . . ,Ck contenidos en Z/p usando la siguiente tabla:
26666666666666666664
1 2 . . . k 1
k k + 1 k + 2 . . . 2k 1
......
... . . ....
mk mk + 1 mk + 2 . . . (m + 1)k 1
......
... . . ....
(C 1)k . . . Ck 1
37777777777777777775
donde cada fila representa una clase.
Dadom, tomamos x = mk y calculamos y2 = f (x). Si f (x) no tiene raz cuadrada,
entonces necesitamos otro valor de x, tomamos x = mk + 1 y repetimos el
-
CC-BY-NC-ND PID_00200952 44 Criptografa con curvas elpticas
mismo proceso hasta encontrar x tal que f (x) tiene raz cuadrada, tomando
entonces y =pf (x).
Ahora nos podramos preguntar: este valor x se encuentra en la clase de m?
Sabemos que la mitad de los elementos de Z/p tienen raz cuadrada y estn
repartidos aleatoriamente. La probabilidad que en una fila no haya un cua-
drado es pues 12k. Por lo tanto, la probabilidad de que en una fila no haya una
x vlida se puede hacer tan pequea como queramos, aumentando el valor
de k.
As pues, dado m, existe un valor j {1, . . . ,k 1} tal que el punto P = (mk+ j,y)pertenece a la curva. Tenemos entonces la correspondencia:
.
Algoritmo 4.4.
Curva Z/pm (mk + j,y)jk
k (,)
4.3.2. Mtodo de curvas entrelazadas
.
Definicin 4.5 (Curvas entrelazadas).
Sea E : y2 = x3 + Ax + B una curva elptica sobre Z/p, p primo. Sea E :
y2 = x3 + A2x + B3, con Z/p, NQR. Diremos que E y E son curvasentrelazadas.
Observacin
Fijada una curva E, existe unagran cantidad de parejas(E,E) de curvas entrelazadas.
.
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 bi-
yectiva entre el conjunto de valores {0,1, . . . ,2p + 1} y el conjunto de puntosde 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 siguientemanera:
-
CC-BY-NC-ND PID_00200952 45 Criptografa con curvas elpticas
m =
8>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:
2x, s P E, 0 y p 12
2x + 1, s P E, p 12
< y p
2p, s P = (,) E2x
, s P E, 0 y p 1
2
2x
+ 1, s P E, p 1
2< y p
2x
+ 1, s P = (x,0) E
2p + 1, s P = (,) E
donde2x
se ha de reducir mdulo 2p.
Supongamos ahora que tenemos el mensaje m. El punto asociado es:
P =
8>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:
(m
2,) E, si m es par y 6= 0 es QR (mod p)
(m
2,q3) E, si m es par y 6= 0 es NQR (mod p)
(m
2,0) E, si m es par, m
26= p y = 0
(,) E, si m es par, m2
= p
(m 1
2, ) E, si m es impar y 6= 0 es QR (mod p)
(m 1
2, q3) E, si m es impar y 6= 0 es NQR (mod p)
(m 1
2,0) E, si m es impar, (m 1)
26= p y = 0
(,) E, si m es impar, (m 1)2
= p
donde x3 + Ax + B (mod p) y , son las races cuadradas de unelemento .
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) (0,30) (1,6) (1,25) (6,7) (6,24)
(8,14) (8,17) (10,15) (10,16) (11,1) (11,30)
(13,6) (13,25) (14,11) (14,20) (17,6) (17,25)
(18,11) (18,20) (19,2) (19,29) (20,1) (20,30)
(21,5) (21,26) (22,12) (22,19) (24,3) (24,28)
(26,4) (26,27) (27,7) (27,24) (29,7) (29,24)
(30,11) (30,20) (,)
-
CC-BY-NC-ND PID_00200952 46 Criptografa con curvas elpticas
Puntos de E:
8>>>>>>>>>>>>>>>>>:
(1,15) (1,16) (3,5) (3,26) (8,10) (8,21)
(9,7) (9,24) (15,8) (15,23) (20,1) (20,30)
(21,8) (21,23) (22,6) (22,25) (23,4) (23,27)
(24,14) (24,17) (26,8) (26,23) (29,11) (29,20)
(,)
Entre las dos curvas tenemos pues 64 puntos. La correspondencia entre mensajes y pun-
tos viene dada por la tabla siguiente.
punto de E mensaje punto de E mensaje
(0,1) 0 (1,15) 24
(0,30) 1 (1,16) 25
(1,6) 2 (3,5) 10
(1,25) 3 (3,26) 11
(6,7) 12 (8,10) 6
(6,24) 13 (8,21) 7
(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) 8
(13,25) 27 (21,23) 9
(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) 4
(19,29) 39 (26,23) 5
(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 Criptografa con curvas elpticas
5. Criptografa y protocolos criptogrficos basadosen curvas elpticas
.
5.1. Protocolos criptogrficos
Escribiremos EU(m) cuando hablamos de cifrar el mensaje m usando la clave
pblica del usuario U y DU(c) cuando hablamos de descifrar el mensaje c.
5.1.1. Protocolo de Diffie-Helman
Versin clsica. Sea p un nmero primo, Zp un elemento primitivo. Cadausuario U elige al azar un nmero secreto nU Zp y hace pblico el valor nU .Los usuarios A y B desean compartir una clave secreta:
.
Algoritmo 5.1.
AnA B
AnB B
La clave secreta ser K = nAnB , que solo es conocida por A y B.
Versin con curvas elpticas. Sea E una curva elptica sobre Fp y P E puntopblicamente conocido. Cada usuario U elige al azar un nmero secreto nU Fp y hace pblico el valor nUP. Para compartir una clave secreta, A y B deben
hacer:
.
Algoritmo 5.2.
AnAP B
AnBP B
La clave secreta ser K = (nA nB)P que solo es conocida por A y B.
Ejemplo 5.1. Acuerdo de claves de Diffie-Helman usando curvas elpticas
En primer lugar, los usuarios A y B eligen una curva elptica E sobre un cuerpo finito Zp.Tambin eligen un punto P de la curva de forma que su orden sea un nmero primogrande.
Suponemos que la curva elptica es E : y2 = x3 + 5x + 7 sobre Z113. El nmero de puntosracionales de esta curva es 127 que es un nmero primo y, por lo tanto, los puntos de la
curva elptica constituyen un grupo isomorfo a Z127.
Tomemos P = (16,51) que tiene orden ord(P) = 127, o sea P es un generador de la curva E.
-
CC-BY-NC-ND PID_00200952 48 Criptografa con curvas elpticas
Protocolo
A B. El usuario A elige un entero grande nA, calcula KA = nA P y enva KA a B.
Si A toma, por ejemplo, nA = 98, entonces, KA = nA P = (24,74).
B A. El usuario B elige un entero grande nB, calcula KB = nB P y enva KB a A.
Si B toma, por ejemplo, nB = 101; entonces, KB = nB P = (3,7).
A B. El usuario A calcula K = nA KB = nA nB P = 98(3,7) = (5,48).
B A. El usuario B calcula K = nB KA = nB nA P = 101(24,74) = (5,48).
Al finalizar el algoritmo, tanto A como B disponen del mismo punto que tomarn comoclave de sesin: K = (5,48).
Simulador de clculosen curvas elpticas
Para comprobar los clculos
de este ejemplo podis usar
el programa SAGE, que
encontraris en la direccin
http:www.sagemath.org/.
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 curvadefinida por los parmetros [a,b,c,d,e] es y2 + axy + cy = x3 + bx2 + dx + e.
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 calcula-remos, 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 depuntos de la curva E.
El usuario A calcula KA := 98P y el usuario B KB := 101 P:
sage: K_A = 98*Psage: 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 Criptografa con curvas elpticas
5.1.2. Protocolo de tres-pasos de Shamir
Versin clsica. Este protocolo pretende enviar el mensaje m de A a B.
.
Algoritmo 5.3.
AEA(m) B
AEB(EA(m)) B
AEB(m) B
Es fundamental suponer que la funcin criptogrfica utilizada cumple, para
cada pareja de usuarios, EA EB = EB EA. Un ejemplo de funcin criptogrficacon esta caracterstica es EA(x) = x
nA 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.
AmnA B
A(mnA )nB B
AmnB B
Versin con curvas elpticas. Veamos la traduccin del protocolo de Massey-
Omura. Sea E una curva elptica sobre Fq, N = #E(q). Sea P E el mensaje queel usuario A quiere enviar a B. Cada usuario U tiene una clave privada nU tal
que mcd(nU ,N) = 1.
.
Algoritmo 5.5.
AnAP B
AnB(nAP) B
AnBP B
5.2. Criptosistema ElGamal
Versin clsica. Se basa en el problema del logaritmo discreto sobre un cuerpo
finito Z/p, con p primo. Sea Z/p un elemento primitivo el cual se hacepblico. Cada usuario U tiene una clave privada nU Z/p {0,1,p 1} y hacepblica 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 Criptografa con curvas elpticas
A escoge un nmero k Z/p {0,1,p 1} al azar y calcula k, cifra m como c = EB(m) = m (B)k, enva a B el par (c,k).
B para descifrar el mensaje deber hacer:
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
nU < p + 1 2p). La clave pblica de U ser PU = nUP. Suponemos que el
usuario A quiere enviar el mensaje m cifrado al usuario B:
A escoge al azar un nmero k Z/p, calcula Pm el punto de la curva asociado al mensaje m, cifra Pm como C = EB(Pm) = Pm + k PB, enva a B (C,kP).
B para descifrar el mensaje deber hacer:
Pm = C nB(kP), encuentra el mensaje m asociado con el punto Pm.
5.3. Criptosistema RSA
Recordar
La funcin de Euler (n)proporciona el cardinal de losnmeros entre 1 y n que sonprimos con n. En el supuestode que n sea un nmeroprimo n = p, tenemos(p) = p 1. En el supuestode que n = pq es el productode dos primos tenemos(n) = (p 1)(q 1).
Versin clsica. Se basa en la funcin de una va o unidireccional de la po-
tenciacin: E(e,n)(x) = xe (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).
Observacin
Actualmente no se conoceningn algoritmo defactorizacin de complejidadmenor que lasub-exponencial.
Supongamos que un usuario A quiere enviar un mensaje m a B. Los parme-
tros pblicos de B son (e,n), y los privados (p,q,(n),d). A deber seguir los
siguientes pasos:
El usuario A cifra m calculando c = E(e,n)(x) = xe (mod n) (con el mtodo demultiplicar y elevar al cuadrado, por ejemplo),
El usuario A enva c a B.
El usuario B para descifrar el mensaje c deber hacer:
m = D(d,n)(c) = cd (mod n)
-
CC-BY-NC-ND PID_00200952 51 Criptografa con curvas elpticas
Versin con curvas elpticas (esquema de KMOV. 1991). En este esquema se
representan los puntos de una curva elptica de la forma y2 = x3 + b sobre Zn
como En(b). Para generar la clave pblica el usuario B escoger dos nmeros
primos grandes (p,q) tales que p = q = 2 (mod 3) y, como en el esquema clsico,
calcular y publicar (e,n), donde n = pq y mantendr en secreto las clavesprivadas (p,q,(n),d).
Observacin
El esquema de KMOV(Koyama, Maurer, Okamoto,Vanstone) usa curvas elpticasdefinidas sobre Zn, donden = pq es el producto de dosnmeros primos que semantienen en secreto. Laseguridad de KMOV es lamisma que la del esquemaRSA. No obstante, el cifradoen el esquema KMOV es msflexible que en el RSA, porejemplo, la curva elptica nose fija, sino que se construyepara cada nuevo mensaje.Para solucionar esteinconveniente hay otrosesquemas como el deDemytko (1993), Meyer yMller ( 1996), Paillier(1999), etc.
Cada vez que A quiere enviar un mensaje m a B deber seguir los siguientes
pasos:
El usuario A divide su mensajem en dos partesm = (m1,m2) dondem1,m2 Zn.
El usuario A determina el valor b de la curva de forma que m En(b).Especficamente, calcula b = m22 m
31 (mod n).
cifra el punto m calculando c = E(m) = em sobre En(b), enva el texto cifrado c = (c1,c2) a B.
El usuario B para descifrar el mensaje c deber hacer:
a partir del mensaje cifrado c = (c1,c2) el usuario B puede determinar el valorde b puesto que este no cambia en el proceso de cifrado. Especficamente,
calcula b = c22 c31 (mod n) y construye la curva y
2 = x3 + b.
a partir de la clave privada calcula m = D(c) = dc sobre En(0,b).
5.4. Firma digital
En 1991 el NIST (National Institute of Standards and Technology) propuso el
DSS (digital signature standard), basado en el DSA (digital signature algorithm),
como estndar de firma digital. El DSS se basa en el criptosistema ElGamal.
Aun cuando podemos hacer la traduccin de este sistema de firma a las curvas
elpticas, el que veremos es la versin anloga al DSA denominada ECDSA
(elliptic curve digital signature algorithm) puesto que este se ha convertido en el
estndar de firma digital con curvas elpticas.
Ver tambin
El criptosistema ElGamal seestudia en el mduloElementos de criptografade esta asignatura.
Versin clsica: DSS. Usaremos la misma nomenclatura que en el criptosiste-
ma ElGamal que ya hemos visto anteriormente.
El usuario A quiere firmar un mensaje m:
A escoge un nmero k Z/p {0,1,p 1} al azar, tal que mcd(k,p 1) = 1 ycalcula k,
calcula h(m), donde h(.) es una funcin hash, calcula s Z/(p 1) verificando,
h(m) = nA k + k s (mod (p 1)).
-
CC-BY-NC-ND PID_00200952 52 Criptografa con curvas elpticas
La firma de m es la pareja (k,s).
Un usuario que quiera verificar la firma del mensaje m deber hacer:
calcular el hash de m, h(m), obtener del directorio pblico la clave pblica de A: nA , validar la firma comprobando la siguiente igualdad:
h(m) = (nA)k (k)s (mod p).
Versin clsica: DSA. Sea q un nmero primo de unos 160 bits y p otro n-
mero 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:
A escoge un nmero 0 < k < q al azar y calcula r = (k (mod p)) (mod q) calcula el hash de m, 0 < h(m) < q, calcula s que verifica
h(m) + nA r = k s (mod q),
La firma de m es la pareja (r,s).
Un usuario que quiera verificar la firma del mensaje m deber hacer:
calcular el hash de m, h(m), obtener del directorio pblico la clave pblica de A: A = nA , calcular u1 = s1h(m), u2 = s1r (mod q), validar la firma si, y solo si, r = u1 u2A (mod p).
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 serPU = nUP. El usuario A quiere firmar un mensaje m:
A escoge un nmero k [1,n 1] al azar, calcula h(m), donde h(.) es el algoritmo SHA-1 (secure hash algorithm), calcula kP = (x1,y1) y r = x1 (mod n). Si r = 0, entonces volvemos a escoger
otro k y repetimos el mismo proceso.
calcula k1 (mod n) calcula s = k1{h(m) + nAr} (mod n). Si s = 0, volvemos a escoger otro k y
repetimos el mismo proceso.
La firma de m es la pareja (r,s).
-
CC-BY-NC-ND PID_00200952 53 Criptografa con curvas elpticas
Un usuario que quiera verificar la firma del mensaje m deber hacer:
obtener del directorio pblico la clave pblica de A: PA = nAP, verificar que r,s [1,n 1], calcular w = s1 (mod n) y el hash de m: h(m), calcular u1 = h(m) w (mod n) y u2 = r w (mod n), calcular (x0,y0) = u1P + u2PA y v = x0 (mod n), validar la firma si, y solo si, v = r.
Siguiendo las recomendaciones del NIST (National Institute of Standards and
Technology, Digital Signature Standard, FIPS, PUB 186-2. 2000) se debera ve-
rificar que el orden de la curva elptica sobre Fp sea de la forma aq dondeq es primo y a es un entero pequeo, de esta forma la curva no es vulnera-
ble al ataque de Pohlig-Hellman. Tambin es conveniente que la curva no sea
supersingular ni anmala.
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 valo-
res demasiado grandes de p no es prctico.
5.5. Comparacin de los sistemas de clave pblica
5.5.1. Seguridad
Para llegar a un grado aceptable de seguridad el RSA y el DSA deberan usar
claves de 1024 bits, mientras que para la ECC sera suficiente con 160.
A medida que la clave crece, aumenta la distancia entre la seguridad de cada
propuesta. Por ejemplo, el ECC con 380 bits es mucho ms seguro que el
RSA o el DSA con 2000 bits (de hecho, para esta longitud de clave, el ECC es
comparable al RSA de 7600 bits).
5.5.2. Eficiencia
Para comparar los niveles de eficiencia, deberemos tener en cuenta:
1) Costes computacionales, o sea la cantidad de computacin requerida para
cifrar y descifrar.
Cada uno de los tres sistemas, ECC, RSA, DSA, exige un gran esfuerzo compu-
tacional. En el RSA se puede usar un exponente pblico pequeo (aun cuando
se deberan discutir los riesgos en los que se puede incurrir) para mejorar la
rapidez en la verificacin de firmas y en el cifrado, pero no en la generacin
-
CC-BY-NC-ND PID_00200952 54 Criptografa con curvas elpticas
de la firma y el descifrado. Tanto en el DSA como en el ECC se pueden pre-
calcular varias tablas para mejorar el rendimiento. Tambin se pueden utilizar
bases normales y ptimas para trabajar en cuerpos finitos de la forma F2m .
Ver tambin
Las bases normales seestudian en el mduloCuerpos finitos.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) Clave pblica (bits) Clave privada (bits)
RSA 2208 1088 2048
DSA 2208 1024 160
ECC 481 161 160
3) Anchura de banda, o sea, la cantidad de bits que se deben transmitir para
comunicar un mensaje cifrado o una firma digital.
Los tres tipos de criptosistemas requieren la misma anchura de banda cuando
se usan para cifrar o firmar mensajes largos. De todos modos cuando los men-
sajes no son largos se ha de observar con ms atencin (y, de hecho, este tipo
de mensajes son los que usualmente son utilizados en la criptografa de clave
pblica).
Por poder hacer comparaciones, suponemos que queremos firmar un mensaje
de 2000 bits o cifrar un mensaje de 100 bits. Las dos siguientes tablas compa-
ran las longitudes de las firmas y de los mensajes cifrados, respectivamente.
Medida de las firmas en mensajes de 2000 bits
Tamao de la firma (bits)
RSA 1024
DSA 320
ECC 320
Medida de los mensajes de 100 bits, cifrados
Mensaje cifrado (bits)
RSA 1024
ElGamal 2048
ECC 321
En resumen, el sistema ECC tiene una gran eficiencia y, en las implementacio-
nes, esto significa rapidez, bajo consumo y reduccin de la medida del cdigo
transmitido.
-
CC-BY-NC-ND PID_00200952 55 Criptografa con curvas elpticas
6. ECC estndares y aplicaciones.
6.1. ECC estndares
Los progresos realizados en la criptografa con curvas elpticas desde su apa-
ricin 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.
* http://www.certicom.com
Para promover la difusin de las mejores tcnicas conocidas as como la in-
teroperatibidad entre aplicaciones, han ido surgiendo esfuerzos por estanda-
rizar 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.
A continuacin detallamos algunos de los estndares ms importantes, as
como otros ms especficos, basados en aquellos.
6.1.1. Estndares principales
Los primeros frutos importantes del esfuerzo por estandarizar la criptografa
elptica se traducen en la adopcin de sus principales algoritmos dentro de
algunos de los estndares ms importantes de criptografa de clave pblica.
ANSI X9.62, X9.63
El American National Standards Institutes ha sido una de las organizaciones
de ms peso al adoptar las curvas elpticas dentro de sus estndares de cripto-
grafa. Los estndares de esta organizacin son referencia directa para servicios
financieros y la industria en general.
La primera aparicin de la criptografa con curvas elpticas fue en el estndar
X9.62, con la adopcin del esquema de firma digital ECDSA (elliptic curve digi-
tal signature algorithm) en enero de 1999 Algunas de las caractersticas iniciales
que se adoptaron fueron una longitud mnima para las claves de 80 bits, y el
uso de bases normales y polinomiales sobre F2m .
Posteriormente (2000) se ampli este estndar con el X9.63. El ncleo de
este estndar est basado en el anterior, pero se adoptan algunos esquemas
-
CC-BY-NC-ND PID_00200952 56 Criptografa con curvas elpticas
para el intercambio de claves como la ECDH (elliptic curve Diffie-Hellman),
ECMQV (elliptic curve Menezes-Qu-Vastone) o ECUM (elliptic curve unified model
Key Agreement). Aparte de estos tambin se introduce el esquema de cifrado
ECAES (Bellare-Rogaway).
IEEE P1363 y P1363A
La IEEE incluy la criptografa con curvas elpticas en su estndar de cripto-
grafa 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 p-
blica sobre curvas elpticas. Algunas de las caractersticas de este estndar son
las siguientes:
Soporta curvas elpticas sobre Fp y F2m
Apoyo para esquemas de firmado ECDSA (elliptic curve digital signature al-gorithm) y ECNR (Elliptic Curve Nyberg-Rueppel) signature scheme.
Apoyo para algoritmos de intercambio de claves ECDH (elliptic curve Diffie-Hellman) key agreement y ECMQV (elliptic curve Menezes-Qu-Vastone) key
agreement.
Ver tambin
Los pairings se estudian en elmdulo Pairings y susaplicaciones .
Posteriormente, en un draft que complementa este estndar llamado P1363A
(standard specifications for public key cryptography: additional techniques) se in-
troduce la posibilidad de utilizar el esquema de cifrado ECIES. Tambin, en
el draft P1363.3, se introducen los esquemas basados en la identidad usando
pairings.
ISO 14888, 9796-4, 15946
La International Organization for Standarizatcion (ISO) fue otra de las prin-
cipales organizaciones para la estandarizacin que apuesta por aadir la crip-
tografa 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 se-
gunda 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 es-
tndares de la ISO. Tambin podemos encontrar modificaciones a otros estn-
dares 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).
-
CC-BY-NC-ND PID_00200952 57 Criptografa con curvas elpticas
FIPS 186-2
Uno de los primeros xitos de la estandarizacin de los algoritmos cripto-
grficos basados en curvas elpticas fue la adopcin de esta tecnologa por el
National Institute