Noticias

Claude descubre de dónde salieron las semillas de las curvas elípticas del NIST, un misterio de casi 30 años

5 min de lectura

Un modelo de IA interno de Anthropic ha resuelto uno de los misterios más famosos de la criptografía: de dónde salieron las semillas con las que se crearon las curvas elípticas del NIST, como P-256, que protegen a diario conexiones HTTPS y firmas digitales. No eran frases secretas ni el resultado de un cálculo oculto: salieron de un generador de números aleatorios de C iniciado con la hora del ordenador, entre mayo de 1997 y abril de 1998.

Las curvas elípticas son la base de buena parte de la criptografía moderna: permiten firmas y claves mucho más cortas que RSA con la misma seguridad. En el año 2000, el NIST, el organismo de normas de Estados Unidos, publicó en su estándar FIPS 186-2 una serie de curvas recomendadas. Para demostrar que no estaban amañadas, cada una se obtenía pasando por una función hash un número de partida, la semilla, y el resultado fijaba uno de los coeficientes de la curva. La idea era que nadie puede elegir a voluntad lo que sale de un hash. El problema es que las semillas las proporcionó la NSA, la agencia de espionaje de Estados Unidos, sin explicar de dónde venían. Si alguien hubiera conocido una debilidad en ciertas curvas, podría haber probado millones de semillas hasta dar con una curva débil que pareciera aleatoria.

La sospecha creció en 2013, cuando los documentos de Edward Snowden apuntaron a que la NSA había metido una puerta trasera en otro estándar del NIST, el generador Dual_EC_DRBG. Durante años circuló la historia de que las semillas eran el hash de una frase graciosa elegida por Jerry Solinas, el matemático de la NSA que las preparó, pero Solinas murió en 2023 sin que nadie pudiera comprobarlo. Ese mismo año, el criptógrafo Filippo Valsorda organizó una recompensa de $12,288 USD, que se triplicaba si se donaba, para quien encontrara el origen de las semillas.

Claves del descubrimiento

  • Una corazonada. Un empleado de Anthropic preguntó al modelo si podía averiguar cómo se generaron las semillas. El modelo supuso que venían de algún generador de números pseudoaleatorios débil de los años 90, cuya salida se pudiera reconocer, y escribió un programa para buscar esa huella dentro de cada semilla.
  • La pista de los ceros. En varias semillas, ciertos bits que deberían ser aleatorios estaban siempre a cero. Es la firma de lrand48, una función clásica de C que guarda un estado interno de 48 bits y solo devuelve los 31 más altos.
  • Reconstruir el generador. Para las curvas binarias, el modelo probó por fuerza bruta los 17 bits ocultos del estado y comprobó que los siguientes números encajaban. Para las curvas primas, como P-256, que guardan menos bits de cada número, recuperó el estado con LLL, un algoritmo de reducción de retículos muy usado en criptoanálisis.
  • Una hora exacta. Dando marcha atrás al generador hasta su arranque, salía la marca de tiempo con la que se inició. La semilla de P-256, por ejemplo, es el candidato número 1,842 de una serie que empezó el 16 de agosto de 1997 a la 01:52:34 (hora universal). En las curvas binarias, el reloj parece haberse dividido entre dos: si no, las fechas caerían en 1984.
  • También los puntos base. El punto de partida de P-192 y de cinco curvas del estándar bancario ANSI X9.62 salió de otro generador, el de FreeLIP, una biblioteca de números grandes de Arjen Lenstra, con semillas tan simples como 20000.
  • Lo que falta. Queda sin explicar la semilla de la curva B-163, los puntos base de P-224, P-256, P-384, P-521 y de las curvas binarias, y por qué se descartaron algunos candidatos que también daban curvas válidas.
  • La recompensa. Anthropic se queda con los $36,864 USD de la recompensa de Valsorda y los dona al Internet Security Research Group, la organización que mantiene Let’s Encrypt.

Por qué importa

Para empezar, lo que no cambia: Anthropic insiste en que esto no es una rotura ni un ataque contra ECDSA ni contra las curvas, y que no hay que hacer nada. P-256 sigue siendo tan segura como ayer, y la mayoría de los investigadores ya confiaban en ella. Lo que sí cambia es la duda de fondo. Si las semillas salieron de algo tan corriente como la hora de un ordenador y un generador de la biblioteca de C, la idea de una NSA probando semillas en secreto hasta dar con una curva débil resulta mucho menos creíble. No queda descartada del todo, porque no se sabe cuántas veces se ejecutó el programa ni por qué se saltaron algunos candidatos, pero el misterio ha pasado a ser un detalle técnico.

También es una muestra de lo que ya pueden hacer los modelos de IA en investigación: el problema llevaba casi 30 años abierto y tres sin que nadie cobrara la recompensa, y el modelo lo resolvió combinando una intuición sobre el software de la época con técnicas de criptoanálisis de verdad. Si quieres saber dónde entran estas curvas en tu día a día, lo contamos en nuestra guía sobre cómo sabe tu navegador en qué certificados confiar y en HTTPS por dentro.

La recompensa, según el anuncio de Filippo Valsorda (octubre de 2023). Portada: la sede de la NSA en Fort Meade (Maryland), foto de Trevor Paglen para Creative Time Reports (2013), Wikimedia Commons, CC0.

Fuente: Anthropic, «Claude reveals ECDSA curve origins»