Caminos de isogenias entre curvas el´ıpticas sobre cuerpos finitos
⋆J.M. Miret1, D. Sadornil2, F. Seb´e1 y J.G. Tena3
1 Dept. de Matem`atica. Universitat de Lleida.
{miret,fsebe}@matematica.udl.cat
2 Dept. Matem´aticas, Estad´ıstica y Computaci´on. Universidad de Cantabria.
3 Dept. de ´Algebra, Geometr´ıa y Topolog´ıa. Universidad de Valladolid.
Resumen. Dadas dos curvas el´ıpticas sobre un cuerpo finito con el mismo cardinal, S.D. Galbraith dise˜n´o un algoritmo probabil´ıstico para encontrar una isogenia entre ellas de grado smooth, es decir, cuyo grado no tiene factores primos mayores que una cierta cota. En este trabajo presentamos un nuevo m´etodo que obtiene una isogenia de grado m´ınimo smooth.
Palabras clave: criptograf´ıa, curvas el´ıpticas, isogenias.
1 Introducci´on
Dadas dos curvas el´ıpticas E1 y E2 sobre un cuerpo finito Fq, una isogenia entre ambas es un morfismo que preserva la ley de grupo. Tate [11] prueba la existencia de una isogenia entre ellas si y s´olo si las dos tienen el mismo cardinal N = q + 1− t, |t| ≤ 2√q. Sin embargo encontrar expl´ıcitamente una isogenia entre ambas curvas es un problema computacionalmente duro.
Esta dificultad est´a en la base de propuestas de sistemas criptogr´aficos de clave p´ublica como [7]. Este criptosistema, basado en un camino de isogenias (secreto) entre dos curvas el´ıpticas (p´ublicas), podr´ıa ser roto por un adver- sario capaz de determinar mediante un proceso eficiente una isogenia entre ambas curvas. Asimismo, la propuesta de firma digital (Patente Microsoft [5]) basa su seguridad en la dificultad de encontrar varias isogenias entre dos cur- vas el´ıpticas de igual cardinal. Todo ello avala el inter´es de la investigaci´on en algoritmos que determinen expl´ıcitamente isogenias entre dos curvas el´ıpticas.
El grado de una isogenia es el grado de la correspondiente inmersi´on de los cuerpos de funciones de las curvas el´ıpticas. Adem´as, una isogenia puede obtenerse como composici´on de isogenias de grado primo. De esta forma, se
⋆Trabajo financiado por los proyectos MTM2007-66842-C02-{01,02} y CSD2007-0004.
puede definir un grafo pesado cuyos nodos son curvas el´ıpticas con igual car- dinal y cuyas aristas representan isogenias entre curvas con peso el grado de la isogenia. En este contexto, el problema se reduce a encontrar un camino entre dos nodos del grafo.
Galbraith [4] da un algoritmo de fuerza bruta para encontrar una tal isoge- nia. La complejidad de su algoritmo es exponencial y, en general, la isogenia encontrada no es la de grado m´ınimo posible (problema que el autor considera a´un m´as dif´ıcil), sino que produce una de grado smooth, es decir, cuyo grado no tiene factores primos mayores que una cierta cota. El algoritmo construye una cadena de isogenias de grados primos entre E1y E2y devuelve la composici´on de las isogenias de la cadena. Empieza calculando dos cadenas espec´ıficas de isogenias ascendentes, seg´un las notaciones de Kohel [6]. La primera cadena une la curva E1 con una curva el´ıptica E1′, cuyo anillo de endomorfismos es el orden maximal OK del cuerpo cuadr´atico K = Q(p
t2− 4q), mientras que la segunda une E2 con una curva E2′, tambi´en verificando que End(E′2) =OK. Seguidamente, se van construyendo dos ´arboles con ra´ız en E1′ y E2′, respecti- vamente, hasta que en los dos ´arboles se obtiene una curva en com´un. Cuando esto sucede, el algoritmo ha encontrado un camino que conecta E1 con E2.
En este trabajo presentamos un nuevo algoritmo que produce una isogenia de grado m´ınimo smooth entre dos curvas el´ıpticas dadas. El algoritmo se basa tambi´en en un enfoque arb´oreo que construye un ´arbol de isogenias con ra´ız en E1, hasta obtener como un nodo del ´arbol la curva E2. Entonces, el algoritmo devuelve las isogenias calculadas a lo largo del camino entre E1 y E2. Una de las diferencias entre la propuesta de Galbraith [4] y la que presentamos en este trabajo es que las isogenias de nuestro ´arbol no se construyen de manera aleatoria como en [4] sino que se calculan de tal manera que sus grados son m´ınimos entre la curva E1 y la curva imagen por la isogenia que se a˜nade al
´
arbol. Por otra parte, para encontrar un camino, nuestro algoritmo no necesita calcular isogenias ascendentes hasta curvas cuyo anillo de endomorfismos es el orden maximal OK, sino que es suficiente ascender a curvas cuyo anillo de endomorfismos es un orden m´as peque˜no.
2 Preliminares
Una curva el´ıptica E sobre un cuerpo perfecto k es una curva proyectiva de g´enero 1 que tiene al menos un punto racional OE. Estas curvas tienen un modelo proyectivo plano no-singular con un ´unico punto en el infinito (forma de Weierstraß). Para cada cuerpo k⊆ K ⊆ k, el conjunto de puntos racionales E(K) tiene estructura de grupo abeliano con el punto del infinito como neutro.
Si la caracter´ıstica del cuerpo es distinta de 2 y 3, una curva el´ıptica E/k se puede expresar en coordenadas afines como:
E/k : y2 = x3+ ax + b,
con a, b∈ k y cuyo j-invariante viene dado por j(E) = 1728
4a3 4a3+27b2
.
2.1 Isogenias
Una isogenia entre dos curvas el´ıpticas E1, E2 sobre un cuerpo k es un mor- fismoI : E1 → E2 definido sobre k tal queI(OE1) = OE2. Una isogenia es un homomorfismo de grupos. Entonces, las curvas E1/k y E2/k se dice que son is´ogenas si existe una isogenia no trivial entre ellas. El grado de la isogenia es el grado de la correspondiente inmersi´on de sus cuerpos de funciones. Adem´as, una isogenia de grado n = n1n2 se puede obtener como una composici´on de isogenias de grados n1 y n2.
Sobre cuerpos finitos, el teorema de Tate [11] establece que dos curvas el´ıpticas son is´ogenas si y s´olo si tienen el mismo cardinal. As´ı, el cardinal N de una curva el´ıptica sobre un cuerpo finito Fq es un invariante de su clase de isogenia.
Dado el j-invariante, j1, de una curva el´ıptica E1 definida sobre Fq, los j-invariantes de sus curvas is´ogenas de grado ℓ se pueden calcular usando poli- nomios modulares [1]. En efecto, dado el ℓ-´esimo polinomio modular Φℓ(x, y), estos j-invariantes se pueden obtener como ra´ıces de
Φℓ(x, j1) (m´od q).
A partir de los coeficientes E1/Fq, del j-invariante j1 = j(E1) y una ra´ız j2 de Φℓ(x, j1) (m´od q) se pueden calcular los coeficientes de una curva E2/Fq is´ogena a E1con j(E2) = j2 (v´ease [1], secci´on VII.4, el trabajo de N.D. Elkies [2] o [10]). Y a partir de los coeficientes de ambas curvas se puede determinar el factor ψ(x)∈ Fq[x] de grado (ℓ− 1)/2 del polinomio de ℓ-divisi´on de E1/Fq asociado al n´ucleo de la isogenia. Entonces, usando las f´ormulas de V´elu [12], se pueden obtener las expresiones de la isogenia como aplicacions racionales
I(x, y) =
ϕ1(x, y)
ψ(x)2 ,ϕ2(x, y) ψ(x)3
donde ϕ1(x, y) y ϕ2(x, y) son polinomios sobre Fq que se pueden deducir de ψ(x).
2.2 Anillos de endomorfismos
El conjunto de todas las isogenias de una curva E/k consigo misma, junto con la aplicaci´on cero, forman un anillo que denotamos por End(E). Dada una curva E/Fq, q = pm, con cardinal N = q + 1− t, |t| ≤ 2√q, que sea ordinaria, es decir, p6| t, podemos considerar el cuerpo cuadr´atico imaginario, K = Q(√
d), donde d es libre de cuadrados y t2− 4q = f2DK,
siendo DK = d si d≡ 1 (m´od 4) o DK= 4d si d ≡ 2, 3 (m´od 4). Entonces el anillo de endomorfismosO = End(E) de E/Fq se puede identificar con un orden de K ([8], Teorema V.3.1), que satisface
Z[π]⊆ O ⊆ OK,
donde OK es el anillo de enteros de K. El anillo Z[π] tiene conductor f en el orden maximal OK y, por tanto, el conductor g deO divide f.
Dadas dos curvas el´ıpticas ordinarias E/Fq, siendo Dπ = t2 − 4q el dis- criminante de su endomorfismo de Frobenius, el s´ımbolo de Legendre para un entero ℓ da informaci´on sobre las isogenias de grado ℓ de E. M´as concre- tamente, E/Fq no tiene isogenias de grado ℓ si Dℓπ
= −1, E/Fq tiene dos isogenias de grado ℓ si Dℓπ
= 1 y E/Fq tiene 1 o ℓ + 1 isogenias de grado ℓ si Dℓπ
= 0.
Dada una isogeniaI : E1→ E2 de grado un primo ℓ, Kohel [6] demostr´o la siguiente relaci´on entre sus anillos de endomorfismos: [O1 : O2] = 1, ℓ o 1/ℓ. Seg´un cada caso, se dice que la isogenia I es horizontal, descendente o ascendente, respectivamente. Esta noci´on de direcci´on permite representar el conjunto de clases de isomorf´ıa de curvas is´ogenas mediante un grafo.
Un volc´an [3] de ℓ-isogenias es un grafo dirigido cuyos nodos son clases de isomorf´ıa de curvas el´ıpticas ordinarias sobre un cuerpo finito Fq y cuyas aris- tas representan isogenias de grado ℓ entre ellas. Estos grafos est´an formados por un ´unico ciclo (con uno, dos o m´as nodos) en el m´aximo nivel, llamado cr´ater, y desde cada nodo del ciclo cuelga un ´arbol completo ℓ-ario, excep- to en el caso que el volc´an se reduzca al cr´ater. Las hojas de estos ´arboles est´an situadas en el mismo nivel, denominado suelo del volc´an. Los volcanes de ℓ-isogenias cuyo primo ℓ divide el conductor f de Z[π] tienen al menos dos niveles (altura ≥ 1).
Los resultados siguientes muestran que una isogenia se puede descomponer como una composici´on de una isogenia ascendente a una curva cuyo anillo de endomorfismos es el producto de los anillos de endomorfismos de las dos curvas dadas, seguida de una isogenia horizontal y una de descendente.
Lema 1. Sean E1 y E2dos curvas el´ıpticas ordinarias cuyos anillos de endoe- morfismos O1, O2 tienen conductores g1 y g2. SeaI : E1 → E2 una isogenia.
Si ℓ es un primo que divide g1
gcd(g1, g2) o g2
gcd(g1, g2), entonces el grado de I es divisible por ℓ.
Demostraci´on. Se deduce directamente de la Proposici´on 1 de [4] y de la Proposici´on 21 de [6].
Proposici´on 1. Sean E1 y E2 dos curvas el´ıpticas ordinarias con el mismo cardinal cuyos anillos de endomorfismos O1, O2 tienen conductores g1 y g2, respectivamente. Entonces, una isogenia de E1 a E2 de grado n se puede descomponer de la siguiente manera:
E1 −→ EI1 1′ I′
−→ E′2 I2
−→ E2
donde E1′ y E2′ son curvas el´ıpticas con anillo de endomorfismos O1O2, con conductor g = gcd(g1, g2). Adem´as, los grados de las isogeniasI1,I2 eI′ son, respectivamente, n1 = g1/g, n2 = g2/g y n′ = n/(n1n2).
Demostraci´on. Primero, vamos a probar la existencia de la isogeniaI1 entre E1 y E1′ y la isogenia I2 entre E2 y E2′. Del Lema 1, dado un factor primo ℓ de g1/g podemos considerar la ´unica isogenia ascendente de E1 a una curva el´ıptica cuyo anillo de endomorfismos tenga conductor g1/ℓ. Ahora, repitien- do el mismo procedimiento para los factores restantes de g1/g obtenemos un camino de isogenias de E1 a E1′ (cuyo anillo de endomorfismos es O1O2 con conductor g). De la misma manera, considerando los factores primos de g2/g, podemos construir un camino de E2 a E2′ (con el mismo anillo de endomor- fismos que E1′).
De la primera parte, tenemos un camino de isogenias de E1′ a E2′ de grado n1nn2. Puesto que la composici´on de isogenias es conmutativa, teniendo en cuenta que n1n2 divide n, reordenando las isogenias de grado primo, podemos cancelar las isogenias I1 e I2 con sus correspondientes duales. Por tanto, obtenemos un camino de isogenias entre E1′ y E2′ de grado n′ = n/(n1n2).
3 Algoritmo b´asico
El algoritmo que se propone a continuaci´on encuentra la isogenia de gra- do m´ınimo entre dos curvas el´ıpticas, E1 y E2 definidas sobre Fq. Su fun- cionamiento se basa en la construcci´on de un ´arbol donde cada nodo contiene informaci´on sobre una curva el´ıptica.
- Los nodos est´an etiquetas mediante una tupla que contiene dos atributos (j, g):
– j: El j-invariante de la curva asociada a este nodo.
– g: El grado de la isogenia de grado m´ınim entre la curva asociada a este nodo y la curva asociada al nodo ra´ız del ´arbol.
- Las aristas se etiquetan con un entero que indica el grado de la isogenia entre los dos nodos que enlaza. La m´etrica de las aristas es multiplicativa, es decir, el coste de un camino entre dos nodos es el producto de la m´etrica asignada a las aristas atravesadas.
Sean j1 y j2 los j-invariante de E1 y E2, respectivamente. El algoritmo comienza con un ´arbol trivial compuesto de un ´unico nodo etiquetado como (j1, 1). El algoritmo itera secuencialmente de tal modo que en su i-´esima iteracion, a˜nade nodos al ´arbol tales que existe un i-isogenia entre sus curvas asociadas y el nodo ra´ız y no existe otra isogenia de menor grado entre ambas curvas. El algoritmo se para una vez j2 se a˜nade al ´arbol. En este momento, se
puede obtener la isogenia de grado m´ınimo entre E1y E2 como la composici´on de las isogenias que se encuentran a lo largo del camino del ´arbol que las une (que corresponde al camino entre el nodo de j2 y la ra´ız del ´arbol). El proceso se detalla en el Algoritmo 1.
Algoritmo 1 Algoritmo para encontrar la isogenia de grado m´ınimo entre dos curvas el´ıpticas
Input: j1, j2: j-invariante de dos curvas el´ıpticas.
Output: Isogenia de grado m´ınimo entre j1 y j2
1 Inicializar un ´arbol vac´ıo T
2 A˜nadir un nodo etiquetado como (j1, 1) a T 3 grado := 2
4 while cierto do
5 d:=FactorPrimoMenor(grado) 6 i := grado/d
7 Li:= lista del j-atributo de los nodos de T cuyo g-atributo es i 8 for j en Li do
9 L′:= j-invariantes de las d-isogenias de j 10 for j′ en L′ do
11 if j′ no en T then
12 A˜nadir un nuevo nodo a T etiquetado (j′, grado)
13 A˜nadir una arista etiquetada (d) entre el nuevo nodo y el nodo de j 14 if j′= j2 then
15 Generar la isogeniaI como la composici´on de todas las isogenias de grado primo encontradas a lo largo del camino del nodo de j′ hasta la ra´ız
16 return I
17 end if
18 end if
19 end for 20 end for
21 grado := grado + 1 22 end while
3.1 Estructuras de datos y detalles de implementaci´on
El tiempo de ejecuci´on del algoritmo presentado depende de la eficiencia de algunas operaciones que deben realizarse sobre el ´arbol. A continuaci´on, de- tallamos una forma de implementarlo basado en el uso de dos tablas hash:
- Una tabla hash, H1, cuyos elementos son tuplas con la siguiente estructura:
– min grado: Guarda un entero positivo. Este es el atributo clave.
– lista: Guarda una lista de j-invariantes.
Durante la ejecuci´on del algoritmo, la tupla cuya clave es i almacena la lista de j-invariantes de curvas el´ıpticas cuya isogenia de grado m´ınimo hacia la ra´ız es i.
- Una tabla hash, H2, cuyos elementos son tuplas con la siguiente estructura:
– nodo: Guarda el j-invariante de una curva el´ıptica. Este es el atributo clave.
– padre: Almacena el j-invariante del padre de nodo en el ´arbol.
– grado: Entero que almacena el grado (primo) de la isogenia entre nodo y padre.
Addici´on de nodos y aristas
Una vez el algoritmo comienza, en el paso 2, el nodo ra´ız etiquetado (j1, 1) se a˜nadido al ´arbol. Esto se hace de la siguiente forma:
- A˜nadir la tupla (1,{j1}) a H1.
- A˜nadir la tupla (j1, nulo, nulo) a H2 (los valores nulo se deben al hecho de que el nodo ra´ız no tiene padre).
En los pasos 12 y 13, el algoritmo a˜nade un nuevo nodo con atributos (j′, grado) y una arista (etiquetada d) enlazandolo con su padre, que es el nodo de j. Esto se hace de la siguiente forma:
- Si H1no tiene ninguna tuple con clave grado, se a˜nade la tupla (grado,{j′}) a H1.
- En el otro caso, j′ se a˜nade al campo lista de la tupla de H1 cuya clave es grado.
- Finalmente, se a˜nade la tupla (j′, j, d) a H2. B´usquedas
En el paso 7 el algoritmo necesita una lista Li que contenga el j-invariante de todas las curvas cuya isogenia de grado m´ınimo hacia la ra´ız sea de grado i. Esta lista se almacena en la tupla de H1 cuya clave es i, de tal modo que puede obtenerse mediante un ´unico acceso a la tabla hash.
Otra operaci´on de b´usqueda importante consiste en comprobar si un de- terminado j-invariante, j′, ya se encuentra en el ´arbol (paso 11). Esta com- probaci´on se hace buscando si la tabla H2 contiene alguna tupla cuyo campo clave es j′.
3.2 Ejemplo
A continuaci´on se muestra un ejemplo. Sean E1 : y2 = x3 + 70x + 261 y E2 : y2 = x3 + 271x + 94 dos curvas el´ıpticas definidas sobre F313. Como
#E1(F313) = #E2(F313), sabemos que existe por lo menos una isogenia entre
ellas. Vamos a encontrar la de grado m´ınimo. Los j-invariantes de E1 y E2 son 144 y 117, respectivamente.
El algoritmo comienza a partir de un ´arbol con un ´unico nodo ra´ız (etique- tado (144, 1)). El algoritmo va a˜nadiendo nuevas curvas al ´arbol en un ´orden creciente a partir de su isogenia de grado m´ınimo hasta 144. Una vez el j- invariante 117 haya sido a˜nadido el algoritmo termina. La figura 1 muestra el contenido de H1 cuando el algoritmo acaba. Las tuplas se muestran ordenadas a partir del campo min grado. Como el j-invariante 117 se almacena en un registro cuya clave es 10, concluimos que la isogenia de grado m´ınimo entre las curvas E1 y E2 tiene grado 10.
H1
min grado lista
1 {144}
2 {201, 146, 43}
3 {162}
4 {291, 221}
5 {268, 65}
6 {210, 163, 25}
8 {228, 191}
10 {292, 34, 237, 117}
Figura 1. Contenido de H1cuando la isogenia de grado m´ınimo entre las curvas con j-invariantes 144 y 117 es encontrada. Cada fila muestra el contenido de una tupla.
La figura 2 muestra el contenido de H2 en el momento que se detiene la ejecuci´on. A partir de su informaci´on, podemos reconstruir la cadena de iso- genias de grado primo entre 144 y 117. A partir de la tupla (117, 65, 2) vemos que existe una 2-isogenia entre la curva 117 y la curva 65. A continuaci´on, a partir de la tupla (65, 144, 5) sabemos que hay una 5-isogenia entre 65 y 144. Resumiendo, la isogenia de grado m´ınimo, I, entre E1 y E2 tiene gra- do 10. Esta isogenia puede descomponerse en dos isogenias de grado 5 y 2 respectivamente,
117−→ 65I2 −→ 144I5
4 Encontrando isogenias de grado m´ınimo smooth
El algoritmo, tal como se describe en Algoritmo ??, asume que es posible calcular isogenias de cualquier grado primo (step 9). A la pr´actica, es bien sabido que el coste de calcular isogenias aumenta muy r´apido con el grado.
Por tanto, a la pr´actica, solamente es factible calcular isogenias hasta un determinado grado primo m´aximo. En este caso, el algoritmo debe modificarse
H2
(144, N, N ) (163, 162, 2) (201, 144, 2) (210, 162, 2) (146, 144, 2) (228, 221, 2) (43, 144, 2) (191, 221, 2) (291, 201, 2) (292, 268, 2) (221, 201, 2) (34, 268, 2) (268, 144, 5) (237, 65, 2) (65, 144, 5) (117, 65, 2) (25, 162, 2)
Figura 2. Contenido de H1 cuando la isogenia de grado m´ınimo entre las curvas con j-invariantes 144 y 117 es encontrada. Cada tupla se muestra entre par´entesis (nodo, padre, grado).
de tal modo que si el valor d calculado en el paso 5 es mayor que nuestro valor primo m´aximo, el algoritmo salta al paso 21 y contin´ua.
Bajo esta restricci´on, el algoritmo presentado solamente devuelve la isoge- nia de grado m´ınimo smooth entre dos curvas dadas. Es decir, la isogenia de grado m´ınimo tal que su grado no tiene factores primos mayores que nuestro m´aximo.
4.1 Tiempo de ejecuci´on
El algoritmo ha sido implementado en Sage [9] y ejecutado sobre un ordenador con un procesador Intel Xeno de 3.16 GHz. El grado m´aximo de la isogenias calculables se ha limitado a 113. El motivo es que este es el mayor grado del polinomio modular de grado primo que viene precalculado en Sage. Los resultados se muestran en la tabla 1.
j-invariante grado m´ınimo smooth tiempo (s) 895759403 2500 = 22· 54 22 1262893225 5000 = 23· 54 43 609784008 7500 = 22· 3 · 54 76 89417976 10000 = 24· 54 102 463359563 12500 = 22· 55 126 84519525 15000 = 23· 3 · 54 134 483753258 17500 = 22· 54· 7 137 681460722 20000 = 25· 54 145 99710326 30000 = 24· 3 · 54 162 29982396 40000 = 26· 54 182
Tabla 1. Tiempo necesario para encontrar la isogenia de grado m´ınimo smooth entre algunas curvas y la curva con j-invariante 1068270565 sobre F1325839561.
5 Reducci´on del tiempo de ejecuci´on
El corolario 1 puede aplicarse a la b´usqueda de la isogenia de grado m´ınimo entre E1 y E2. De este modo, la isogenia en cuesti´on puede encontrarse de la siguiente forma:
1. Calcular el camino de isogenias ascendentes de E1 hasta E1′. Denotaremos este camino como P1.
2. Calcular el camino de isogenias ascendentes de E2 hasta E2′. Denotaremos este camino como P2.
3. Usar el Algoritmo 1 par encontrar la isogenia de grado m´ınimo entre E1′ y E2′. Denotaremos este camino de isogenias como P3.
4. Obtener la isogenia de grado m´ınimo entre E1 y E2 enlazando los caminos P1, P3 y el reverso de P2.
Esta t´ecnica permite reducir la longitud del camino que debe hallarse con el algoritmo 1 de n a n/n1n2. Esto conlleva una reducci´on en el tiempo de ejecuci´on debido a que ´este depende de la longitud del camino a hallar.
La complejidad computacional del algoritmo, utilizando este proceso es O(q3/2). Si ninguno de los conductores de los anillos de endomorfismos O1 o O2 es divisible por un primo grande, dicho coste se reduce a O(q3/4).
5.1 Ejemplo
A continuaci´on se presenta un ejemplo que muestra la reducci´on de tiempo dada por esta mejora. Consideramos el cuerpo finito F1000001053 y deseamos encontrar la isogenia de grado m´ınimo smooth (el grado de las isogenias cal- culables se limita a 113) entre las curvas E1 y E2, cuyos j-invariantes son 947328019 y 877023319, respectivamente.
El algoritmo 1 encuentra el siguiente camino (los conductores se muestran entre par´entesis), que corresponde a una 16758-isogenia en 195 segundos:
E1 (2· 32· 19)
I19
−−→ 745953949 (2· 32)
I7
−→ 392603373 (2· 32)
I7
−→ 299598640 (2· 32· 7)
I3
−→
20777856 (2· 3 · 7)
I3
−→ 746584754 (2· 32· 7)
I2
−→ E2 (32· 7)
Aplicando la mejora, se obtiene un camino equivalente calculando primero los conductores de E1y E2que son g1 = 2·32·19 y g2= 32·7, respectivamente, de tal modo que g = gcd(g1, g2) = 32. Entonces se construye el camino de E1
hasta E1′:
E1
(2· 32· 19)
I2
−→ 139059844 (32· 19)
I19
−−→ E1′ (32)
Luego, se construye el camino de E2 a E2′: E2 (32· 7)
I7
−→ E2′
(32)
Finalmente, usando el algoritmo 1 se obtiene la isogenia de grado m´ınimo smooth formado por el siguiente camino entre E1′ y E2′:
E1′ (32)
I7
−→ 535650105 (32)
I3
−→ 148227661 (3)
I3
−→ E2′
(32)
Componiendo los tres caminos anteriores (invirtiendo el orden de aquel entre E2 y E2′), obtenemos el siguiente camino en solamente 2,3 segundos:
E1 (2· 32· 19)
I2
−→ 13905844 (32· 19)
I19
−−→ E1′ (32)
I7
−→ 535650105 (32)
I3
−→
148227661 (3)
I3
−→ E′2 (32)
I7
−→ E2 (32· 7)
En la tabla 2 se muestran los tiempos de ejecuci´on del algoritmo tomando desde cada curva un camino ascendente a curvas con anillo de endomorfismo O1O2. Para comprobar que efectivamente se reduce el tiempo de c´alculo se han tomado las mismas curvas que en la tabla 1. Por la proposici´on 1, es claro que la isogenia de grado m´ınimo entre dos curvas el´ıpticas se descompone en isogenias ascendentes, una isogenia horizontal e isogenias descendentes.
Adem´as, tanto las ascendentes como las descendentes (que son ascendentes desde la curva final) est´an un´ıvocamente determinadas por los conductores de O1 yO2 respectivamente y este hecho reduce el tiempo de c´alculo.
j-invariante grado m´ınimo smooth tiempo (s) 895759403 2500 = 22· 54 13 1262893225 5000 = 23· 54 14 609784008 7500 = 22· 3 · 54 13 89417976 10000 = 24· 54 14 463359563 12500 = 22· 55 28 84519525 15000 = 23· 3 · 54 19 483753258 17500 = 22· 54· 7 19 681460722 20000 = 25· 54 16 99710326 30000 = 24· 3 · 54 34 29982396 40000 = 26· 54 37
Tabla 2. Tiempo necesario para encontrar la isogenia de grado m´ınimo smooth entre algunas curvas y la curva con j-invariante 1068270565 sobre F1325839561 tomando caminos ascendentes en primer lugar.
Referencias
[1] I.F. Blake, G. Seroussi, N.P. Smart. Elliptic Curves in Cryptography. London Mathematical Society Lecture Notes vol. 265, Cambridge U. Press, 1999.
[2] N.D. Elkies. Explicit isogenies. Manuscript, 1992.
[3] M. Fouquet, F. Morain. Isogeny Volcanoes and the SEA Algorithm. ANTS-V, LNCS 2369, 276-291, Springer, 2002.
[4] S.D. Galbraith. Constructing isogenies between elliptic curves over finite fields.
LMS J. Comput. Math. 2, 118-138, 1999.
[5] D.Y. Jao, R. Venkatesan. Use of isogenies for design of cryptosystems. European Patent EP1528705. 2009.
[6] D. Kohel. Endomorphism rings of elliptic curves over finite fields. PhD thesis, University of California, Berkeley, 1996.
[7] A. Rostovtsev, A. Stolbunov. Public-key cryptosystem based on isogenies. Cryp- tology ePrint Archive. Report 2006/145, 2006.
[8] J.H. Silverman. The arithmetic of elliptic curves. Grad. Texts in Math. 106, Springer, 1986.
[9] W. A. Stein et al. Sage Mathematics Software (Version 4.3). The Sage Group, 2009. http://www.sagemath.org.
[10] R. Schoof. Counting points on elliptic curves over finite fields. J. Th´eorie des Nombres de Bordeaux 7, 219-254, 1995.
[11] J. Tate. Endomorphisms of abelian varieties over finite fields. Invent. Math. 2, 134–144, 1966.
[12] J. V´elu. Isog´enies entre courbes elliptiques. C.R. Acad. Sci. Paris, Ser. I Math.
Serie A, 273, 238-241, 1971.