Saltar al contenido

Las semillas de la curva P-256 del NIST salen de una ejecución de lrand48 de 1997

Anthropic rastreó la semilla de la curva P-256 del NIST hasta una ejecución de lrand48 iniciada el 16 de agosto de 1997 y reclamó una recompensa de 36.864 dólares. El hallazgo no rompe las curvas.

Por Tech AI Wire Team

3 min de lectura

XLinkedIn
El collage de Anthropic para su investigación sobre las semillas de las curvas: una semilla de girasol sobre papel rasgado verde y gris carbón junto a una tira de papel morado, sobre un fondo rosa de semitonos.
Foto: Anthropic

En cifras

bounty, donated to Let's Encrypt's nonprofit ISRG
$36,864
candidate number of the published P-256 seed
1,842
year the P-256 generator run started
1997

Un equipo de Anthropic ha averiguado de dónde salieron las semillas de aspecto aleatorio que hay detrás de la P-256 del NIST y de otras curvas elípticas estándar. Las semillas se crearon en 1997 y 1998 con un antiguo generador de números aleatorios de C, lrand48, iniciado a partir del reloj del ordenador. El hallazgo, reclamado el 15 de octubre de 2026, cierra una cuestión que los criptógrafos llevan años debatiendo. No debilita las curvas.

La recompensa y quién la reclamó

Filippo Valsorda, ingeniero de criptografía, ofreció hace tres años una recompensa a quien pudiera explicar las semillas. Su publicación que anuncia la reclamación dice que investigadores de Anthropic la reclamaron a las 01:07:51 UTC del 15 de octubre de 2026. El premio se triplicó hasta 36.864 dólares y va a ISRG, la organización sin ánimo de lucro que gestiona el servicio de certificados Let's Encrypt.

Anthropic publicó su propio informe el 16 de octubre. Nombra a diez investigadores, entre ellos Nicholas Carlini y Steve Weis. Anthropic dice que su modelo Claude detectó el patrón en menos de media hora.

Por qué importaban las semillas

Las curvas primas del NIST, de P-192 a P-521, se usan en ECDSA, una forma habitual de crear firmas digitales. Cada curva se generó a partir de una semilla de 20 bytes. Según el estándar ANSI X9.62, la semilla se pasa por SHA-1 para producir los números de la curva. Una semilla de aspecto aleatorio debería demostrar que nadie eligió una curva conveniente.

El problema era que nadie sabía de dónde venían las semillas. Las entregó en 1997 Jerry Solinas, un matemático de la NSA que murió en 2023. Durante años se contó que eran hashes de frases en inglés. La preocupación era sencilla: si las semillas se eligieron libremente, alguien podía probar muchas hasta que una diera una curva débil. Valsorda escribe ahora que los hallazgos "descartan por completo la técnica descrita por Bernstein y Lange", dos investigadores que estudiaron ese riesgo.

Cómo se crearon las semillas

El método era sencillo, según ambos informes. Un programa pasaba la marca de tiempo Unix actual, el recuento de segundos desde 1970, a srand48(). Luego sacaba del generador candidatos de 20 bytes y probaba cada uno. Los candidatos que no cumplían las reglas de ANSI X9.62 se descartaban.

La primera pista de Claude fue estadística. Anthropic dice que cuatro de las semillas tenían a cero el bit más alto en sus 20 palabras, una probabilidad de 1 entre 5.810 con datos realmente aleatorios. Ese patrón apuntaba a un generador débil de los años noventa, lrand48. Después, el equipo usó reducción de retículos, una técnica matemática para recuperar números ocultos, para reconstruir el estado del generador.

CurvaInicio del generador (UTC)Candidato usado
P-19218 de mayo de 1997, 14:45:34139
P-5218 de agosto de 1997, 01:12:041.136
P-25616 de agosto de 1997, 01:52:341.842
P-38430 de agosto de 1997, 14:50:082.688
P-2243 de abril de 1998, 12:52:077.026

Crypto Briefing informa de las mismas cifras para P-256: la marca de tiempo 871696354 y la semilla C49D360886E704936A6678E1139D26B7819F7E90. Valsorda escribió su propia versión del algoritmo en Go, y Anthropic publicó su código bajo la licencia de dominio público CC0.

Lo que sigue sin explicarse

La respuesta no está completa. Valsorda encontró una regla adicional más allá de ANSI X9.62: una curva se rechaza si su orden tiene más bits que el cuerpo sobre el que está construida. Una segunda regla todavía se le escapa, escribe. El método deja cerca del doble de semillas válidas de las que se publicaron.

Anthropic enumera las mismas lagunas. El candidato 876 de la ejecución de P-256 también da una curva válida, pero se usó el candidato 1.842. Los puntos base de P-224, P-256, P-384 y P-521 siguen sin explicarse, igual que la semilla de la curva binaria B-163. Anthropic sí explicó seis puntos base, incluido el de P-192, mediante otro generador de una biblioteca llamada FreeLIP.

Qué significa esto para los desarrolladores

No hay que cambiar nada en tu código. Anthropic dice que el trabajo no es una ruptura criptográfica, ni un nuevo ataque ni una debilidad de las curvas. Valsorda añade que los profesionales no tenían preocupaciones serias ni siquiera antes de esto.

Lo que cambia es el debate. Los equipos que evitaban P-256 porque sus semillas eran un misterio pueden revisar esa decisión con mejores pruebas. Anthropic dice que los hallazgos hacen menos plausible una puerta trasera. Los candidatos que se saltaron implican que la elección aún no está del todo explicada, así que el debate se acota en lugar de terminar.

Si trabajas en criptografía, merece la pena leer el código de reproducción. Muestra cómo una prueba estadística más la reducción de retículos pueden reconstruir el estado de un generador solo a partir de su salida. Es un buen recordatorio de no usar nunca lrand48 para nada secreto.

Las preguntas abiertas son un buen reto para cualquier curioso. La segunda regla de rechazo y los puntos base que faltan siguen siendo problemas sin reclamar.

Fuentes

  1. The NIST Elliptic Curves Seeds Bounty Has Been Claimed - Filippo Valsorda
  2. Claude reveals ECDSA curve origins - Anthropic
  3. Claude traces NIST P-256 seed to a 1997 random number generator run - Crypto Briefing

Artículos relacionados

An open rack server in a dim data center with its lid removed, showing two server processors under silver heat sinks and rows of memory modules lit by cool blue light.
Startups

Anthropic absorbe Opaque, una startup de IA confidencial

Opaque Systems, una startup de IA confidencial valorada en 300 millones de dólares este año, cierra sus operaciones mientras su equipo se une a Anthropic. Sus herramientas de código abierto siguen adelante.