Hablemos de Curvas Elípticas I

Las curvas elípticas son objetos geométricos con sabor aritmético e increíblemente interesantes por sus diversas aplicaciones y conexiones con problemas teóricos y la criptografía. Si buscas en Google o le preguntas a una IA por cómo se ven, probablemente verás una imagen como esta:

La criptografía de clave pública está basada en problemas matemáticos de difícil solución y las curvas elípticas nos otorgan una de ellas.

Cuerpo de definición

Lo primero es que debemos fijar un espacio donde observarlas. Este espacio vendrá de una estructura algebraica llamada cuerpo, al que denotaremos por KK. Los ejemplos de cuerpos más conocidos son los números reales \mathbb{R}, los complejos \mathbb{C} y los racionales .\mathbb{Q}. Algo que caracteriza a los ejemplos anteriores es que si sumamos 1+1++11+1+\ldots+1 las veces que queramos, este resultado jamás será 00. Estos cuerpos son llamados cuerpos de característica 00.

Existen otras familias de cuerpos de naturaleza diferente. Cuando cambiamos la aritmética usual por la aritmética modular, obtenemos el conjunto de los enteros módulo nn al que denotamos como

n={0,1,2,,n1}.\mathbb{Z}_n=\{0,1,2,\ldots,n-1\}.

Cuando nn es un número primo (en tal caso mejor escribimos pp en vez de nn) , el conjunto p\mathbb{Z}_p es un cuerpo y tiene pp elementos. En este caso, cuando calculamos 1+1++11+1+\ldots+1 pp veces, el resultado será 0. Este cuerpo es llamado cuerpo de característica pp y lo denotamos como 𝔽p\mathbb{F}_p . También existen cuerpos finitos 𝔽pn\mathbb{F}_{p^n} de pnp^n elementos, cuya construcción se explica en este post

Definiendo una curva elíptica

Una curva elíptica sobre un cuerpo KK está definida por una curva no singular de la forma:

E:y2+a1xy+a3y=x3+a2x2+a4x+a6E \colon y^2+a_1xy+a_3y=x^3+a_2x^2+a_4x+a_6

donde a1,a2,a3,a4,a6Ka_1,a_2,a_3,a_4,a_6\in K. A esta expresión se le llama ecuación de Weierstrass generalizada.

¿Qué significa que la curva sea no singular? La ecuación anterior determina un polinomio

f(x,y)=y2+a1xy+a3y(x3+a2x2+a4x+a6)K[x,y]f(x,y)=y^2+a_1xy+a_3y-(x^3+a_2x^2+a_4x+a_6) \in K[x,y]

luego la curva (o su gráfica) está dada por los puntos

{(x,y)K×K:f(x,y)=0}.\{(x,y)\in K\times K:f(x,y)=0\}.

Diremos que una solución (a,b)(a,b) es singular si

fx(a,b)=fy(a,b)=0.\frac{\partial f}{\partial x}(a,b)=\frac{\partial f}{\partial y}(a,b)=0.

Por lo tanto, que la curva sea no singular quiere decir que la condición anterior no se cumple para ninguno de sus puntos. Geométricamente, significa que la curva no se cruza a sí misma ni tiene puntas. Es decir, es suave.

Si KK es un cuerpo de característica distinta de 2 y 3, es posible transformar la ecuación anterior en la Ecuación corta de Weierstrass:

E:y2=x3+a4x+a6.E: y^2=x^3+a_4x+a_6\,\,\rm{}.

La transformación corresponde a cambios de variables en los cuales se dividen por 2 y 3. Esto no se podría hacer si la curva estuviera definida en un cuerpo del tipo 𝔽2n\mathbb{F}_{2^n} o 𝔽3n\mathbb{F}_{3^n} pues 2 y 3 serían iguales a 0!

Con todo lo anterior, definimos

E(K)={(x,y)K×K:x,yson soluciones de la ecuación}{}.E(K)=\{(x,y)\in K\times K: x,y\quad\textrm{son soluciones de la ecuación}\}\cup\{\infty\}.

Ese punto extra llamado punto en el infinito, tiene su origen en la geometría proyectiva y tiene un rol fundamental cuando veamos la aritmética de la curva.

La geometría

En este post, nos quedaremos con esta definición para una curva elíptica:

E:y2=x3+ax+b,E\colon y^2=x^3+ax+b,

donde a,ba,b están en KK y verifican que 4a3+27b204a^3+27b^2\neq0. Esto último asegura que la curva es no singular.

Si la curva está definida sobre \mathbb{R}, podría tener una gráfica como las siguientes:

Sin embargo esto cambia cuando la curva está definida sobre un cuerpo finito:

La aritmética

Podemos definir en estas curvas una ley de suma. Así como escuchaste. Más aún, la fórmula para sumar es completamente geométrica.

Supongamos que queremos sumar los puntos PP y QQ en la curva, de manera de obtener un tercer punto denotado P+QP+Q que también pertenece a la curva.

Comenzamos construyendo la recta que pasa por los puntos PP y QQ:

Esta recta siempre intersecta la curva debido al Teorema de Bézout.

Finalmente, tomamos la recta vertical1 que pasa por el punto RR’ en el eje xx, intersectamos la curva y obtenemos P+QP+Q:

Si queremos duplicar un punto, es decir, calcular S+SS+S, consideramos la recta tangente a la curva en el punto SS, intersectamos la recta con la curva y el punto obtenido nuevamente se refleja en el eje xx:

Lo más interesante es que esta operación suma se comporta bien, es decir, (E(K),+)(E(K),+) es un grupo abeliano y el punto en el infinito juega el rol de elemento neutro o cero de la suma.2 Este es el sabor aritmético.

Si bien hemos descrito lo anterior en una curva definida en \mathbb{R}, el método también vale cuando se trabaja en cuerpos finitos.

Algorítmica de la adición

La base de la definición anterior es el método de la cuerda y la tangente. Pareciera que no es explícito, pero sí lo es. Si consideramos una curva en su ecuación corta de Weierstrass E:y2=x3+ax+bE\colon y^2=x^3+ax+b, se tiene lo siguiente:

  • Inverso: Dado P=(x,y)P = (x,y) en la curva EE , su inverso aditivo es P(x,y)=(x,y)-P(x,y) = (x,-y).
  • Fórmula de suma: Dado P=(x1,y1)P = (x_1,y_1) y Q=(x2,y2)Q = (x_2,y_2) en la curva, donde P±QP \neq \pm Q,
    la suma P+Q=(x3,y3)P+Q = (x_3,y_3) es calculada como:
    • x3=λ2x1x2 y3=λ(x1x3)y1x_3 = \lambda^2 -x_1 – x_2\ y_3 = \lambda (x_1 -x_3) -y_1
    • λ=(y2y1x2x1)\lambda = \left( \frac{y_2 -y_1}{x_2 – x_1} \right)
  • Fórmula de duplicación: Dado P=(x,y)P= (x,y), su duplicación 2P=(x2,y2)2P = (x_2,y_2) es calculada como:
    • x2=λ22x y2=λ(xx2)yx_2= \lambda^2 -2x\ y_2= \lambda(x-x_2) -y
    • λ=(3x2+a2y)\lambda = \left( \frac{3x^2 + a}{2y} \right)

Las fórmulas anteriores se obtienen calculando la intersección de la recta que pasa por los puntos y la curva.

Espacio Proyectivo

En las fórmulas anteriores se requiere calcular inversos multiplicativos para obtener el valor de λ\lambda. Esta operación es computacionalmente costosa en el caso de cuerpos finitos; por lo tanto, si queremos, por ejemplo, calcular kPk⋅P, esto crecerá según el tamaño del escalar k. Una forma de evadir estos inversos es regresando al corazón de una de las definiciones de una curva elíptica.

Se define en K3(0,0,0) K^3\setminus {(0,0,0)} la relación de equivalencia

(X1,Y1,Z1)(X2,Y2,Z2)si y solo si(X1,Y1,Z1)=λ(X2,Y2,Z2),λK{0}.(X_1,Y_1,Z_1)\sim(X_2,Y_2,Z_2)\,\,\textrm{si y solo si}\,\, (X_1,Y_1,Z_1)=\lambda(X_2,Y_2,Z_2),\quad\lambda\in K-\{0\}.

Una clase de equivalencia es denotada por (X:Y:Z)(X\colon Y\colon Z). 3El espacio proyectivo está definido como el conjunto de las clases de equivalencia con esta relación:

2(K)={(X:Y:Z):X,Y,ZK}\mathbb{P}^2(K) =\left\{ ( X \colon Y\colon Z) \;\colon\; X,Y,Z\in K \right\}

Dada E:y2=x3+ax+bE\colon y^2=x^3+ax+b podemos obtener la versión proyectiva4 de la curva elíptica con el cambio de variables x=X/Zx=X/Z y y=Y/Zy=Y/Z :

E:Y2Z=X3+a4XZ2+a6Z3.E\colon Y^2Z = X^3+a_4XZ^2+a_6Z^3.

Así, un punto P=(x,y)P=(x,y) es representado por una tupla en la clase de equivalencia:

(X1,Y1,Z1)(x:y:1)(X_1,Y_1,Z_1)\in (x\colon y\colon 1)

y la función inversa está dada por

(X1,Y1,Z1)(X1/Z1,Y1/Z1).(X_1,Y_1,Z_1) \mapsto (X_1/Z_1,Y_1/Z_1).

¿Por qué movernos al espacio proyectivo nos salva de los inversos multiplicativos?

Si tenemos un punto en la curva proyectiva con denominadores en sus coordenadas, podemos multiplicar ese punto por un escalar conveniente y eliminarlos. En el espacio proyectivo, ambos puntos pertenecerán a la misma clase de equivalencia y, por ende, serán iguales. 5

Este espacio incluye el punto al infinito del que hablamos antes. Cuando Z=0Z=0, entonces al reemplazar en la curva tendríamos X3=0X^3=0, con lo que obtendríamos el punto 𝒪=(0:1:0).\mathcal{O}=(0:1:0).
Otros modelos de curvas elípticas de interés en criptografía se pueden encontrar aquí: https://hyperelliptic.org/EFD/.

En el siguiente post, se viene un gran tema: curvas elípticas y criptografía.

  1. Más general, diríamos la recta que pasa por el punto en el infinito y por R.R’. ↩︎
  2. Washington, L. C. (2008). Elliptic Curves: Number Theory and Cryptography (2a ed.). Chapman and Hall/CRC. ↩︎
  3. Existen otras formas de representar los puntos para trabajar en un espacio proyectivo, de manera de aleatorizar las coordenadas y proteger la operación suma de ataques de tipo side channel. Ver, por ejemplo, la sección 3.2.1 del texto de Hankerson,Menezes y Vanstone. ↩︎
  4. Otra definición más abstracta: una curva elíptica definida sobre un cuerpo KK es una curva de género 1, proyectiva y no singular con un punto distinguido KK-racional 𝒪\mathcal{O} (el punto en el infinito). ↩︎
  5. Hankerson, D., Menezes, A. J., & Vanstone, S. (2004). Guide to Elliptic Curve Cryptography. Springer Science & Business Media. ↩︎

Una respuesta a «Hablemos de Curvas Elípticas I»

  1. […] vimos en el post anterior, las curvas elípticas, además de ser objetos geométricos, poseen una ley de suma que las […]

Deja un comentario

Bienvenidos/as!

Soy Amalia Pizarro Madariaga. Doctora en Matemáticas, académica en la U. de Valparaíso y senior researcher en CoreDevx. Investigo en Teoría de Números y sus aplicaciones a la criptografía, divulgo y escribo en este blog.

Descubre más desde Matemáticas, Criptografía y otras hierbas

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo