Saltar al contenido
Serie 7 · Criptografía de la firma · 7.3

Curvas elípticas sin miedo.

Sumar puntos, multiplicar por un número y entender por qué 256 bits alcanzan donde RSA necesita 3072.

Octubre de 202610 min de lectura

En 1985, Victor Miller, en IBM, y Neal Koblitz, en la Universidad de Washington, propusieron por separado la misma idea: usar como base de la criptografía de clave pública no los números módulo un primo, sino los puntos de una curva elíptica. La propuesta tardó casi veinte años en imponerse, entre patentes, desconfianza hacia una matemática poco familiar y la comodidad de RSA. Hoy las curvas elípticas protegen la mayor parte de las conexiones seguras de internet, firman en los documentos de identidad electrónicos de muchos países y autorizan cada transacción de las principales cadenas de bloques.

La razón es un número. Para igual seguridad, una clave de curva elíptica de 256 bits reemplaza a una clave RSA de 3072. Este artículo explica de dónde sale esa diferencia, empezando por algo tan concreto como sumar dos puntos con una regla.

Qué es una curva elíptica

Pese al nombre, no tiene nada que ver con una elipse; el nombre viene de las integrales elípticas, que en el siglo XIX llevaron a estudiarlas. Para la criptografía, una curva elíptica es el conjunto de puntos (x, y) que cumplen una ecuación de Weierstrass, más un punto adicional llamado punto en el infinito, O:

y² = x³ + a·x + b,   con 4a³ + 27b² ≠ 0
La condición sobre a y b garantiza que la curva no tenga picos ni cruces, de modo que en cada punto haya una única tangente.

Lo extraordinario es que esos puntos se pueden sumar, y la suma tiene todas las propiedades que uno espera: es asociativa, conmutativa, tiene elemento neutro y cada punto tiene opuesto. En otras palabras, forman un grupo, la misma estructura algebraica que los números módulo p del artículo sobre los fundamentos, con otra geometría.

La regla de la cuerda y la tangente

Para sumar dos puntos P y Q se traza la recta que pasa por ambos. Una cúbica cortada por una recta tiene, contando multiplicidades, tres intersecciones, así que la recta toca la curva en un tercer punto R. El resultado se define como el reflejo de R respecto del eje horizontal. Si P = Q, se usa la tangente. Si la recta es vertical, el tercer punto es O, y por eso el opuesto de (x, y) es (x, y).

λ = (y2 y1) / (x2 x1)   si P ≠ Q
λ = (3x1² + a) / (2y1)   si P = Q (tangente)
x3 = λ² x1 x2    y3 = λ(x1 x3) y1

Que esta operación sea asociativa no es evidente en absoluto; la demostración usa geometría algebraica de cierto nivel. Pero se puede comprobar en el dibujo. El laboratorio permite mover los dos puntos y ver la construcción completa.

LaboratorioSumar dos puntos sobre y² = x³ x + 1
Posición de P
Posición de Q
P
Q
pendiente λ
P + Q

De la geometría al cuerpo finito

La criptografía no usa números reales, que tienen precisión infinita y propiedades continuas aprovechables. Usa las mismas fórmulas con aritmética módulo un primo p. La división se reemplaza por la multiplicación por el inverso modular. La curva deja de ser una línea y se convierte en una nube de puntos con coordenadas enteras, aparentemente desordenada, pero que conserva intacta la estructura de grupo.

¿Cuántos puntos tiene? El teorema de Hasse, de 1933, responde con precisión notable: el número de puntos de la curva sobre el cuerpo de p elementos difiere de p + 1 en a lo sumo 2√p. Para la criptografía se eligen curvas cuyo número de puntos sea primo, o un primo grande multiplicado por un factor pequeño llamado cofactor.

LaboratorioLa misma curva sobre un cuerpo finito: y² = x³ + 2x + 2 módulo 17
k
k · G

Multiplicar por un número, y el problema inverso

Sumar un punto consigo mismo k veces se escribe k · G y se llama multiplicación escalar. Hacerlo sumando de a uno sería impracticable para un k de 256 bits, pero el método de duplicar y sumar lo resuelve con unas 256 duplicaciones y, en promedio, 128 sumas, igual que la exponenciación rápida en aritmética modular.

Clave privada: un número k al azar, 1 ≤ k < n
Clave pública: el punto Q = k · G
G es un punto generador fijado por la norma y n es la cantidad de puntos del subgrupo que genera. Encontrar k a partir de G y Q es el problema del logaritmo discreto en curvas elípticas.

Aquí aparece la diferencia decisiva con RSA. Para factorizar enteros o calcular logaritmos discretos módulo un primo existen algoritmos subexponenciales, de la familia del cálculo de índices, que aprovechan que los números enteros se descomponen en factores pequeños. Los puntos de una curva elíptica no tienen una noción útil de «factores pequeños». Para curvas bien elegidas, el mejor ataque conocido sigue siendo genérico: el método rho de Pollard, que necesita alrededor de √n operaciones. Con n de 256 bits, eso es 2128.

SeguridadCurva elípticaRSA o logaritmo en cuerpo finitoProporción
112 bits224 bits2048 bits1 a 9
128 bits256 bits3072 bits1 a 12
192 bits384 bits7680 bits1 a 20
256 bits512 bits15360 bits1 a 30

La brecha crece con el nivel de seguridad porque los ataques contra RSA son subexponenciales y los ataques contra curvas son exponenciales. En la práctica, eso significa claves y firmas más chicas, operaciones con la clave privada más rápidas y menos consumo, algo decisivo en tarjetas inteligentes y dispositivos móviles. Una firma ECDSA sobre P 256 ocupa 64 bytes; una RSA de nivel comparable, 384.

No toda curva sirve

La seguridad depende de elegir bien la curva, y la historia registra varias trampas.

Las curvas con nombre propio

Por todo esto, nadie genera su propia curva: se usan curvas estandarizadas, con parámetros públicos y estudiados.

CurvaOrigenParticularidades
P 256, P 384, P 521NIST, desde 1999; hoy en SP 800 186Las más difundidas en certificados y en firma con valor legal. Sus coeficientes se derivaron de semillas pasadas por SHA 1, sin explicar el origen de las semillas, lo que generó desconfianza; no se conoce debilidad alguna.
secp256k1SECG, SEC 2Curva de Koblitz, y² = x³ + 7. Conocida por su uso en Bitcoin.
BrainpoolConsorcio alemán, RFC 5639Parámetros generados de forma verificable a partir de constantes matemáticas. Frecuentes en documentos de identidad europeos.
Curve25519 y Ed25519Bernstein, 2006 y 2011; RFC 7748 y 8032Sobre el primo 2255 19. Diseñadas para ser rápidas y difíciles de implementar mal: fórmulas sin casos especiales y de tiempo constante. NIST incorporó Ed25519 en FIPS 186 5 y Curve25519 en SP 800 186.
Con RSA se elige un tamaño de clave. Con curvas elípticas se elige una curva, y esa elección es la mitad de la seguridad.

Curve25519 merece una nota aparte, porque cambió la forma de pensar el diseño. Bernstein no buscó sólo una curva sin debilidades conocidas, sino una en la que cada decisión tuviera una justificación pública, y en la que la implementación más simple fuera también la segura. Su variante para firmas, en forma de Edwards, tiene una ley de suma «completa»: la misma fórmula sirve para sumar, duplicar y operar con el neutro, sin ramas que filtren información por el tiempo de cálculo. El próximo artículo de la serie muestra cómo esa curva se usa en EdDSA y por qué su firma es determinista.

Para recordar

Los puntos de una curva elíptica forman un grupo con la regla de la cuerda y la tangente. Sobre un cuerpo finito, la clave privada es un número k y la pública es el punto k · G; recuperar k exige unas √n operaciones porque no hay atajos subexponenciales conocidos. Por eso 256 bits alcanzan donde RSA necesita 3072. La seguridad depende de usar curvas estandarizadas y de validar cada punto recibido.

Fuentes

  1. Miller, «Use of Elliptic Curves in Cryptography», CRYPTO 1985
  2. Koblitz, «Elliptic Curve Cryptosystems», Mathematics of Computation, 1987
  3. NIST, SP 800 57 parte 1, revisión 5, recomendación para la gestión de claves, 2020
  4. NIST, SP 800 186, recomendaciones de curvas elípticas para criptografía de logaritmo discreto, 2023
  5. SECG, SEC 2: parámetros de dominio recomendados para curvas elípticas, versión 2.0, 2010
  6. IETF, RFC 5639, curvas Brainpool para criptografía de curvas elípticas, 2010
  7. Bernstein, «Curve25519: new Diffie Hellman speed records», PKC 2006
  8. IETF, RFC 7748, curvas elípticas para seguridad, 2016

← Todas las notas

Notas de confianza

Artículos para quienes deciden cómo firma una organización: principios, prácticas y criterios que siguen valiendo cuando cambian las normas y las tecnologías.

Una publicación de Signing Flows, de Interfase.

Series