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:

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

Inverso modular

Encuentre el inverso de un número con un módulo específico.

0d
0d
0d

n = número de pontos na curva secp256k1 (usado com escalares, ex.: chaves privadas)

p = tamanho do corpo da curva secp256k1 (usado com pontos, ex.: coordenadas)

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

Suma de puntos (EC Add)

Sume dos puntos en la curva elíptica secp256k1.

Punto 1
x:
0d
y:
0d
Punto 2
x:
0d
y:
0d
Punto 1 + Punto 2
x:
0d
y:
0d

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

Doble de punto (EC Double)

Duplique un punto en la curva elíptica secp256k1.

Punto 1
x:
0d
y:
0d
Punto 1 + Punto 1
x:
0d
y:
0d

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".

Multiplicación en la Curva

Multiplicación de punto (EC Multiply)

Multiplique un punto en la curva elíptica secp256k1.

Punto 1
x:
0d
y:
0d
0d
Punto 1 × Multiplicador
x:
0d
y:
0d