Saltar al contenido
Programando Bitcoin

Curvas Elípticas

Introducción

Contexto matemático: Curvas elípticas

Una curva elíptica se define como el conjunto de puntos que satisfacen la ecuación:

$$y2=x3+ax+by^2 = x^3 + ax + b$$

donde a y b son constantes que definen la curva, y las operaciones sobre estos puntos se realizan dentro de un campo finito \(\mathbb{F}_p\).

En Bitcoin, la curva usada es secp256k1, definida por la ecuación:

$$y2≡x3+7(modp)y^2 \equiv x^3 + 7 \pmod{p}$$

donde p es un número primo muy grande:

$$p=2256−232−977p = 2^{256} - 2^{32} - 977$$

Los puntos en esta curva tienen propiedades que los hacen útiles para criptografía:

  1. Operaciones cerradas y bien definidas: Las operaciones entre puntos (suma, multiplicación escalar) siempre producen puntos que también están en la curva.
  2. Dificultad para invertir operaciones: Resolver el problema del logaritmo discreto en esta curva es computacionalmente infeasible, lo que proporciona seguridad criptográfica.