Showing posts with label elípticas. Show all posts
Showing posts with label elípticas. Show all posts

Saturday, August 27, 2016

Criptografía asimétrica con curvas elípticas isógenas súpersingulares resistentes a ataques cuánticos

Poco a poco la criptografía como la conocemos está desapareciendo, he hablado con Tanja Lange un par de veces en los congresos que hace la sociedad matemática holandesa y ella parece insistir mucho que estamos ya muy cerca presenciar la existencia de una computadora cuántica, ella afirma que entre el 2024-2030 ya existirá alguna.

Lo relevante es que toda la criptografía actual implementada en los ámbitos económicos, militares y gubernamentales, cuenta con seguridad extrema ante computo clásico como lo conocemos (modelos Von Neumann, Turing...) . El problema es que el modelo de cómputo cuántico rompe todos los algoritmos implementados hoy en día. Esto es debido a la existencia de un algoritmo por Peter Shor que factoriza y calcula logaritmos discretos, es decir, rompe RSA y criptografía basada en el problema de logaritmo discreto (Curvas elípticas) en tiempo polinomial. Esto significará que todos seríamos vulnerables ante el individuo/organización que construya computadora cuántica (IBM, DWave, Google por ejemplo).

Por lo que, las curvas elípticas e hiperelípticas como las implementamos hoy en día, comienzan a ser obsoletas en criptografía, aunque siguen siendo muy útiles para computación en teoría de números algebraica que sirve para hacer nuevos algoritmos, es decir, no estoy diciendo que ya no sirvan las curvas, sino que la criptografía que usa el problema de logaritmo discreto con curvas o variedades abelianas está vulnerado ante la presencia de una computadora cuántica.

En este post les voy a mostrar un análogo de Diffie Hellman que no es vulnerable ante la presencia de un atacante con recursos cuánticos. El post es autocontenido, sólo requieres saber la teoría básica de curvas elípticas la cual la puedes leer en mi blog, recomiendo (aunque no es obligatorio ya que trato de hacerlo autocontenido leer estos artículos aquí en mi blog antes)

Teorema de Hasse en curvas elípticas
Álgebras de endomorfismos en curvas elípticas
j-Invariante en curvas elípticas

El método de Diffie Hellman que funciona bajo cómputo cuántico que describiremos aquí necesita conocimiento de morfismos entre curvas elípticas (isogenias u homomorfismos de los grupos abelianos inducidos por las curvas).
El contenido de este post es el siguiente:

* Background en isogenias y kérneles de éstas antes de irse a lo cuántico.
* Grado de una isogenia

* p-Torsión, j-invariante y características de curvas elípticas súpersingulares
* Construyendo Isogenias desde subgrupos de la curva usando fórmulas de Velú.
* Algoritmo explítico Diffie Hellman con isogenias entre curvas elípticas supersingulares.
* ¿Pero por qué nos enfocamos en súpersingulares?
* ¿En qué se basa la seguridad?, ¿qué tengo que romper si quiero hacer criptoanálisis?

Todo esto que escribo fue gracias a la emoción que me causaron las pláticas de Dimitar Jetchev (EPFL, Lausanne, Suiza), Frederik Vercauteren (KU Leuven, Bélgica), Benjamin Smith (INRIA, Francia) y René Schoof (Università di Roma, Italia) en el workshop "Mathematical structures for cryptography" el cual tuve la suerte de poder trabajar con grandes matemáticos del 22-26 de Agosto en Leiden, Países Bajos cuyo objetivo era juntar investigadores en matemáticas y criptografía para resolver problemas abiertos en esta teoría así como la basada en retículas para cómputo cuántico (Lattice Based Cryptography), todos los participantes aportamos algo interesante, y fue una de las más grandes experiencias profesionales que he tenido, aquí hay más información de la gente involucrada http://www.lorentzcenter.nl/lc/web/2016/834/participants.php3?wsid=834&venue=Oort

Comenzamos.

Background en isogenias y kérneles de éstas antes de irse a lo cuántico.

Sea $latex E$ una curva elíptica en forma de Weierstrass sobre un campo finito $latex \mathbb{F}_q$ , es decir $latex E:=\lbrace (x,y)\in \mathbb{F}_q\times\mathbb{F}_q : y^2 = x^3 + ax + b \rbrace$.

Como he explicado en posts anteriores, las curvas elípticas forman un grupo abeliano, es decir, $latex \langle E,\oplus\rangle$ es una estructura donde los puntos se pueden "sumar y restar" , es conmutativa, todos tienen inverso aditivo, es asociativa, cerrada y con elemento neutro $latex \infty$.

Hay fórmulas explícitas para calcular la suma de puntos como en el post anterior mencionado en el párrafo anterior, y también están muy bien explicadas en wikipedia, así que supondré que ya sabemos como funciona la adición elíptica que geométricamente la intuición es con la siguiente imagen:



Isogenias entre curvas 
(mapeos de curvas elípticas, homomorfismos de grupos abelianos inducidos)

Tenemos que si $latex \langle E_1, \oplus\rangle ,\langle E_2,\boxplus \rangle$ son dos curvas elípticas y existe un morfismo $latex \psi:E_1\to E_2$ que respeta la estructura de grupo de cada una, es decir $latex \psi(P\oplus Q)= \phi(P)\boxplus \phi(Q)$ y que mapea el $latex 0$ de una al $latex 0$ de la otra, entonces decimos que ambas son isógenas.

Ahora vamos a ver qué son esos ceros en la curva, ya que no es trivial desde el punto de vista afín.

Kérnel de isogenias

En curvas elípticas tenemos que una isogenia entre dos curvas se ve como $latex \psi(x,y) := (\frac{a_1(x)}{a_2(x)}, \frac{yb_1(x)}{b_2(x)} )$ donde más técnicamente es porque $latex \frac{a_1(x)}{a_2(x)}, \frac{yb_1(x)}{b_2(x)} \in \mathbb{F}_q(E_2)$ es decir son funciones bien definidas en los puntos de la curva en el codominio, son funciones de su campo de funciones (campo de fracciones de la gavilla de funciones del la curva vista como esquema).

Para entender el kérnel de un mapeo como el anterior, necesitamos ver la curva de manera proyectiva, ya que el 0 (cero) en $latex E_1$ y $latex E_2$ no es un punto afín.

Si $latex \psi:E_1\to E_2$ es una isogenia entre curvas elípticas, el kérnel está definido como:

$latex ker\psi := \lbrace P\in E_1 : \psi(P) = \infty_{E_2}\rbrace$

Es decir, todos los puntos que nos mandan al infinito.

Recuerden que las curvas son proyectivas, entonces lo que esto significa exactamente es que si la isogenia está definida por $latex (\frac{a_1(x)}{a_2(x)},y\frac{b_1(x)}{b_2(x)})$ entonces podemos proyectivizar estas ecuaciones con una nueva variable $latex z$ (cerradura proyectiva), los puntos que el mapeo manda al infinito veremos a continuación que son justamente donde no están definidas esas funciones racionales sin proyectivizar.

Informalmente pero no incorrectamente, definir la imagen de estos puntos "no definidos bajo $latex \phi$" como $latex \infty_{E_2}$ se hace, deshaciéndose de los denominadores en la isogenia y homogeneizando, eso será la isogenia vista en la cerradura proyectiva de la curva que es $latex zy^2 = x^3 + az^2x + bz^3$ .

Entonces tendremos que los puntos afines de la cerradura proyectiva de la curva están dados por los puntos $latex (x:y:1)$ , es decir, la imagen afín de $latex \psi$ es  $latex (\frac{a_1(x)}{a_2(x)}:y\frac{b_1(x)}{b_2(x)}:1)$ , por lo que entonces la ecuación proyectiva es: $latex (a_1(x)b_2(x):yb_1(x)a_2(x):a_2(x)b_2(x))$ , y todos los puntos $latex (x:y:1)$ donde no está definida la curva afín, justamente estarán bien definidos aquí proyectivamente y esos puntos, son los que tienen imagen al infinito , es decir, que tienen como imagen el punto $latex \infty := (0:1:0)$, y son los puntos en el $latex ker\psi$ incluyendo al $latex \infty_{E_1}$ ya que es requisito de una isogenia mapear infinitos.

Pueden ustedes demostrar de hecho que $latex ker\psi := \lbrace (x,y)\in E_1 : a_2(x)=0\rbrace$ con el hint de que $latex a_2^3 \mid b_2^2$ siempre, y así como que $latex b_2^2\mid f_1a_1^3$ donde $latex f_1$ es la ecuación que define a $latex E_1$ en $latex y^2 = x^3 + a_1x + b_1$, recuerden que esto lo demuestran en el campo de funciones de la curva, es decir tienen que tomar en cuenta la ecuación de la curva al momento de demostrar esto.

Teorema: Si dos curvas elípticas son isógenas sobre un campo finito, entonces tienen el mismo número de puntos.

Grado de una isogenia


Antes de demostrar el teorema, necesitamos entender qué es el grado de una isogenia.

Sea $latex \psi:E_1\to E_2$ una isogenia definida sobre un campo finito $latex \mathbb{F}_q$.

Decimos que el mapeo $latex \psi$ es separable si la extensión de los campos inducida por $latex \mathbb{\psi}$ es separable.

Es decir si $latex \mathbb{F}(E_1)/\psi^{*}\mathbb{F}_q(E_1)$ es separable, y su dimensión como espacio vectorial la usamos para definir:

$latex \text{grad}\psi := dim_{\mathbb{F}_q}(\mathbb{F}_q(E_1)/\psi^{*}\mathbb{F}_q(E_1))=[\mathbb{F}(E_1):\psi^{*}\mathbb{F}_q(E_1)]$

Si esta extensión de campos inducida por $latex \psi$ es separable, decimos que es $latex \psi$ es separable, y una propiedad de isogenias separables es que $latex \text{grad}\psi :=$#$latex ker\psi$.

Pero que no cunda el pánico, vamos a ver cómo encontrar este grado sin meternos en la teoría dura, esto sólo es para definir algo (grado) y luego ver que su cálculo se puede hacer sin tener que calcular bases de espacios vectoriales.

Es fácil demostrar que el grado de la extensión de campos se mide siempre de una manera inocente contando el número de elementos en la imagen inversa de cualquier punto (sin ramificación) en el codominio.

O sea si el grado de $latex \psi$ fuera 1, significa que los espacios vectoriales inducidos por $latex \psi$ son los mismos, por lo que la imagen inversa de cualquier punto tiene sólo 1 punto ya que en este caso $latex \psi$ sería un isomorfismo.

El grado mide qué tan "complejo" es $latex \psi$ , por lo que de hecho el grado de una isogenia está definido también por la cantidad de elementos en la imágen inversa de $latex \psi$ para un punto ordinario general, es decir de $latex \psi^{-1}(Q_{E_2})$ donde $latex Q_{E_2}\in E_2$ es un punto ordinario, es decir no presenta ramificación (Por ejemplo un punto $latex (x,y)$ cuya coordenada $latex x$ no sea raíz de $latex x^3 + ax + b$ , ya que estos puntos son de ramificación, pero no entraremos en eso por ahora).

Como $latex \psi$ es un homomorfismos, tenemos que #$latex \psi^{-1}(Q_{E_2}) =$#$latex ker\psi$, por lo que tenemos otra igualdad más.

De tarea ustedes entonces dicho lo anterior pueden probar que $latex \text{grad}\psi$ es fácilmente calculable ya que si $latex P\in E_1$ y $latex Q:=\psi(P)$ es un punto con coordenadas $latex (s,t)$ en $latex E_2$ entonces #$latex \psi^{-1}(Q)$ es exactamente el número de ceros diferentes del polinomio $latex a_1(x)-sa_2(x)$ pero como $latex \psi$ es separable entonces este polinomio no tendrá raíces repetidas, por lo que #$latex \text{grad}\psi = \text{Deg}(a_1(x)-sa_2(x))=$#$latex ker\psi$.

Demostración de teorema

Dicho todo esto, considera el mapeo $latex \phi_1\in End_{\mathbb{F}_q}(E_1)$ y $latex \phi_2\in End_{\mathbb{F}_q}(E_2)$ tal que si $latex (x_i,y_i) \in E_i$ entonces $latex \phi_i(x_i,y_i) = (x_i^q, y_i^q)$ .

Es decir son los endomorfismos de Frobenius de cada una de las curvas.

Recuerden que queremos demostrar que dos curvas $latex E_1,E_2$ isógenas sobre $latex \mathbb{F}_q$ tienen el mismo números de puntos, y tenemos que la isogenia es $latex \psi:E_1\to E_2$.

Es fácil ver que $latex \psi\circ \phi_1 = \phi_2\circ \psi$, ya que si $latex P:=(x_1,y_1)\in E_1$ y $latex (x_2,y_2):=\phi(P)$ entonces $latex \psi(\phi_1(P)) = \psi(x_1^q,y_1^q)$ y en el otro lado $latex \phi_2(\psi(P)) = \phi_2(x_2,y_2)=(x_2^q,y_2^q)$.

Es decir, en el párrafo anterior afirmo que  $latex (x_2^q,y_2^q) = \psi(x_1^q,y_1^q)$, ya que recuerden que $latex \psi$ está formada por funciones racionales en $latex x$ y en $latex y$, entonces es un ejercicio de álgebra básica demostrar que si $latex r(x)$ es un polinomio sobre un campo finito entonces $latex r^q(x)=r(x^q)$, es decir se cumple el sueño de todo niño de secundaria, que por ejemplo si $latex x+y\in \mathbb{F}_q(x,y)$ entonces $latex \phi(x+y)=(x+y)^q = x^q + y^q$.

Entonces con toda mi informalidad que me caracteriza, tenemos ya que $latex \psi\circ \phi_1 = \phi_2\circ \psi$

Por lo que como la operación $latex \circ$ de composición en $latex End_{\mathbb{F}_q}(E_i)$ es distributiva, podemos inferir que:

$latex \psi\circ (\mathbbm{1}_{E_1} - \phi_1) = (\mathbbm{1}_{E_2}- \phi_2)\circ \psi$   (*)

Tal que $latex \mathbbm{1}_{E_i}$ es el mapeo de identidad en $latex End_{\mathbb{F}_q}(E_i)$ .

Calculemos el grado de  (*) .

Sabemos que el $latex \text{grad}\psi_1\circ \psi_2 = \text{grad}\psi_1\cdot \text{grad}\psi_2$ , esto lo pueden demostrar usando mi demostración anterior de que el grado de una isogenia está directamente relacionado con el grado de un polinomio dado por el mapeo, y pues al componerlos, el grado incrementa multiplicativamente.

También tenemos que el grado de $latex \mathbbm{1}_{E_i}-\phi_i$, como es un mapeo separable, es el número de elementos en el kernel de $latex \mathbbm{1}_{E_i}-\phi_i$... Pregunta ¿quién está en el kernel de $latex \mathbbm{1}_{E_i}-\phi_i$?

Recordemos que el endomorfismo de Frobenius tiene una propiedad interesante, es decir, si tenemos que $latex \mathbb{F}_{p^n}$ es un campo finito, y definimos para todo $latex x\in \mathbb{F}_{p^n}$ el mapeo $latex \phi_m(x) := x^{p^m}$ entonces $latex \phi_m(x)=x$ sí y sólo sí $latex x\in \mathbb{F}_{q^m}$ por lo que $latex x\in \overline{\mathbb{F}_p}$  es $latex \mathbb{F}_{p^m}$-racional si $latex \phi_m(x)=x$ , es decir, donde el endomorfismo de Frobenius se comporta como la identidad, nos caracteriza a los puntos racionales.

Entonces el kernel de $latex \mathbbm{1}_{E_i}-\phi_i$ son los puntos $latex (x_i,y_i)\in E_i$ que son iguales ante Frobenius y ante la identidad... es decir, puntos racionales $latex \mathbb{F}_q$-racionales.

Con lo anterior tenemos que  $latex \text{grad} (\mathbbm{1}_{E_i}-\phi_i)=$#$latex E_i$ .
Con esto tenemos tenemos que el grado de (*) es:

$latex \text{grad}\psi\cdot$#$latex E_1 = \text{grad}\psi\cdot$#$latex E_2$ por lo que #$latex E_1=$#$latex E_2$. q.e.d. $latex \blacksquare$.


p-Torsión, j-invariante y características de curvas elípticas súpersingulares

Definición: $latex E/\mathbb{F}_{p^n}$ una curva elíptica, entonces definimos la n-torsión de la curva como:

$latex E[n] := \lbrace P\in E : nP=\infty \rbrace$


Es decir, los puntos que al sumarse $latex n$ veces, se anulan.

Definición: Sea $latex E/\mathbb{F}_{p^n}$ entonces decimos que $latex E$ es ordinaria si $latex E[p]\cong \mathbb{Z}/(p)$ y es supersingular si $latex E[p]\cong\lbrace\infty\rbrace$.

Es decir, si no tiene p-torsión más que la trivial, le llamamos supersingular.

La palabra "supersingular" no tiene nada que ver con "singular", ya que una curva es singular si tiene singularidades, pero una curva elíptica por definición no es singular, es decir, no tiene puntos raros (discriminante de la curva es distinto de cero), ni tampoco raices repetidas.

La palabra supersingular es porque realmente son excepcionales,  y de hecho una cosa interesante de estas curvas es que SIEMPRE están bien definidas sobre $latex \mathbb{F}_{p^2}$ para cualquier $latex p$ , es decir, al reducir una ecuación de una curva a $latex \mathbb{F}_{p^2}$ nunca presentará singularidades.


Ahora vamos a ver otra definición importante que justamente será usada por el protocolo Diffie-Hellman.

Definición: Definimos el j-invariante de una curva elíptica $latex E/k$ donde $latex k$ es cualquier campo de caracteristica mayor que 3 y la forma de Weierstrass de $latex E$ es $latex y^2=x^3 + ax+b$ lo definimos como:


$latex j(E):=1728 \frac{4a^3}{4a^3+27b^2}$

Esta función loquita es muy importante en análisis complejo, y se preguntarán de donde sale ese 1728. Primero necesitamos saber para qué es esto.

El j-invariante tiene la propiedad de que si dos curvas tienen el mismo j-invariante, es decir $latex j(E_1)=j(E_2)$ entonces tenemos que $latex E_1\cong E_2$ sobre su campo de definición $latex k$.

Noten que el denominador del j-invariante nunca es 0, ya que es justamente el discriminante de $latex x^3 + ax+b$ y este no es cero porque sino la curva tendría singularidades y por definición una curva elíptica no es singular.

Otro teorema importante es que para todo $latex j_0\in k$ existe una curva elíptica $latex E_{j_0}$ tal que $latex j(E_{j_0})$ por lo que automáticamente podemos inferir que sobre cualquier campo... el moduli de TODAS las curvas elípticas sobre cualquier campo finito o infinito... es unidimensional... es decir, todas las curvas elípticas forman una línea.

Otros teoremas importantes es que los endomorfismos extendidos a $latex \mathbb{Q}$ definido como $latex End_0(E):= End_k(E)\otimes_{k}\mathbb{Q}$ cuando $latex E$ es supersingular, forman una álgebra de cuaternios, es decir no es conmutativa.

En el caso ordinario donde $latex E$ no sea supersingular , tenemos que $latex End_0(E)$ siempre es una extensión cuadrática de $latex Q$ compleja, es decir $latex End_0(E)\cong \mathbb{Q}(\sqrt{d})$  con $latex d$ negativo y libre de cuadrados.


Corolario: Sea $latex E/\mathbb{F}_q$ una curva elíptica supersingular, entonces #$latexE(\mathbb{F}_q)=p+1$.

Demostración:

No lo haré, pero usen el teorema de Hasse, deduzcan que si la curva es supersingular, entonces la traza del endomorfismo de frobenius es 0, todo esto se puede demostrar con lo anterior.

Teorema: Sea $latex \psi:E_1\to E_2$ una isogenia tal que $latex E_1$ es súpersingular, entonces $latex E_2$ también es supersingular.

Lo mismo aplica para curvas ordinarias, es decir, los dos tipos de curvas, súpersingulares y ordinarias sólo "se llevan" entre sus respectivas categorías, esto es importante, porque el protocolo que describiré pronto asegura que todas las isogenias serán entre curvas súpersingulares.

Pero antes veamos cómo construir isogenias cuyo kernel sea el subgrupo del dominio de la isogenia, es decir, dado un $latex H_P\subset E$ un subgrupo de una curva elíptica sobre un campo finito, en este caso $latex H_P$ es el generado por $latex P$ , construiremos explícitamente $latex \psi_P:E\to E_P$ tal que $latex ker\psi_P=H_P$ y la ecuación explícita de $latex E_P$.

Construyendo Isogenias desde subgrupos de la curva usando fórmulas de Velú.

Recuerden que #$latex E(\mathbb{F}_q)=N$ es finito, ya que el campo de definición es finito.
Entonces por el teorema de lagrange, sabemos que la información de sus subgrupos está escondida en la factorización de $latex N$.


Sea $latex P\in E$, definimos el subgrupo $latex H_P\subsetneq E$ como:

$latex H_P:=\lbrace nP : n \in \mathbb{Z}\rbrace$

Este es el grupo de "todos los múltiplos de $latex P$:" en la curva, es trivial que es un subgrupo de $latex E$.

Vamos ahora a construir una isogenia asociada a $latex P\in E$ que denotamos por $latex \psi_P$ cuyo kernel sea $latex H_P$ hacia otra curva que denotaremos como $latex E_P$.

Es decir vamos a construir $latex \psi_P:E\to E_P$ tal que $latex ker\psi_P = H_P$
Todos sabemos que el kérnel de un morfismo de grupos es un subgrupo normal del grupo, así que esto no debe causarles conflicto.


La notación de las coordenadas para los puntos en $latex \langle E,\oplus\rangle$  será $latex P:=(x_P,y_P), Q:=(x_Q,y_Q), P\oplus Q:=(x_{P+Q},y_{P+Q})$.

Definición-Teorema-Vélu: Sea $latex \langle E/\mathbb{F}_q,\oplus\rangle$ una curva elíptica y $latex P_0\in E$, tal que $latex y^2 = x^3 + ax + b$ construyamos como vimos anteriormente el grupo generado por los "múltiplos de $latex P_0$" , $latex H_{P_0}$.

Entonces tenemos que para todo $latex P\notin H_{P_0}$:

$latex \psi_{P_0}:E\to E_{P_0}$
           $latex P\mapsto \Big( x_P+\displaystyle\sum_{Q\in H_{P_0}\setminus\lbrace\infty\rbrace}(x_{P+Q}-x_Q), y_P+\displaystyle\sum_{Q\in H_{P_0}\setminus\lbrace\infty\rbrace}(y_{P+Q}-y_Q)\Big)$

Y si $latex P\in H_{P_0}$ definimos $latex \psi_{P_0}(P)=\infty$.


Es fácil mostrar que $latex ker\psi_{P_0}:=H_{P_0}$ , de hecho, ústedes háganlo y verán como todo se reduce a hacer matemáticas lindas, no es tan difícil.

Pero bueno, esta función $latex \psi_{P_0}$ no está dada por la forma que mostrarmos al principio, es decir por la isogenia definida con los polinomios $latex \big( \frac{a_1(x)}{a_2(x)},y\frac{b_1(x)}{b_2(x)} \big)$.

Pero Dustim Moody y Daniel Shumow ya lo hicieron en la sección 2.3 de un paper, aquí dejo su páper , así que ya tenemos la isogenia explícita, y de hecho en ese mismo paper se describe la ecuación de la curva $latex E_{P_0}$ la cual es $latex y^2 = x^3 + (a-5v)x + (b-7w)$ donde $latex v,w$ son constantes que dependen de $latex H_{P_0}$ y son explícitamente calculables.

Ahora sí, el algoritmo

Algoritmo explícito Diffie Hellman con isogenias entre curvas elípticas supersingulares.



Considera una curva elíptica supersingular $latex E$ definida sobre $latex \mathbb{F}_{p^2}$  tal que $latex p=w_A^{e_A}\cdot w_B^{e_B}\cdot f \pm 1$, es decir es un número primo especial, donde $latex w_A,w_B$ son números primos chicos y $latex f$ es cualquier entero, así como $latex e_A,e_B$ los cuales se escogerán de tamaños parecidos y tal que $latex p$ cumpla el nivel de seguridad requerido en bits para este esquema, que está probado que es aproximadamente de 3000 bits (referencia aquí). Entonces con todo lo que dijimos en la sección de curvas súpersingulares es fácil inferir que el tamaño de la curva está dado por #$latex E(\mathbb{F}_{p^2})=(p\pm 1)^2$.

Sean A=Artemisa y B=Boris , dos personas que desean intercambiar una llave en un canal no seguro intervenido por un atacante con recursos cuánticos.

Entonces ellos harán lo siguiente:

Algoritmo SIDH (Supersingular Isogeny Diffie-Hellman)

Públicamente harán lo siguiente: 

Se ponen de acuerdo en los siguiente: $latex p=w_A^{e_A}\cdot \w_B^{e_B}\cdot f \pm 1,\langle E/\mathbb{F}_{p^2},\oplus\rangle,P_A,Q_A,P_B,Q_B\in E$ tal que $latex E$ es súpersingular.
donde intercambiar una curva $latex E/\mathbb{F}_{p^2}$ equivale a mandar $latex \lbrace a,b\rbrace$ tal que $latex y^2 = x^3 + ax+b$.

Tenemos que $latex P_A,Q_A$ y $latex P_B,Q_B$ fueron escogidos tal que tienen orden $latex w_A^{e_A}$ y $latex w_B^{e_B}$ respectivamente, lo cual es fácil por el número primo que construimos.


Vamos a denotar por nA, nB, el paso $latex n$ que tiene que hacer Artemisa o Boris respectivamente,.

Protocolo:

1A: A genera dos números aleatorios $latex m_A,n_A$ < $latex w_A^{e_A}$
2A: A genera $latex R_A := m_A\cdot P_A \oplus n_A\cdot Q_A$ (secreto)
3A: A usa el punto $latex R_A$ para crear el subgrupo $latex H_{R_A}$ que funcionará como kernel del mapeo $latex \psi_{A}:E\to E_A$, por lo que ya tiene $latex R_A,\psi_{A},E_A$ donde los últimos dos son gracias a las fórmulas de Vélu mostradas en la sección anterior.
4A: A forma los puntos $latex \psi_{A}(P_B)$ y $latex \psi_{A}(Q_B)$ con su isogenia creada en el paso anterior.
5A: A le manda a B $latex \lbrace E_A,\psi_A(P_B),\psi_A(Q_B)\rbrace$
Pero NO le manda la isogenia, sino la imagen de los puntos bajo la isogenia secreta $latex \psi_A$

1B-4B: Ahora Boris hace los mismos primeros 4 que Artemisa, sólo intercambiamos las letras de los subscripts A por B

5B: B manda a A $latex \lbrace E_B,\psi_B(P_A),\psi_B(Q_A)\rbrace$
6A: A tiene $latex m_A,n_A,\psi_B(P_A),\psi_B(Q_A)$ y forma el punto $latex S_{BA}:=m_A\cdot\psi_B(P_A)\oplus n_A\cdot\psi_B(Q_A)$.
7A: A usa el punto para generar la isogenia $latex \psi_{BA}$ usando fórmula de Vélu, así como la imagen de la isogenia que será la nueva curva $latex E_{BA}$ que es isógena a $latex E$ gracias a $latex \psi_{BA}$.
8A. A calcula el j-invariante  de la curva $latex E_{BA}$ que será $latex \kappa:=j(E_{BA})$.
6B: Similarmente al paso 6A, Boris tiene $latex m_B,n_B,\psi_A(P_B),\psi_A(Q_B)$ por lo que forma el punto $latex S_{AB}:=m_B\cdot\psi_A(P_B)\oplus n_B\cdot\psi_A(Q_B)$.
7B: Boris usa el punto $latex S_{AB}$ para generar la isogenia con las fórmulas de Velú asociada al subgrupo generado por $latex S_{AB}$ , esta isogenia es $latex \psi_{AB}$ y genera también el codominio de esta isogenia que es la curva $latex E_{AB}$ que es isógena a $latex E$ gracias a $latex \psi_{AB}$.
8B: B calcula el j-invariante de la curva $latex E_{AB}$ que será $latex \kappa:=j(E_{AB})$.

Las curvas $latex E_{AB}$ y $latex E_{BA}$ son isomorfas, ustedes lo pueden demostrar si hacen todo el diagrama, por lo que el j-invariante será el mismo, y ya ambos pueden usar como password $latex  \text{Hash}(\kappa)$ o cualquier función en Kappa.

¿Pero por qué nos enfocamos en súpersingulares?

La verdad nunca usamos nada de las características supersingulares... Pero recuerden que el álgebra de endomorfismos de una curva elíptica supersingular NO es conmutativa, ya que es isomorfa a un álgebra de cuaternios.

Existe un ataque, que resuelve el problema "difícil" en el que está basado este protocolo en tiempo subexponencial cuántico. El algoritmo está descrito en este paper por Andrew M. Childs, David Jao y Vladimir Soukharev.  El cuál hace uso extenso de la CONMUTATIVIDAD del anillo de endomorfismos de la curva elíptica para resolver subexponencialmente el "Abelian Hidden Shift Problem" que es el nombre del problema que hace seguro al algoritmo descrito en la sección anterior.

Por lo que debemos enfocarnos a curvas cuyo anillo de endomorismos no sea conmutativo... es decir... súpersingulares.

¿En qué se basa la seguridad?, ¿qué tengo que romper si quiero hacer criptoanálisis a este algoritmo?


Lo que hay que romper es el "Abelian Hidden Shift Problem".  Algo así en español como "Problema oculto de desplazamiento oculto", ya que lo que estamos haciendo en el algoritmo anterior, es desplazar grupos, y adquireir nuevas curvas "desplazando" con puntos nuevos.

Este problema en general consta de lo siguiente.

-Sea $latex A$ un grupo abeliano finito.
-Sea $latex S$ un conjunto finito.
-Sea $latex f:A\to S$ y $latex g:A\to S$ dos funciones inyectivas.
-Existe una $latex b\in A$ tal que para todo $latex x\in A$ tenemos que $latex f(x)=g(xb)$
-El valor que un atacante quisiera saber es $latex b$.

Vamos a reformular esto en términos de curvas elípticas de manera básica.

-Tenemos dos curvas isógenas $latex E,\hat{E}$
-Decimos que $latex f_0(a)=a*E$ y $latex f_1(a)=a*\hat{E}$.
-Entonces $latex b*E=\hat{E}$
-También $latex f_1(a)=a*\hat{E}=a*b*E=f_0(ab)$

Resolver el Abelian Hidden Shift Problem en $latex f_0$ y $latex f_1$ es descubrir $latex b$.

Esto realmente significa calcular la acción en las curvas elípticas

Dicho esto, SIDH con curvas elípticas súpersingulares, la seguridad se obtiene es con llaves de 3000 bits para obtener seguridad cuántica exponencial de 128 bits, la cual es más que suficiente.

Esto es todo por hoy, ahora saben cómo implementar un algoritmo que tenga seguridad cuántica.

Espero les haya gustado.

Más información, pueden ver el paper original de Luca De Feo, David Jao y Jerome Plut.
https://eprint.iacr.org/2011/506.pdf


Eduardo Ruíz Duarte (beck)
Twitter: @toorandom




Sunday, July 17, 2016

Algebras de endomorfismos en curvas elípticas (Parte 1 Anillos de Endomorfismos)

Hoy quiero hablar un poco de cómo analizar internamente la estructura de un grupo abeliano, lo cual lo haremos con el grupo abeliano que forma una curva elíptica.

Es decir, a veces para poder entender a un objeto, es indispensable poder entender los morfismos internos del objeto.
En este caso, lo que quiero es poder estudiar al grupo abeliano como un "espacio vectorial" y estudiar las transformaciones que hay en él... y pues con esto podemos incluso hablar de matrices, determinantes, trazas, polinomios característicos y valores propios.

Pero primero en esta parte, le daremos estructura de anillo a los homomorfismos de la curva en si misma, y en la siguiente parte de este post le daremos ya estructura de álgebra.

Recordando muy informalmente curvas elípticas

Recordemos rápidamente el contexto deseado, que son la curvas elípticas de una manera muy informal ya que he hablado antes de esto aquí en mi blog (busca keyword "elíptica").

Las curvas elípticas son objetos muy usados en criptografía ya que proveen con su estructura geométrica una manera diferente de "sumar y restar" que al ésta ser sustituida en los algoritmos de llave pública como Diffie-Hellman que es el más usado en todas las telecomunicaciones en vez de grupos finitos (enteros módulo un número primo usualmente) resulta muy rápido y más seguro. Un ejemplo intuitivo de cómo funciona esta suma es el siguiente:




Lo que estamos viendo aquí es una curva $latex E$ en azul, y dos puntos en ella que son $latex P,Q\in E$ , que su suma está definida como la proyección con el eje $latex x$ del tercer punto de intersección de la linea que los une, que en este dibujo está denotado como $latex P+Q$.

Siempre habrá este tercer punto de intersección si la curva es vista de manera proyectiva, lo cual veremos en la siguiente sección y es justificado por el teorema de Bézout.

Si quisieras calcular el punto $latex P+P$ se hace de manera parecida, sólo que la linea a considerar es la tangente a $latex P$ en la curva $latex E$.

El negativo de un punto es sólo su proyección con el eje $latex x$ es decir si $latex (x,y)\in E$ entonces $latex -(x,y)=(x,-y)$, y sumar $latex P+ (-P)=\infty$ , donde este $latex \infty$ será explicado en la siguiente sección y este $latex \infty$ nos funcionará como el cero (identidad) en la estructura de grupo abeliano que tiene la curva.

Bajo esta operación tenemos que la curva $latex E$ y sus puntos forman un grupo abeliano, es decir, con sus puntos bajo esta operación ya explicada es conmutativa, cada elemento tiene un inverso, es asociativa y cerrada, y lo más importante... es algebraica... es decir,  hay fórmulas explícitas que no necesitan funciones raras para definirlas (como raíces cuadradas, logaritmos ni nada).

Entrando un poco más en lo que significa "algebraico" es que su suma se puede definir con simples cocientes de polinomios, a eso me refiero con que algo sea "algebraico", y más allá de ser una curva, esto se le llama variedad abeliana, que es un objeto algebraico dotado de una estructura de grupo con una operación continua bajo cierta topología (Zariski), y que está dada por polinomios cuya operación explícita puede ser vista aquí en wikipedia.

Puedes notar que también puedes calcular "$latex n$ veces el punto $latex P$ , es decir $latex P+P+\ldots +P$  ($latex n$ veces) para todo $latex n\in \mathbb{Z}$ , por lo que significa que podemos "hacer actuar a los enteros en la curva", esto es lo que se le conoce como un $latex \mathbb{Z}$-módulo, y todo grupo abeliano, tiene esta capacidad, por más abstracto que sea el grupo, siempre se puede hablar de "$latex n$ veces aplicar la operación + del gropo".

La definición formal es que son curvas suaves proyectivas de género 1 con un punto distinguido.

Suaves significa que son diferenciables en todos lados y no hay puntos dobles o nodales por ejemplo dos que cumplen la definición vistas en $latex \mathbb{R}\times\mathbb{R}$ serían:


Espacio proyectivo.

Aquí justificamos este símbolo $latex \infty$.
Proyectivo significa que en vez de vivir en espacios vectoriales usales como $latex \mathbb{R}^n$ o $latex \mathbb{F}_{q}$ , vive en un nuevo espacio que ahora definiremos que es $latex \mathbb{P}^n_\mathbb{R}$ o en  $latex \mathbb{P}^n_{\mathbb{F}_q}$ respectivamente, donde estos espacios incluyen un punto nuevo, que es el infinito y múltiplos de vectores serán identificadas con un sólo punto.

Este espacio proyectivo lo tengo bien explicado aquí pero a grandes rasgos es un espacio en el cual identificamos todos los múltiplos de un punto como el mismo punto, imaginen un espacio vectorial, donde un vector $latex v$ al aumentar su magnitud por una constante $latex c\neq 0 \in \mathbb{R}$ tenemos que el nuevo vector sería $latex c \cdot v$. Aquí , tenemos que por ejemplo en $latex \mathbb{R}^n$ los puntos $latex v$ y $latex c \cdot v$ serán identificados con el mismo vector, es decir es como una contracción y a este nuevo espacio con esta nueva regla lo denotamos como  $latex \mathbb{P}^n_\mathbb{R}$.

El punto $latex [0:0:0]$ no existe, lo cual es una consecuencia de las reglas que acabo de definir, por lo que al interesado en álgebra le serviría la definición que es:  $latex \mathbb{P}^n_\mathbb{R}:=\mathbb{R}^{n+1}\setminus \lbrace \overline{0} \rbrace /\sim$ donde la relación $latex \sim$ es que si $latex \overline{u},\overline{v}\in \mathbb{R}^{n+1}$ entonces $latex \overline{u}\sim \overline{v}$ sí y sólo sí $latex \overline{u} = \lambda \overline{v}$ donde $latex \lambda\in \mathbb{R}^{*}$ , es decir esto nos colapsa toda una familia de puntos en $latex \mathbb{R}^{n+1}$ a un sólo punto que denotaremos como $latex [u] \in \mathbb{P}^n_\mathbb{R}$ y tenemos que en este caso $latex [u]=[v]$.


Y de hecho las ecuaciones proyectivas de los ejemplos anteriores serían la ecuación homogénea que hace que los grados de todos los monomios sean iguales $latex y^2z=x^3-xz^2$  así como $latex y^2z=x^3-xz^2 + z^3$ donde ahora vemos que tiene otra variable $latex z$ que nos permitirá agregar otra familia de puntos, por ejemplo, los puntos de la ecuación afín serían los puntos de la forma $latex [x:y:1]$ pero también tenemos que la ecuación también tiene el punto $latex [0:1:0]$  que será el punto racional distinguido, y todas las ecuaciones cúbicas de esta forma lo contienen.


También agregamos un punto muy especial como ya vimos que es usualmente $latex \infty:=[0:1:0]$ que es muy usado en el modelo matemático de lo que significa dibujar "horizontes" en un paisaje, y observando que unas vías del tren no son paralelas, ya que se tocan en el infinito, como lo pueden ver aquí.




Y bueno una curva elíptica de género 1 sin puntos raros, siempre es transformable a una ecuación de la forma $latex y^2 = x^3 + ax+b$ mediante sustitución de variables, a esta forma se le llama forma de Weierstrass.

Género de una curva

El género es un poco más difícil de explicar en este post y con esta informalidad, pero imaginen que tiene que ver con que si la ecuación de la curva la vemos en el espacio complejo... su gráfica será una dona con 1 hoyo... si fueran dos hoyos tendría género 2, por lo que una curva elíptica tiene género 1 y se ve así  "intuitivamente" como una función compleja:







A mi me gusta mucho el álgebra así que podemos calcular de hecho géneros de maneras más abstractas gracias aun teorema muy interesante, de Riemann-Roch, que nos dice el género de un objeto geométrico con la dimensión de ciertos espacios de funciones el cual tengo explicado de manera formal aquí.

Estoy trabajando en mi mente un artículo para explicar el teorema de Riemann-Roch sin necesitar álgebra tan dura, con pura teoría de espacios vectoriales, espero pronto tenerlo.

El género cuando no hay puntos raros en la ecuación, se puede calcular con los grados de los monomios en una ecuación.


En términos criptográficos, recuerden que hasta ahora las computadoras no saben cómo manejar a los números reales (ni complejos), de manera continua, es decir, cuando ustedes programan un "float" o "double" sabemos que tienen un "límite" en su representación, por lo que realmente la computadora sólo sabe manejar estructuras finitas.

Estructura finita asociada a las curvas para poder usada en criptografía y computación.

Algo interesante de las curvas elípticas es que su estructura de grupo funciona en cualquier campo... no sólo en los números reales, los complejos o los racionales que son infinitos... sino en campos finitos, como son los enteros módulo p.

De manera básica y para no entrar en detalles tenemos que si escogemos cualquier número primo $latex p$ , tenemos que si $latex a,b\in \mathbb{Z}$ podemos calcular que $latex a\cdot b\equiv c \bmod p$  donde $latex c$ será solamente el residuo de la división al calcular $latex a\cdot b/p $ , este residuo está entre el 0 y $latex p-1$, y todo entero se puede reducir módulo $latex p$ de la misma forma (dividiendo entre $latex p$ y calculando su residuo), este conjunto donde juntas a todos los elementos reducidos en sus respectivas clases se denota como $latex \mathbb{F}_p$ y consta de $latex p$ elementos, del 0 al $latex p-1$.


La suma se define de manera similar y todo elemento tiene un inverso multiplicativo y aditivo, es decir para todo $latex [a]\in \mathbb{F}_p$ tenemos que existe un $latex [a]^{-1}\in \mathbb{F}_p$ tal que $latex [a]\cdot [a]^{-1} = [1]$  , por ejemplo en $latex \mathbb{F}_7$ tenemos que el inverso  multiplicativo de $latex [3]$ es $latex [5]$ ya que $latex 5\cdot 3=15$ y $latex 15\equiv 1\bmod 7$ por lo que podemos decir abusando de la notación que "dividir entre $latex [3]$" módulo $latex 7$ equivale a multiplicar por $latex [5]$.
Con la suma el negativo de $latex [a]\in \mathbb{F}_p$ es de hecho $latex [p-1]\cdot [a]$ ya que $latex (p-1)\cdot a = pa-a \equiv -a \bmod p$ , por ejemplo en $latex \mathbb{F}_7$ tenemos que $latex -[3]= (p-1)\cdot 3 = 6\cdot 3 = 18 \equiv 4 \bmod 7$ , por lo que $latex -[3] \equiv [4]$ y es fácil verificarlo ya que al sumar con su inverso aditivo al 3 tenemos que $latex -[3] + [3] = [4] + [3] \equiv 0 \bmod 7$ (ya que no deja residuo).

Se pueden definir campos para cada potencia de $latex p$ es decir $latex \mathbb{F}_{p^n}$ pero eso queda de tarea para ustedes investigar cómo se hace.

Con esto tenemos que si evaluamos todas las posibles soluciones de una curva elíptica bajo esta aritmética, tenemos que ya no se ve como una "curva", pero realmente lo es en el sentido algebraico, y se ve por ejemplo $latex y^2=x^3 - 4x+6$ sobre $latex \mathbb{F}_{197}$ así:



Si implementan la regla de adición como en wikipedia, donde las divisiones que vean en las funciones que definen la suma de dos puntos las interpretan como "calcular el inverso multiplicativo" (lo cual se hace con el algoritmo de euclides extendido), una consecuencia del teorema fundamental del álgebra les dirán que las "lineas entre dos puntos" en aritmética modular también funcionan, esto es de manera informal pero sólo quiero meter la idea, en posts anteriores formalizo esto.



Grupos de homomorfismos en grupos abelianos (curvas elípticas en este caso)

Recordemos que un homomorfismo entre dos grupos (o dos curvas) $latex G_1$ y $latex G_2$ es un mapeo que respeta la estructura de grupo en cada uno. Es decir si $latex \langle G_1,+\rangle$ y $latex \langle G_2,\oplus\rangle$ son sus respectivas operaciones. tenemos que $latex \alpha \in Hom(G_1,G_2)$ es un homomorfismo entre $latex G_1$ y $latex G_2$ , es decir  $latex \alpha:G_1\rightarrow G_2$ si para $latex P,Q\in G_1$

$latex \alpha(P+Q)=\alpha(P)\oplus \alpha(Q)$

También tenemos que $latex \alpha$ también manda infinitos de un grupo a infinitos del otro.

 $latex \alpha(\infty_{G_1})=\infty_{G_2}$.


Algo muy interesante es que el conjunto de todos los homomorfismos, es decir $latex Hom(G_1,G_2)$ forma un grupo abeliano, es decir, puedes sumar los homomorfismos, noten que ya no estamos hablando de los puntos de la curva solamente o de elementos de grupos en general, es decir si $latex \alpha,\beta\in Hom(G_1,G_2)$ definimos bajo la operación nueva de homomorfismos $latex \boxplus$ una nueva función $latex \alpha\boxplus \beta\in Hom(G_1,G_2)$ :

$latex (\alpha\boxplus\beta):G_1\rightarrow G_2$
$latex P\mapsto \alpha(P)\oplus \beta(P)$

Es fácil demostrar que $latex \alpha\boxplus \beta$ también respeta estructura de grupo en $latex G_2$ (es decir que es un homomorfismo) , y pues tenemos que la identidad es el morfismo $latex [0]\in Hom(G_1,G_2)$ que manda todo al 0 del grupo $latex G_2$.
También para que $latex Hom(G_1,G_2)$ sea grupo bajo la operación $latex \boxplus$, necesitamos un inverso, es decir, si $latex \alpha\in Hom(G_1,G_2)$ existe un $latex -\alpha \in Hom(G_1,G_2)$ y de hecho pueden ver que este es simplemente $latex -\alpha:G_1\rightarrow G_2$ que mapea $latex P\mapsto \alpha(-P)$ por lo que $latex \alpha\boxplus -\alpha$ está definido como $latex (x,y)\mapsto \alpha(x,y)\oplus \alpha(x,-y)$ y esto y si $latex \alpha(P)=Q\in G_2$ tenemos que es igual a $latex Q\oplus -Q=\infty_{G_2}$ , por lo que mapea al cero de $latex G_2$ y $latex (\alpha\boxplus -\alpha)(P)=\infty_{G_2}$ para todo $latex P\in G_1$ por lo que $latex \alpha\boxplus -\alpha=[0]\in Hom(G_1,G_2)$.

De manera similar se puede demostrar que $latex \boxplus$ es asociativa,  por lo que $latex Hom(G_1,G_2)$ es un grupo.

También como mencionamos hace rato, todo grupo abeliano tiene estructura de $latex \mathbb{Z}$ módulo... es decir, en este ejemplo podemos hablar de aplicar en $latex Hom(G_1,G_2)$ la operación $latex \boxplus$ varias veces a sus elementos, (en este caso homomorfismos entre los dos grupos) es decir $latex n\alpha$ simplemente será:

$latex n\alpha:G_1\mapsto G_2$
$latex P\mapsto \alpha(P)\oplus\ldots \oplus \alpha(P)=\bigoplus_{k=1}^{n} \alpha(P)$

Por lo que decimos que $latex Hom(G_1,G_2)$ tiene estructura de $latex \mathbb{Z}$ módulo.

Anillos de Endomorfismos entre grupos abelianos.

Este es un caso especial de $latex Hom(G_1,G_2)$ , ahora imaginen que $latex G_1=G_2$ por o que lo denotaremos simplemente por $latex G$ , y vamos a definir que $latex End(G):=Hom(G,G)$ pero adicionalmente para que sea un anillo tenemos que la operación multiplicación de endomorfismos $latex \alpha,\beta\in End(G)$ es  $latex \alpha\circ \beta$ , es decir la composición entre ellos como funciones, es decir $latex (\alpha\circ\beta)(P)=\alpha(\beta(P))$.

Como tenemos que $latex \alpha,\beta Hom(G,G)$ está bien definido $latex \alpha\circ \beta:G\rightarrow G$.

La identidad bajo esta multiplicación es la función identidad , es decir, la que manda un punto a sí mismo, y la denotamos como $latex [1]\in End(G)$.

Ustedes pueden verificar que la operación $latex \circ$ es distributiva con $latex \boxplus$ , es decir que si $latex \alpha,\beta,\gamma\in End(G)$ y $latex P\in G$:

$latex (((\alpha\boxplus\beta)\circ \gamma)(P)=((\alpha\circ \gamma)\boxplus (\beta\circ \gamma))(P)$

y usando que $latex \gamma$ también es in homomorfismo.

$latex (\gamma\circ(\alpha\boxplus \beta))(P)=((\gamma\circ \alpha)\boxplus (\gamma\circ\beta))(P)$

Es fácil ver que por default, en $latex End(G)$ hay una infinidad de endomorfismos, de hecho para toda $latex n\in \mathbb{Z}$ tenemos el mapeo $latex [n]\in End(G)$ el cual definimos como:

$latex [n]:G\mapsto G$
$latex P\mapsto P+\ldots +P$  (n veces)

Donde $latex +$ es la operación del grupo $latex G$

Entonces es fácil ver que de hecho, en un nivel más alto hay otro homomorfismo de anillos entre los enteros y $latex End(G)$ , es decir:

$latex \Psi:\mathbb{Z}\rightarrow End(G)$
$latex n\mapsto [n]$

Y es homomorfismo ya que es fácil verificar que $latex \Psi(n+m)=\Psi(n)\oplus \Psi(m) = [n] \boxplus [m]=[n+m]$ y respeta la estructura de anillo ya que $latex \Psi(n\cdot m)=[n]\circ[m]=[nm]$.

Con esto tenemos mucho para argumentar que $latex \mathbb{Z}$ es un subanillo de $latex End(G)$ ya que $latex End(G)$ no tiene torsión, es decir, el aplicar $latex n$ veces cualquier endomorfismo diferente de $latex [0]$ , nunca nos dará $latex [0]$ y el mapeo entre $latex \mathbb{Z}$ y $latex End(G)$ es inyectivo.

Otra cosa es que $latex [n]\circ \alpha = \alpha \circ [n]$ es decir conmuta, y ustedes lo pueden demostrar fácilmente (pero no siempre es así entre cualquiera $latex \alpha,\beta\in End(G)$, que es cuando en el siguiente post definiremos que $latex End(G)$ está equipado con multiplicación compleja.

En el caso en que se esté trabajando sobre un campo finito en el grupo de una curva elíptica $latex E$ como $latex \mathbb{F}_q$ existe otro endomorfismo muy famoso que es usado mucho en investigación en criptografía , que es el endomorfismo de Frobenius, $latex \phi\in End(E)$ que equivale a $latex (x,y)\mapsto (x^q,y^q)$ , es decir, elevar a la $latex q$ cada coordenada de un punto en la curva usando la reducción en el campo finito $latex \mathbb{F}_q$. Este homomorfismo también conmuta.

Otro remark es que en una curva elíptica $latex \alpha,\beta\in End(E)$ son suprayectivos y por consecuencia $latex \alpha\circ\beta$ también lo es, por lo que jamás será el homomorfismo $latex [0]$ , esto nos dice que bajo la multiplicación del anillo $latex End(E)$ dada por la composición, nunca obtenemos el $latex [0]\in End(E)$ por lo que no existen múltiplos de 0, y $latex End(E)$ es un dominio entero, por lo que pueden usar las reglas de cancelación usuales entre sus elementos tanto por la izquierda como por la derecha.


Espero les haya gustado, la parte 2 la haré pronto, donde extenderemos la estructura de $latex \mathbb{Z}$-módulo de $latex End(E)$ a un $latex \mathbb{Q}$-módulo a través de un tensor.

Eduardo Ruíz Duarte (beck)
twitter: @toorandom



Tuesday, November 25, 2014

Teorema de Hasse para curvas elípticas, núcleo de la demostración pero desde el twist cuadrático de la curva 1/2

Vamos a explorar un teorema que es una consecuencia directa de las Conjeturas de Weil demostradas por Pierre Deligne, si nos da tiempo veremos un sketch de como demostrar las conjeturas de André Weil en general.

El teorema de Hasse es muy importante en criptografía con curvas elípticas, ya que nos permite aproximar o incluso saber el número de elementos que tiene el grupo que forma una curva elíptica, este número de elementos en función del tamaño del campo finito, esto tiene aplicaciones a la ingeniería en la implementación, y también nos puede decir, si la curva es segura o no , es decir que su grupo no sea isomorfo a algo trivial.

El problema de la demostración de Helmut Hasse en 1936 es que es muy larga y complicada, aquí trataremos de dar los elementos necesarios, pero también extenderemos el teorema a otro espacio el cual nos permitirá analizar la estructura desde los endomorfismos de la curva.

Primero, trabajemos en un campos $latex \mathbb{F}_q$ con $latex q$ impar y con la forma de una curva elíptica $latex E$ en su forma reducida de Weierstrass, es decir $latex y^2 = x^3 + Ax + B$ , pero esta forma reducida de Weierstrass tiene el problema de que $latex j(E)=1728\equiv 0$ mod $latex 3$ lo que nos limita a trabajar con cierta familia (0) de curvas en característica 3, necesitamos que el $latex j$ invariante tome todos los valores de $latex \mathbb{F}_q$ entonces consideraremos las curvas $latex y^2 = x^3 + a_{2}x^2 + a_{4}x + a_6$ , pueden demostrar que el $latex j$ invariante de esta curva ya cubre todas las curvas elípticas de característica impar.

El teorema de Hasse dice.

Teorema (Helmut-Hasse, 1936): Sea $latex E$ una curva elíptica sobre un campo
$latex \mathbb{F}_q$, si $latex N_q$ representan el número de puntos de $latex E$ sobre $latex \mathbb{F}_q$ entonces:

$latex \mid N_q-(q+1)\mid \leq 2\sqrt{q}$

Este teorema se ve muy infensivo, pero no lo es... de hecho de manera preliminar podríamos comenzar a atacarlo

Si la ecuación de $latex E$ es $latex y^2 = x^3 + Ax +B =f(x)$ y $latex q$ es impar, entonces vamos a

suponer que el número de puntos que cumplen $latex f(x)$ están distribuidos uniformemente al ser evaluado $latex f$  $latex \forall x\in \mathbb{F}_q$ , por lo que tenemos que hay una raíz que es un punto de $latex E$ y como $latex q$ es impar, existen $latex \frac{q-1}{2}$ elementos que no son cuadrados en $latex \mathbb{F}^{*}_q$  lo que nos deja con los otros $latex \frac{q-1}{2}$ puntos que sí son cuadrados, pero hay 2 por cada uno ya que en $latex E$  tenemos $latex (\pm y)^2$ por lo que el valor esperado de $latex N_q$ es   $latex 1+2\frac{q-1}{2}=q$

Esto nos da la desviación de $latex N_q$ y nos muestra la parte izquierda de la desigualdad de hasse que es $latex \mid N_q-(q+1)\mid$ donde el $latex +1$ es porque se consideran los puntos de $latex \mathbb{F}_q$ sobre la linea proyectiva la cual tiene otro punto adicional en el infinito.

Teoría necesaria.

En el post anterior hablamos del anillo de endomorfismos de una curva, el j-invariante e isogenias.
Te recomiendo lo leas antes, aquí recordaremos algunas cosas pero si crees que falta algo, el artículo anterior tiene más detalles.




Sean $latex E_1, E_2$ dos curvas elípticas definidas sobre $latex \mathbb{K}$ y $latex \psi:E_1\rightarrow E_2$ un homomorfismo separable de curvas elípticas, es decir... que si consideramos el functor contravariante $latex \psi^{*}:\mathbb{K}(E_2)\rightarrow \mathbb{K}(E_1)$ que manda $latex f\mapsto f\circ \psi$ entonces $latex \mathbb{K}(E_1)/\psi^{*}\mathbb{K}(E_2)$ es una extensión de campos separable (i.e. los polinomios minimos de elementos de el campo grande con coeficientes en el campo chico no tienes raíces repetidas) , y definimos el grado del mapeo $latex \psi$ como:  $latex \partial\psi=[\mathbb{K}(E_1):\psi^{*}\mathbb{K}(E_2)]$



Motivación de la demostración de Hasse

Sea $latex \psi:E_1 \rightarrow E_2$ un morfismo separable entre curvas elípticas, tenemos que $latex \partial \psi=\sum_{P\in \psi^{-1}(Q)}e_{\psi}(P)$  $latex \forall Q\in E_2$ con $latex e_\psi(P)=\nu_P(\psi^{*}t_{\psi(P)})$ el índice de ramificación [Silverman II , 2.6a], ahora, si usamos [Silverman III 4.10 a,c] tenemos que $latex \psi$ es separable $latex \Rightarrow \psi$ no tiene ramificación lo que implica que $latex e_{\psi}(P)=1$, y como $latex \psi(P+Q)=\psi(P)+\psi(Q)$ es un homomorfismo de grupos tenemos que $latex \psi^{-1}(\infty_{E_2}) = Ker\psi \Rightarrow$  $latex \partial \psi=\sum_{P\in Ker\psi}e_\psi(P) = \sum_{P\in Ker\psi}1 =$ #$latex Ker\psi$


Sabiendo esto, podemos deducir algo interesante sobre la cardinalidad de la curva elíptica $latex E$, si usamos [Silverman III, 5.5] tenemos que si $latex \phi:E\rightarrow E$ es el endomorfismo de Frobenius que actúa en las coordenadas de los puntos elevándolos a la $latex q$ entonces el mapeo
$latex Id-\phi$ es separable y tenemos que $latex \phi(P)=P \Leftrightarrow P\in E(\mathbb{F}_q)$ y usando el párrafo anterior, $latex Ker(Id-\phi)$ consta de todos los puntos $latex \mathbb{F}_q$ racionales de la curva ya que se anulan con la identidad, lo que nos dice que $latex Ker(Id-\phi)=E(\mathbb{F}_q)$ por lo que igual con el párrafo anterior, $latex \partial(Id-\phi)=$#$latex E(\mathbb{F}_q)$



Me he tardado en escribir en mi blog, pero por ahora dejo sólo esta parte, después vamos a terminar la demostración, pero falta relacionar los morfismos de la curva elíptica con elementos de una torcedura cuadrática de la curva, y con eso, construiremos $latex Id-\phi$ pero visto desde puntos en otra curva definida sobre $latex \mathbb{F}_q(s,t)$ tal que $latex s^2 = f(t)$ es decir la misma curva $latex E$ será  $latex E^{TW}: f(t)y^2 = f(x)$ y los puntos equivalentes a la identidad y el mapeo de frobenius ahí serán $latex (t,1)$ y $latex (t^q,s^{\frac{q-1}{2}})$ , pero esto será después de establecer este isomorfismo $latex Mor_{\mathbb{F}_q}(E,E) \cong E^{TW}(\mathbb{F}_q(s,t)) \cong E(\mathbb{F}_q(s,t))$ el cual nos permitirá calcular la cardinalidad del Kernel que necesitamos mediante otra función entre puntos sobre la curva con puntos en el campo de funciones racionales utilizando el grado de los puntos Id y Frobenius (los puntos ya no son numeros... son cocientes de polinomios en la torcedura cuadrática).


Espero les haya servido.

Wednesday, October 29, 2014

j-invariante y anillo de endomorfismos de curvas elípticas (isogenias)

Ahora, estoy dedicándome a explorar el anillo de endomorfismos de una curva elíptica $latex C$
sobre un campo perfecto (todo polinomio irreducible sobre este campo tenga raíces diferentes) para poder hablar de aplicaciones criptográficas.

Estos campos perfectos por excelencia en criptografía son $latex \mathbb{F}_q$.

Vamos a definir algunas cosas para clasificarlas, ya que anteriormente nos habíamos dedicado a estudiar cada curva por separado, pero ahora queremos considerar TODAS las curvas elípticas sobre un campo $latex \mathbb{K}$ , y ver cuáles son isomorfas, y ver cada clase de curvas isomorfas como la misma curva,  como un sólo punto, este espacio es una espacio modular, y generalmente es estudiado como un esquema.

Algo interesante es que en las curvas elípticas es que este espacio tiene dimensión 1, y de hecho es una linea topológicamente hablando.

Como sabemos, una curva elíptica tiene una estructura algebraica y una estructura geométrica, las curvas elípticas son el caso más simple de una variedad abeliana, éstas tienen dimensión 1 (Es decir, al considerar su anillo de coordenadas, su dimensión de Krull es 1, lo cual se traduce a que la cadena más grande de ideales por contención que se puede construir $latex \lbrace J_i \rbrace$ es de altura 1 por lo que $latex J_0 \subset J_1 \subset J_2$ tenemos que $latex J_1 = J_2$ lo que hace al anillo Noetheriano.

Vamos a explorar un poco lo que es una curva elíptica desde el punto de vista más formal, y construiremos relaciones de éstas, clasificaciones, y exploraremos cómo se comporta el anillo de morfismos de la curva en si misma, así como la relación que hay entre la traza y determinante de ciertos endomorfismos con el subgrupo de torsión de la curva en cuestión.


Curva suave de género 1, entonces es elíptica

Todas las curvas de género 1 son elípticas, como lo pueden ver en este post via el teorema de Riemann-Roch , y la construcción de la ecuación en la forma de Weierstrass ahora redefiniremos de una curva elíptica, recordemos que en la estructura algebraica de la curva siempre hay un punto distinguido que nos sirve como identidad visto como variedad abeliana, llamémoslo $latex \mathcal{O}$ , entonces si tenemos que una curva $latex E$ es suave de género g=1 y proyectiva , entonces por el teorema de Riemann-Roch tenemos que si $latex n>2g-2=0$ tenemos que $latex \mathcal{L}(n0)=n-g+2=n$  si $latex n=2$ y $latex n=3$ podemos encontrar dos funciones $latex x,y\in \mathbb{K}(E)$ que tienen exactamente 2 polos en $latex \mathcal{O}$ y $latex y$ tiene 3 polos en $latex \mathcal{O}$ , ahora si $latex n=6$, obtenemos una base para el espacio vectorial $latex \mathcal{L}(6\mathcal{O})$ la cual es $latex \lbrace 1,x,x^2,x^3,y,y^2,xy \rbrace$

La cual nos da la forma usual de la curva elíptica en la forma de Weierstrass como todos la conocemos.

$latex y^2 + f_1xy+f_3y = x^3+f_2x^2 + f_4x + f_6$

tal que $latex f_i \in \mathbb{K}$

Aquí fuimos de álgebra directamente a geometría.

Ahora, ya para geometrizar esto por completo, considera:

$latex \Phi: E \rightarrow \mathbb{P}^{2}_{\mathbb{K}}$
$latex (x,y) \mapsto [x:y:1]$

Ahora, también por lo anterior y Riemann-Roch tenemos que $latex [\mathbb{K}(E):\mathbb{K}(x)]=2$ y que $latex [\mathbb{K}(E):\mathbb{K}(y)]=3$ lo cual implica que $latex [\mathbb{K}(E):\mathbb{K}(x,y)]=1$, por lo que $latex \Phi$ tiene grado 1, como por hipótesis tenemos que $latex E$ es suave, sabemos que su discriminante $latex \Delta\neq 0$ ,  es decir $latex \Phi(\mathcal{O})=[0:1:0]=\infty$  es el punto al infinito.


Isogenias

La palabra "isogenia" no me gusta, pero no sé cómo traducirla, en inglés se dice "isogeny" , pero bueno, hay poca literatura en español sobre curvas isógenas (o no he buscado bien... o no he buscado más bien en español).

Lo que queremos hacer ahora es definir homomorfismos entre curvas elípticas, es decir queremos comenzar a compararlas de tal manera que ésta comparación respete sus propiedades geometricas y algebraicas.

Sean $latex E$ y $latex F$ dos curvas elípticas sobre $latex \mathbb{K}$ , una isogenia es un mapeo racional $latex \alpha: E\rightarrow F$ que induce homomorfismo de grupos de $latex E(\mathbb{K})$ y $latex F(\mathbb{K})$ (es decir entre los grupos abelianos inducidos por la curva elíptica)


Para entender esta definición, como ya lo había definido en el post antes citado en este post, vamos a redefinir lo que es un campo de funciones de una curva proyectiva en general para saber qué es un mapeo racional.

Sea $latex C(\mathbb{K})$ una curva proyectiva definida por $latex f(x,y,z)=0$ donde $latex f\in \mathbb{K}[x,y,z]$ es irreducible en $latex f\in \bar{\mathbb{K}}[x,y,z]$.

El campo de funciones $latex \mathbb{K}(C)$ son las funciones $latex g/h$ tal que

$latex g,h$ polinomios homogéneos del anillo $latex \mathbb{K}[x,y,z]$ de mismo grado
$latex h\notin (f)$  (el ideal generado por f)
$latex g_1/h_1$ y $latex g_2/h_2$ son equivalentes cuando $latex g_1h_2-g_2h_1 \in (f)$

Si te da miedo lo proyectivo, aquí te dejo la definición afín, pero debes trabajar proyectivamente, aquí te dejo un post anterior sobre el espacio proyectivo.

$latex \mathbb{K}(C)=Frac(\mathbb{K}[C])=Frac(\mathbb{K}[x,y]/(f))$

Decimos que un mapeo racional entre dos curvas proyectivas

$latex \Phi: E \rightarrow F$
$latex P\mapsto [\phi_x(P):\phi_y(P):\phi_z(P)]$

Tal que $latex \phi_i \in \mathbb{K}(E)$

Decimos que el mapeo es regular en $latex P\in E(\bar{\mathbb{K}})$  (puntos de E con coordenadas en la cerradura del campo) si existe $latex g\in\bar{\mathbb{K}}(E)$ tal que $latex [g\phi_x(P):g\phi_y(P):g\phi_z(P)]$ está bien definida y no todos son coordenada 0 ($latex [0:0:0] \notin \mathbb{P}^2$).


Si un mapeo es regular en todos los puntos, decimos que es un morfismo , puede verse en el libro Advanced topics in the arithmetic of elliptic curves (Silverman) que si $latex E$ es suave proyectiva, entonces todo mapeo racional de $latex E$ a una curva proyectiva $latex F$ es un morfismo.

Tambien decimos que un isomorfismo entre curvas elípticas es una isogenia invertible.

Como ejemplos que pueden trabajar en casa, consideren los mapeos sobre una curva $latex E$ sobre el campo $latex \mathbb{F_q}$  con $latex q=p^n$

$latex P\mapsto 2P$

Pueden demostrar que eso realmente es una isogenia

También
$latex \pi:E \rightarrow E$
$latex [x:y,z] \mapsto [x^q:y^q:z^q]$

Donde este mapeo es el endomorfismo de Frobenius y tenemos que
$latex \hat{\pi}:\mathbb{F}_q \rightarrow \mathbb{F}_q$
$latex x\mapsto x^p$

Este mapeo es muy importante , ya que es un automorfismo, y tenemos que

$latex \pi(\mathbb{F}_q)$ deja fijos a los elementos $latex \mathbb{F}_p$


Ahora queremos representar explícitamente las isogenias entre curvas elípticas.

Lema: Si $latex E$ y $latex F$ son curvas elípticas sobre $latex \mathbb{K}$  en su forma estándar de Weierstrass (como en los ejemplos) y si $latex \alpha$ es una isogenia no trivial, entonces tiene la siguiente forma:

$latex \alpha(x,y)=\Big( \frac{u(x)}{v(x)} , \frac{s(x)}{t(x)}y \Big )$

donde

$latex u,v,s,t \in \bar{\mathbb{K}}[x]$

y las fracciones están reducidas (numerador y cocientes son primos relativos)


Esto es fácil demotrarlo, te dejo los hints porque es mucha talacha para que tú lo hagas.

Considera lo que ya sabemos, supón que $latex \alpha$ está definido por el mapeo racional $latex [\alpha_x:\alpha_y:\alpha_z]$, y considera para todo punto afín

$latex [x:y:1] \in E(\bar{\mathbb{K}})$

$latex \alpha(x,y)=\Big ( r_1(x,y), r_2(x,y) \Big )$  donde $latex r_1(x,y)=\alpha_x(x,y,1)/\alpha_z(x,y,1)$ y $latex r_2(x,y)=\alpha_y(x,y,1)/\alpha_z(x,y,1)$

utilizando la relación de $latex E$ que ya conoces entre $latex x,y$ que es $latex y^2=x^3+ax+b$ elimina los factores $latex y^n$ y reescribe $latex r_1(x,y)=\frac{p_1(x)+p_2(x)y}{p_3(x)+p_4(x)y}$, multiplica el numerador y denominador por $latex p_3(x)-p_4(x)y$ y vuelve a reducir los $latex y^n$

Eso te dara otra versión de $latex \alpha$ que también tiene $latex y$, pero considera la simetría de la curva y el inverso de los puntos... sabes que $latex \alpha(x,-y)=-\alpha(x,y)$ por lo que deben haber cosas que se hagan 0, el argumento en $latex \alpha_y$ es similar.

El grado de una isogenia se define bajo esta representación tan cómoda como $latex \partial(\alpha):=max\lbrace u,v\rbrace$, y decimos que la isogenia $latex \alpha$ es separable si la derivada de $latex \frac{u}{v}$ NO es la función 0

El grado jugara un papel importante para despues definir otras cosas y jugar con la funcion zeta elíptica y el teorema de Hasse.

Corolario-Definición

Si $latex \alpha(x,y)$ es una isogenia como en el lema pasado, $latex v,t$ tienen las mismas raíces, y justamente estas raíces corresponden al kernel de $latex \alpha$



Teorema-Definición: 
Sea $latex \alpha: E\rightarrow F$ una isogenia con $latex \partial(\alpha)=n$ separable, entonces existe una única isogenia $latex \hat\alpha:F\rightarrow E$ tal que $latex \hat\alpha \circ \alpha = [n]$ , y le llamamos isogenia dual de $latex \mathbb{\alpha}$


Cosas que se pueden demostrar es que si $latex \alpha:E\rightarrow F$ y $latex \beta:E\rightarrow F$ entonces $latex \hat{\alpha+\beta}=\hat\alpha+\hat\beta$ y que $latex \alpha + \hat\alpha = 1 + \partial(\alpha)-\partial(1-\alpha)$, lo cual nos lleva a que definamos la traza  de un endomorfismo

$latex tr(\alpha)=tr(\hat\alpha)=\alpha+\hat\alpha$

Nota que tenemos que $latex \alpha\cdot \hat\alpha=[\partial(\alpha)]$ (en la misma curva elíptica) por lo que $latex \partial(\hat\alpha) = \partial(\alpha)$

Lo anterior nos lleva a un teorema importante que nos relaciona con un polinomio cuadrático cada endomorfismo.

Teorema: 

Sea $latex \alpha \in End_\mathbb{K}(E)$ , entonces $latex \alpha$ y $latex \hat\alpha$ son raíces del polinomio característico

$latex \xi(\lambda)=\lambda^2 - (tr\alpha)\lambda + \partial(\alpha) = 0$

Esto es muy fácil de probar

$latex \alpha^2 -(tr\alpha)\alpha+\partial(\alpha)=\alpha^2 - (\alpha+\hat\alpha)\alpha + \hat\alpha\alpha = 0$  lo mismo para $latex \hat\alpha$.

Ahora... como última parte de esta sección, consideremos el campo de caracteristica p y vamos a restringir los endomorfismos al subgrupo de torsión de la curva elíptica, es decir, sólo los evaluaremos en elementos de $latex E[n]$
y si $latex \alpha \in latex End(E)_\mathbb{K}$ a la restricción de $latex \alpha\mid_{E[n]}$ la redefiniremos como:

$latex \alpha_n$

Esta $latex \alpha_n$ es un endomorfismo del subgrupo abeliano $latex E[n]$ ya que $latex \alpha$ es un morfismo y manda puntos de torsión a puntos de torsión y como vimos anteriormente:

$latex E[n] \cong \mathbb{Z}/n\mathbb{Z} \oplus \mathbb{Z}/n\mathbb{Z}$, considera una base para $latex E[n]$ , llámale $latex (P_1,P_2)$

entonces podemos representar en forma de matriz a $latex \alpha_n=\begin{pmatrix}a&b\\c&d\end{pmatrix}$ donde $latex a,b,c,d \in \mathbb{Z}/n\mathbb{Z}$ y $latex \alpha(P_1)=aP_1\oplus cP_2$ y $latex \alpha(P_2)=bP_1+dP_2$ , la representación de la matriz depende de la base, pero la traza  $latex tr \alpha_n$ y $latex det \alpha_n$ no.


Lo que nos deja con este teorema que es MUY importante, ya que es la conexión más importante que hay entre los endomorfismos y las restricciónes a $latex E[n]$


Teorema: 
Sea $latex \alpha \in End_\mathbb{K}(E)$ con $latex E$ elíptica sobre $latex \mathbb{K}$  y sea $latex n$ un número positivo primo relativo a la característica de $latex \mathbb{K}$

entonces:

$latex tr \alpha \equiv tr \alpha_n \bmod n$   y    $latex \partial(\alpha) \equiv det(\alpha_n) mod n$


Con esto ya estamos bien equipados.

j-Invariante


Ahora, ya que sabemos que todas las curvas de género 1 son elípticas, hay una manera de clasificarlas muy eficientemente, consideremos $latex \mathcal{E}$ como el espacio de todas las curvas elípticas sobre $latex \mathbb{K}$ , entonces existe una función

$latex j: \mathcal{E} \rightarrow \mathbb{K}$

Llamada j-invariante que cumple que:

$latex j(E)=j(F)\Leftrightarrow E \cong F$ sobre $latex \bar{\mathbb{K}}$

Se ha demostrado que la función $latex j$ es suprayectiva, por lo que $latex \mathbb{K}$ es el espacio modular de dimensión 1y tenemos que las fibras $latex j^{-1}(x)$ son clases de $latex \bar{\mathbb{K}}$-isomorfismos de curvas elípticas definidas sobre $latex \mathbb{K}$

Las curvas elípticas que generalmente usamos en criptografía son de la forma

$latex E:=y^2 - x^3 - px -q $

Por lo que podemos expresar el j-invariante de manera más reducida como:

$latex j(E)=1728 \frac{4p^3}{4p^3+27q^2}$

Torsiones cuadráticas de curvas elípticas

Aquí no voy a entrar tanto en detalle porque tengo poca experiencia pero es importante.

Imagina que tenemos las curvas $latex E$ y $latex F$ definids sobre $latex \mathbb{K}$ tal que existe un isomorfismo $latex E\rightarrow F$ sobre $latex \bar{\mathbb{K}}$ pero no sobre $latex \mathbb{K}$ , decimos en este caso que $latex E$ y $latex F$ son torsiones.

Ejemplo:

Considera las curvas $latex E:y^2=x^3+11664$ y $latex F:y^2=x^3+1$

Ambas suaves y lindas definidas sobre $latex \mathbb{Q}$ , estas curvas NO pueden ser isomorfas sobre $latex \mathbb{Q}$ ya que $latex F$ tiene un punto de orden 2 $latex (-1,0)$ y $latex E$ no tienen ningun punto de orden 2 (el punto de orden 2 en este caso como son simetricas son el eje x , tendria que se un punto de weierstrass, lo cual implica que x=0 por lo que $latex y\notin \mathbb{Q}$)

Pero ahora considera las curvas en la extensión cuadrática $latex \mathbb{Q}(\sqrt{2})$,
aquí podemos definir el isomorfismo:

$latex \Psi: E \rightarrow F$
$latex (x,y) \mapsto (2^3 3^6 \sqrt{2}\cdot x , 2^2 3^3\cdot y)$

Por lo que decimos que $latex E$ y $latex F$ son twists cuadráticos.

Por lo anterior... deberían de tener el mismo j-invariante, el cual es claramente 0, por lo que todas las curvas existentes con j-invariante 0 , serán isomorfas a estas que ejemplificamos en alguna extensión del campo en el que estén trabajando.


Subgrupo de torsión y endomorfismo de una curva elíptica

Sabemos que el mapeo que manda a multiplicar por $latex [n]$ los puntos de una curva $latex E$ es un morfismo, al kernel de este mapeo le llamamos subgrupo de torsión y lo denotamos como $latex E[n]$ , y tenemos el siguiente teorema cuando $latex K$ tiene caracteristica p

$latex E[n]\cong \mathbb{Z}/n\mathbb{Z}\oplus \mathbb{Z}/n\mathbb{Z}$ si $latex p=0$ o $latex p\ndiv n$

o

$latex E[n]\cong \mathbb{Z}/n\mathbb{Z}$ o $latex \lbrace 0\rbrace 0$  si $latex p>0$ y $latex n=p^m$

Qué corolario de este teorema pueden deducir de $latex E[p]$ ?

Pero lo que diremos es que en un campo de caracteristica positiva , si $latex E[p]\cong \mathbb{Z}/p\mathbb{Z}$ le llamamos a la curva $latex E$ ordinaria, y si es $latex E[p]\cong \lbrace 0\rbrace $ supersingular.


Ahora, aquí el anillo de Endomorfismos  de la curva $latex E$ los denotamos como $latex End_\mathbb{K}(E)$
y tenemos que las isogenias $latex \alpha:E\rightarrow E$ son endomorfismos, y forman un anillo

bajo las siguientes operaciones

$latex \alpha,\beta \in End_\mathbb{K}(E)$

$latex (\alpha + \beta)(P)=\alpha(P)\oplus\beta(P)$
$latex (\alpha\cdot \beta)(P)=(\alpha \circ \beta)(P)$

donde $latex \oplus$ es la adición elíptica .

Tenemos que ahora con esto podemos construir una infinidad de elementos ya que $latex [n] \ in End_\mathbb{K}(E)$

esto debería ser para ustedes pero lo pongo.

$latex (\alpha\cdot [n])(P)=\alpha(nP)=\alpha(\bigoplus_{i=1}^n {P}) = \bigoplus_{i=1}^n { \alpha(P) }=n\alpha(P)=([n]\cdot \alpha(P)$

Esto nos dice que $latex \mathbb{Z}$ es un subanillo de $latex End_\mathbb{K}(E)$ , lo puedes observar viendo como se comporta la composición y la suma de $latex [n]$ y $latex [m]$ , verás que forman un anillo esos endomorfismos y son isomorfos a $latex \mathbb{Z}$

Este anillo de endomorfismos no sólo tiene a $latex \mathbb{Z}$ , como vimos, también está el endomorfismo $latex \pi$ de Frobenius (con $latex \mathbb{K}$ de caracteristica p>0 como el caso de criptografía) y pues por lo tanto todas las composiciones y sumas de éste con los isomorfos a $latex \mathbb{Z}$ cuando la curva $latex E$ es supersingular, este anillo de endomorfismos se comporta como un álgebra de cuaternios y no es conmutativo.



Espero les haya interesado, cualquier duda o corrección háganmela saber

Eduardo Ruíz Duarte (beck)
Twitter: @toorandom