Un enigma de décadas sobre el origen de las semillas de las curvas elípticas del NIST fue resuelto, y la respuesta es mucho más mundana que los rumores. Anthropic afirmó que su modelo de investigación interno, Claude, determinó que las semillas fueron generadas por un generador estándar de números aleatorios inicializado con una marca de tiempo Unix. El trabajo zanja una pregunta que los criptógrafos se hacían desde la publicación de los estándares.

Las curvas en cuestión pertenecen a ECDSA, que Anthropic describe como el estándar de criptografía de curva elíptica más utilizado. El Instituto Nacional de Estándares y Tecnología lo adoptó en 2000 como parte del FIPS 186-2, el Estándar de Firma Digital. Ese estándar enumera un conjunto de curvas de distintos tamaños y niveles de seguridad. Para las curvas sobre campos primos y binarios, las especificaciones incluían un valor “semilla” cuyo hash define un coeficiente de la curva. La NSA proporcionó esas semillas sin ninguna explicación ni justificación. La semilla de la curva NIST P-256, por ejemplo, llegó sin ningún relato sobre su origen.

Ese vacío alimentó años de especulación. Los escritores Neal Koblitz y Alfred Menezes resumieron la controversia en un artículo titulado “A Riddle Wrapped in an Enigma”. Luego siguió una investigación de aficionados, y se ofreció una recompensa a quien pudiera encontrar el origen de las semillas. La teoría más popular sostenía que Jerry Solinas, un empleado de larga data de la NSA, había generado las semillas al aplicar hash a una frase de contraseña humorística. Solinas dijo en 2015 que no recordaba los detalles. Murió en 2023, y otros colegas de la época no respondieron a las consultas, por lo que la pregunta siguió abierta.

Varios empleados de Anthropic intentaron seguir la pista de la frase de contraseña y fracasaron. Esa pista, como resultó, estaba equivocada. En octubre de 2026, un empleado curioso le preguntó al modelo de investigación interno si podía descubrir cómo se generaron las semillas sin que se le indicara la pista. Anthropic afirmó que Claude encontró el origen de las semillas P-192, P-224, P-256, P-384 y P-521 en menos de media hora. Ninguna provenía de un hash. Eran el resultado del generador de números aleatorios lrand48 de la biblioteca C, inicializado con una marca de tiempo Unix.

Como la búsqueda de la frase no había dado resultados, Claude probó un enfoque diferente. Supuso que el software utilizaba un generador de números pseudoaleatorios común en las bibliotecas C de los años noventa. Esos generadores son lo bastante débiles como para que su salida pueda reconocerse. Claude escribió un escáner que comprobaba si fragmentos de cada semilla publicada eran salidas consecutivas de un generador de ese tipo. En el proceso, notó que los bits más significativos de algunas semillas eran todos cero. Anthropic dijo que ese patrón se produciría por azar con una probabilidad de aproximadamente 1 en 5.810. El patrón coincidía con lrand48, que devuelve solo los 31 bits más significativos de un estado interno de 48 bits. A partir de ahí, Claude recuperó los bits ocultos y confirmó que la salida coincidía con las semillas.

Las semillas de las curvas primas requirieron más trabajo porque la salida del generador estaba truncada. Anthropic señaló que Claude utilizó un algoritmo de reducción de retículas para recuperar el estado interno a partir de esos bits parciales. Cinco semillas de curvas primas del NIST y otras cinco del estándar ANSI X9.62 compartían el mismo patrón de bits. Cada estado recuperado regeneró los 160 bits completos de su semilla. Anthropic afirmó que eso no podía ocurrir por azar.

Las marcas de tiempo en sí son reveladoras. Anthropic informó que las diez inicializaciones de curvas primas corresponden a fechas comprendidas entre mayo de 1997 y abril de 1998. Las cuatro inicializaciones de curvas binarias se interpretan como febrero de 1984, pero al duplicarlas corresponden al 17 de abril de 1998, dos semanas después de la ejecución de P-224. Anthropic dijo que esto sugiere que el programa pudo haber dividido a la mitad el valor del reloj.

Anthropic fue claro sobre lo que el descubrimiento no demuestra. No es una ruptura criptográfica, un nuevo ataque ni una debilidad en las curvas ECDSA. La compañía afirmó que los hallazgos hacen menos plausible que las curvas hayan sido elegidas para contener puertas traseras. Las semillas se generaron de una manera simple que cualquiera puede reproducir ahora.

El equipo también rastreó algunos de los puntos base, los puntos fijos de los que se deriva cada clave pública ECDSA. Seis curvas, entre ellas P-192 y cinco curvas de ejemplo del ANSI X9.62, tienen puntos base que provienen del generador de números aleatorios de FreeLIP, un paquete de aritmética de enteros largos escrito por Arjen Lenstra. Las primeras versiones de la biblioteca NTL de Victor Shoup incluían el mismo código. Anthropic afirmó que ningún punto base del NIST había sido explicado antes. Los puntos base de P-224, P-256, P-384 y P-521 no encajan en la misma receta, y el equipo no pudo determinar cómo fueron seleccionados.

Quedan varias preguntas. Anthropic señaló que algunas curvas viables fueron descartadas durante la generación, y no sabe cuáles fueron los criterios detrás de esa elección ni si fue accidental. El equipo no pudo recuperar la semilla de la quinta curva binaria, B-163. Tampoco se sabe cómo se produjeron los puntos base del NIST ni los de las curvas binarias. Anthropic dijo que no cree que se hayan seleccionado curvas debilitadas, porque eso implicaría que son comunes y fáciles de encontrar.

El trabajo fue realizado en Anthropic por John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini y Steve Weis. La compañía publicó el código utilizado para reproducir las semillas y los puntos base seleccionados. La recompensa de 36.864 dólares irá al Internet Security Research Group.

This article was written with the assistance of AI.
News Factory APP - agentic news to boost your SEO & AEO.