Salta al contenido principal

Sección 3.3 Curvas Elípticas

Entre la diversidad de objetos matemáticos hasta ahora mencionado, es posible que estemos preparados para considerar las ecuaciones en dos variables que nos interesan, aquellas relacionadas con la seguridad asociada a las criptomonedas. La criptografía moderna además de protocolos y algoritmos está sustentada en gran parte por objetos matemáticos definidos por una ecuación cúbica en dos variables: las llamadas —curvas elípticas—; que nada tienen que ver con las tradicionales elipses que se estudian junto con las otras cónicas. Las curvas elípticas no son elipses, el término curva elíptica es un nombre inapropiado; proviene del hecho de que las curvas elípticas hicieron su aparición inicial durante los primeros intentos para calcular la longitud de arco de una elipse, intentos relacionados con las funciones elípticas (funciones que son la extensión natural de las funciones seno y coseno). Así como las funciones elípticas podrían combinarse (o agregarse) para formar nuevas funciones elípticas, convirtiéndose en una amplia clase de ecuaciones cúbicas, las soluciones de la ecuación también podrían combinarse (o agregado) para formar nuevas ecuaciones. Las ecuaciones que tenían esta propiedad terminaron llamándose “Curvas elípticas”, y se encontró que la operación de obtener nuevos puntos a partir de los anteriores, dotó las soluciones de una curva elíptica con una ley de grupo [32].

Definición 3.3.1. Curva Elíptica.

Una curva elíptica sobre un campo \(k\) tal que \(k= \mathbb{F}_p\text{,}\) con \(\mathbb{F}_p\) un cuerpo finito con \(q = p^m\) elementos, es una curva algebraica proyectiva no singular \(E\) de género 1 sobre \(k\) con un punto base elegido \(\mathcal {O} \in E\text{.}\)

Nota 3.3.2.

El género de una curva elíptica es un número entero que caracteriza la “cantidad de agujeros” o la complejidad topológica de la curva elíptica. Para una curva elíptica, el género siempre es 1.

Subsección 3.3.1 Ecuación de Weierstrass: Forma general de una Curva Elíptica

Las curvas elípticas (como el ejemplo mostrado en la Figura 3.2), tienen la forma general algebraica \(E: y^2=x^3+Ax+B\text{;}\) llamada forma corta de Weierstrass del polinomio cúbico; con coordenadas \((x,y)\) y parámetros \((A,B)\) pertenecientes a cualquier campo numérico (\(\mathbb{R},\mathbb{Q},\mathbb{C},\mathbb{Z}_{p}\)), con el requerimiento de que el discriminante de la curva \(E\) sea distinto de cero (\(\triangle =4A^3+27B\neq 0\)). La curva también tiene un punto extra \(\mathcal {O}\) en el ‘infinito’ (ver aclaratoria en Subsección 3.3.3), de manera que \(E\) es el conjunto de puntos:
\begin{equation} E = \left\{(x,y): y^2=x^3+Ax+B \right\} \cup \left\{\mathcal {O} \right\}\tag{3.3.1} \end{equation}
Esta ecuación cúbica puede ser representada por otro modelo; que se conoce como forma larga del polinomio cúbico de Weierstrass; en ocasiones es más simple que la forma corta.
\begin{equation} E=\left\{(x,y): y^2 + a_1xy + a_3y = x^3 + a_2x^2 + a_4x + a_6 \right\} \cup \left\{\mathcal {O} \right\}\tag{3.3.2} \end{equation}
Con: \(a_1, a_2, a_3, a_4, a_6 \in k\text{;}\) cinco coeficientes denotado en ese orden. En este caso, el discriminante de la curva elíptica viene expresado por:
\begin{equation} \triangle = -b_2^2b_8 - 8b_4^3 - 27_6^2 + 9b_2b_4b_6\tag{3.3.3} \end{equation}
Donde: \(b_2 = a_1^2 + 4a_2\text{;}\) \(b_4 = 2a_4 + a_1a_3\text{;}\) \(b_6 = a_3^2 + 4a_6\) y \(b_8 = a_1^2a_6 + 4a_2a_6 - a_1a_3a_4 + a_2a_3^2 -a_4^2\text{.}\)
En general: las curvas elípticas son ‘curvas’ definida por un polinomio cúbico irreductible en dos variables, con un punto racional prefijado denominado base \(\mathcal {O}\text{;}\) definidas sobre un campo \(k\) subyacente cerrado algebraicamente tal que \(k= \mathbb{F}_p\text{.}\) Donde \(\mathbb{F}_p\) representa un cuerpo finito o «cuerpo de Galois» con \(q = p^m\) elementos para cierto \(m \in N\) y \(p\) primo. Escribimos \(E\) o \(E(q)\) para designar dicha curva elíptica.
Figura 3.2. Representación en \(\mathbb{R}^2\) (plano real) de la curva elíptica \(y^2=x^3-3x+1\text{.}\)

Subsección 3.3.2 Algunas Propiedades de las Curvas Elípticas

Esta misteriosa ecuación (3.3.1); desconocidas para las grandes mayorías, presenta algunas propiedades que las hacen única y especial:
  • Las curvas elípticas intervienen en muchas áreas de las matemáticas, desde la teoría de números, al análisis complejo, la física-matemática y la criptografía.
  • Una curva elíptica es una curva; y naturalmente también es un grupo.
  • La Ley de Grupo está construida geométricamente; podemos usar la geometría para convertir los puntos de una curva elíptica en un grupo —una propiedad: fascinante —.
  • Las curvas elípticas pueden tener puntos con coordenadas en cualquier cuerpo numérico.
  • Si se toman los coeficientes \((A,B)\) y dos puntos cualesquiera como elementos de un cierto campo \(k\text{,}\) entonces la generación de un tercer punto (a partir de los dos anteriores) también tendrá coordenadas en \(k\) [el grupo es cerrado en \(k\)] 1 .
  • Las curvas elípticas con puntos en \(\mathbb{F}_p\) representan grupos finitos (grupos de Galois).
  • Cuando la curva elíptica se define sobre un campo finito, el grupo de puntos de \(E (\mathbb{F})_p\) siempre es un grupo cíclico o el producto de dos grupos cíclicos (lo que implica modularidad) 2  .
  • Las fórmulas que dan la Ley de Grupo en \(E\text{,}\) son válidas para los puntos con coordenadas en cualquier campo; incluso a pesar de que la imagen geométrica de la traza de la curva obtenida no tenga sentido geométrico alguno.
  • El problema del logaritmo discreto de curvas elípticas (ECDLP): es el problema del logaritmo discreto para el grupo de puntos de la curva elíptica sobre un campo finito \(\mathbb{F}_p\text{.}\)
  • El algoritmo mejor conocido para resolver el ECDLP es exponencial, una de las razones por la cual los grupos de curvas elípticas se utilizan para la criptografía.
  • La forma conocida para resolver el ECDLP para una curva elíptica, depende del orden \(p\) del grupo \(\mathbb{F}_p\text{,}\) los algoritmos de resolución pueden tomar un tiempo considerablemente largo (en extremo); es improbable que por «ensayo y error» se obtengan resultados a costos satisfactorios.

Subsección 3.3.3 La Ley de Grupo

Si sobre una curva elíptica \(E\text{,}\) se toman dos puntos arbitrarios \(P\) y \(Q\) unidos por una línea recta, esta interceptará a la curva elíptica en un tercer punto \(R\) (Figura 3.3). Un punto \(P\) del plano, estará sobre la curva \(E\text{,}\) si tiene por coordenadas dos números (reales o complejos) \(x\) e \(y\) que cumplan con la ecuación (3.3.1). El rasgo más útil y característico de las curvas elípticas, es la posibilidad de definir una “suma” entre sus puntos. Tiene su origen en las llamadas «construcciones de secantes y de tangentes»; si \(P\) y \(Q\) son dos puntos de la curva, la recta secante que pasa por ambos corta a la curva en otro punto \(R\text{.}\) La curva es simétrica con respecto al eje de las \(X\) y se define simplemente el opuesto de un punto \(P\) (o \(-P\)) como el simétrico de \(P\) con respecto a dicho eje \(X\text{.}\) La suma de dos puntos \((P + Q)\) se define como el opuesto (simétrico con respecto al eje \(\mathcal {O}X\)) del punto \(R\text{;}\) por consiguiente, tres puntos de la curva tienen una suma nula cuando están alineados. La suma de dos puntos coincidentes \(P+P\text{,}\) (llamada suma \(2P\)) resulta en el opuesto de \(R^{\prime}\text{.}\) Se añade a los puntos de la curva un punto en el infinito, el punto de fuga de las verticales; que hace de «cero» para la suma y lo denotamos \(\mathcal {O}\) u \(\mathcal {O}_\infty\text{.}\) En particular la tangente \(L_1\) en un punto \(T\text{,}\) si es vertical no corta la curva, en caso contrario es tangente a \(R\) y corta a la curva en \(R^{\prime}\text{.}\)

Las Curvas elípticas son grupos conmutativo.

Los puntos de \(E\) tienen estructura de grupo conmutativo (grupo abeliano); esto es importante, ya que relaciona la teoría algebraica con la teoría de grupos: se pueden sumar en cualquier orden y agruparlos arbitrariamente para efectuar la suma paso a paso; lo que se puede constatar dando los valores de \(P\) y \(Q\) (Figura 3.3) y resolviendo el sistema de ecuaciones correspondientes a la ecuación \(E\) y la línea que une los puntos \(P\) y \(Q\) (3.3.4).
Figura 3.3. Geometría de una curva elíptica en \(\mathbb{R}^2\text{,}\) respecto a la Ley de Grupo (“suma elíptica”). Nota: Explícitamente se ha indicado el punto en el infinito \(\mathcal {O}\) por razones didácticas; en el plano afín [Subsubsección 3.4.1.1], este no suele representarse.

Sage: 3.3.3. Gráfica de una Curva Elíptica.

Curva Elíptica \(y^2 = x^3 - 25*x\) en \(\mathbb{R}^2\text{,}\) con dos puntos resaltados: uno de valores enteros y otro de valores racionales; con SageMath [Nota A.5.1].
Figura 3.4. Curva elíptica \(y^2 = x^3 - 25*x\) con puntos racionales.

Definición 3.3.4. Adición de Puntos, con la Ley de Grupos.

Suponga que queremos adicionar los puntos \(P_1 = (x_1,y_1)\) y \(Q_2 = (x_2,y_2)\) que pertenecen a la curva elíptica \(E: y^2 = x^3 + Ax + B\text{;}\) según la configuración mostrada en la Figura 3.3.
Demostración.
La línea que conecta el punto \(P\) hasta \(Q\text{,}\) tiene la forma: \(L: y = mx + b\text{,}\) con ella podemos configurar un sistema de ecuaciones:
\begin{equation} \begin{cases}y^2\amp = x^3+ Ax + B\\y\amp = mx + b \end{cases}\tag{3.3.4} \end{equation}
Igualando las ecuaciones: \((mx +b)^2 = x^3 + Ax +B \text{,}\) obtenemos explícitamente, la pendiente de la línea que une los puntos \(P,Q\) con la curva elíptica \(E\text{,}\) y el intercepto con el eje \(Y\text{:}\)
\begin{equation} m = \begin{cases} \frac{y_2-y_1}{x_2-x_1} \amp \text {si} \quad P_1 \neq Q_2 \\ \frac{3{x}^2_1 + A}{2y_1} \amp \text {si} \quad P_1 = Q_2 \end{cases}\tag{3.3.5} \end{equation}
con intercepto: \(b = y_1 - mx_1\text{.}\)
Encontramos la intersección de \(E: y^2 = x^3 + Ax + B\) con la recta \(L: y = mx + b\text{,}\) resolviendo:
\begin{equation} (mx + b)^2 = x^3 + Ax + B\tag{3.3.6} \end{equation}
Sabemos que \(x_1\) y \(x_2\) son soluciones, podemos encontrar la tercera solución \(x_3\) comparando los dos lados de:
\begin{align*} x^3 \amp + Ax + B - (mx + b)^2 = (x - x_1)(x - x_2)(x - x_3)\\ \amp = x^3 - (x_1 + x_2 + x_3)x^2 + (x_1x_2 + x_1x_3 + x_2x_3)x - x_1x_2x_3 \end{align*}
Usando los coeficientes de \(x^2\) de las anteriores ecuaciones, los igualamos; \(-m^2 = -x_1 - x_2 - x_3\text{,}\) para encontrar el resultado buscado: \(X_3\text{.}\) En el computo de \(y_3\) usamos \(y_3 = mx_3 + b\text{;}\) resultando:
\begin{equation} P_1 + Q_2 = (x_3, - y_3)\tag{3.3.7} \end{equation}
Resultando:
\begin{equation} P + Q = -R\tag{3.3.8} \end{equation}