Curva Elíptica
La base matemática de la criptografía de clave pública de Bitcoin
Una curva elíptica se usa como base de algunos sistemas criptográficos.
La estructura de la curva elíptica permite realizar una función matemática ("multiplicar") para moverse por los puntos de la curva en una dirección, sin poder recorrer el camino inverso. Eso se conoce como "función trampa" (trapdoor function), y es la característica clave que hace a las curvas elípticas ideales para la criptografía de clave pública.
En resumen, las curvas elípticas tienen propiedades matemáticas útiles para la criptografía, y forman parte del sistema de firmas digitales de Bitcoin (ECDSA).
Parámetros (secp256k1)
Satoshi eligió la curva secp256k1 para usarla con ECDSA. La ecuación de la curva es y² = x³ + 7, definida sobre un cuerpo finito. Los parámetros principales son:
- p (primo del cuerpo) = 2²⁵⁶ − 2³² − 977
- G (punto generador) = un punto inicial fijo en la curva
- n (orden) = el número de puntos que puedes alcanzar a partir de G
secp256k1 es solo el nombre de una de las curvas elípticas específicas usadas en criptografía. El 256 se refiere al tamaño del primo del cuerpo (256 bits).
Cuerpo finito
La curva en Bitcoin no es una curva suave y continua como imaginarías en un gráfico. En cambio, está definida sobre un cuerpo finito: toda la aritmética se hace módulo el primo p. Eso transforma la curva en un conjunto finito de puntos dispersos, pero las propiedades algebraicas (suma, multiplicación) siguen valiendo.
La división en un cuerpo finito se hace multiplicando por el inverso modular:
Inverso Modular
Matemática de la Curva Elíptica
¿Cómo te mueves por los puntos de la curva?
Hay tres operaciones fundamentales:
Suma de Puntos
Dados dos puntos en la curva, puedes "sumarlos" para obtener un tercer punto en la curva (geométricamente: trazas una recta por los dos puntos, encuentras el tercer punto donde cruza la curva y lo reflejas sobre el eje x).
Suma de Puntos
Duplicación de Punto
Sumar un punto a sí mismo (P + P). Geométricamente, se usa la recta tangente a la curva en ese punto.
Duplicación de Punto
Multiplicación de Punto
Sumar un punto a sí mismo varias veces (k·P). Eso es lo que crea una clave pública a partir de una clave privada: clave pública = clave privada × G. La multiplicación es rápida de calcular, pero es inviable revertirla (descubrir k a partir de k·G) — esa es la "función trampa".