Una pregunta abierta desde 2000
Anthropic anunció el 16 de octubre que un modelo interno de investigación de Claude reconstruyó en menos de media hora el método con el que se generaron las semillas de cinco curvas elípticas del NIST: P-192, P-224, P-256, P-384 y P-521. Las semillas no son salidas de una función hash, como sostenía la explicación más conocida. Según la publicación de Anthropic, son salidas de lrand48, el generador de números aleatorios de la biblioteca estándar de C, inicializado con una marca de tiempo Unix.
Las semillas importan porque las curvas construidas a partir de ellas sostienen ECDSA, el esquema de firma que se usa en TLS, en la firma de código y en las carteras de criptomonedas. El NIST adoptó ECDSA en el año 2000 con FIPS 186-2 y publicó para cada curva una semilla cuyo hash fija uno de los coeficientes. La NSA entregó esas semillas sin explicar de dónde venían, lo que dejó abierta la sospecha de que alguien hubiera buscado hasta encontrar una curva con una debilidad que solo él conocía.
Lo que hizo el modelo
Anthropic cuenta que el modelo empezó comprobando si las semillas parecían la salida de generadores disponibles en los años noventa. Algunas tenían todos los bits superiores en cero, una firma característica de lrand48. Después recuperó el estado interno del generador para las semillas de las curvas primas mediante reducción de retículos.

Los estados iniciales recuperados son lecturas de reloj. P-192 y dos curvas relacionadas remiten al 18-05-1997 a las 14:45:34; P-521 al 08-08-1997 a la 01:12:04; P-256 al 16-08-1997 a la 01:52:34, el candidato número 1.842 de esa ejecución; P-384 al 30-08-1997 a las 14:50:08; y P-224 al 03-04-1998 a las 12:52:07. Las cuatro curvas binarias del NIST caen el 17 de abril de 1998, pero solo si se divide por dos la marca de tiempo, lo que apunta a que el programa que las produjo partía el valor del reloj.
El modelo también localizó el origen de seis puntos base —el de P-192 y cinco curvas relacionadas— en el generador de números aleatorios de FreeLIP, el paquete de aritmética de enteros largos de Arjen Lenstra, con las semillas 20000, 20420, 20507, 20509, 20512 y 20517.
Lo que decía la explicación anterior
La teoría dominante venía de Jerry Solinas, el matemático de la NSA que trabajó en las curvas. En 2015 dijo que las semillas eran hashes de una frase jocosa, algo parecido a “Subidle el sueldo a Bob y a Jerry”, y que un colega había escrito el código. No se encontró ningún archivo de la época y Solinas murió en 2023. Anthropic afirma que su propio personal siguió esa pista sin éxito antes de plantear el problema a un modelo.
Lo que sigue sin respuesta
La publicación de Anthropic enumera lo que el modelo no resolvió: los puntos base de P-224, P-256, P-384, P-521 y las curvas binarias del NIST; la quinta semilla binaria, B-163; y por qué se descartaron algunos candidatos válidos, entre ellos el candidato 876 de P-256.

La empresa es explícita: esto “no es una ruptura criptográfica, ni un ataque nuevo, ni una debilidad de las curvas ECDSA”, y dice que nadie tiene que hacer nada. Sostiene que el resultado vuelve mucho menos plausible una puerta trasera deliberada, porque las semillas se produjeron de una forma muy simple y se descartaron pocos candidatos, aunque añade que no puede descartar que se eligieran marcas de tiempo concretas por alguna propiedad de la curva resultante.
Qué vigilar
Anthropic publicó código en Python que reproduce las semillas y los seis puntos base, con licencia CC0, de modo que cualquiera puede comprobar la afirmación. Su publicación no describe ninguna verificación independiente propia. La recompensa de 36.864 dólares por la respuesta, organizada por Filippo Valsorda, irá al Internet Security Research Group. Los puntos base restantes y la semilla B-163 son lo próximo que caerá, o no.