Saltar al contenido
NeoventixTecnología

Seguridad

Anthropic atribuye las semillas de las curvas elípticas de NIST a un generador lrand48 iniciado con la hora de 1997

Un modelo interno de Claude reconstruyó cómo se generaron las semillas de P-192 a P-521, un enigma criptográfico de un cuarto de siglo; el organizador de la recompensa lo verificó de forma independiente y concluye que descarta la hipótesis de una puerta trasera.

criptografíaECDSANISTAnthropicClaude

Árbol en el campus del NIST en Gaithersburg, Maryland
Foto: National Institute of Standards and Technology (dominio público)

Anthropic publicó el 16 de octubre que uno de sus modelos internos de investigación reconstruyó cómo se generaron las semillas de las curvas elípticas P-192, P-224, P-256, P-384 y P-521 de NIST, una pregunta abierta desde hace más de 25 años. Las semillas no proceden del hash de ninguna frase, como sostenía la versión más difundida, sino de la salida de lrand48, el generador pseudoaleatorio de la biblioteca estándar de C, iniciado con marcas de tiempo Unix de entre mayo de 1997 y abril de 1998. La semilla de P-256, la curva más usada, corresponde al candidato 1842 de una ejecución iniciada el 16 de agosto de 1997.

Las curvas se publicaron en el año 2000 en la norma FIPS 186-2. Siguiendo el método de ANSI X9.62, cada una se deriva de una semilla de 160 bits que se pasa por SHA-1 para obtener parte de los parámetros, en particular el coeficiente b. La idea era demostrar que los parámetros no se habían elegido a mano, pero la NSA aportó las semillas sin explicar su origen. Eso alimentó durante años la sospecha de que alguien pudo probar semillas hasta dar con curvas con una debilidad oculta. Jerry Solinas, veterano empleado de la NSA fallecido en 2023, llegó a contar que eran el hash de una frase humorística que nadie recordaba con exactitud, y en 2023 el criptógrafo Filippo Valsorda organizó una recompensa para quien encontrara el método.

Según Anthropic, un empleado pidió al modelo que investigara el problema sin darle esa pista, y en menos de media hora el sistema propuso otro enfoque: suponer que el software de la época usaba un generador pseudoaleatorio débil de las bibliotecas de C de los noventa, cuya salida es reconocible. Escribió un escáner que probaba si fragmentos consecutivos de cada semilla podían ser salidas sucesivas de esos generadores y detectó en cuatro semillas de curvas binarias que el bit más alto de cada palabra de 32 bits era siempre cero, la firma de lrand48, que solo devuelve los 31 bits superiores de un estado de 48. En las curvas sobre cuerpos primos el generador conservaba menos bits por salida, así que recuperar su estado se convirtió en un problema clásico de retículos que resolvió con el algoritmo de reducción LLL. Después recorrió el generador hacia atrás hasta el estado que deja srand48, y en las diez semillas primas analizadas, cinco de NIST y cinco curvas de ejemplo de ANSI X9.62, ese estado era una marca de tiempo. La empresa publicó un programa breve que regenera todas las semillas.

Valsorda confirmó que el equipo reclamó la recompensa el 15 de octubre, reimplementó el algoritmo en Go para comprobarlo y explicó que el premio, donado a ISRG, la organización que opera Let’s Encrypt, se triplicó hasta 36.864 dólares. En su análisis, el hallazgo descarta la técnica que Daniel Bernstein y Tanja Lange describieron en 2017, que requería unos 70 bits de libertad en la elección de la semilla para apuntar a una hipotética clase de curvas débiles: aun suponiendo que la NSA hubiera podido escoger cualquier marca de tiempo de 1997 o 1998, solo habría tenido unos 30 bits de margen.

Quedan cabos sueltos que ambas partes reconocen. En varias ejecuciones se descartaron candidatos que también producían curvas válidas, por ejemplo el 876 en la ejecución de P-256, sin un criterio conocido. La semilla de la curva binaria B-163 sigue sin explicación, y aunque el modelo identificó el generador de FreeLIP como origen de los puntos base de seis curvas de 1997, no se sabe cómo se eligieron los de P-224, P-256, P-384 y P-521.

Anthropic subraya que no se trata de una ruptura criptográfica ni de un ataque y que no hay que cambiar nada. Como análisis, el valor del resultado es doble: cierra con un procedimiento reproducible una controversia que erosionó la confianza en curvas presentes en TLS y en firmas digitales de uso masivo, y muestra a un modelo de lenguaje aplicando criptoanálisis clásico, desde la identificación de generadores hasta la reducción de retículos, a un problema que llevaba años abierto. Llega, como apunta Valsorda, cuando esas curvas empiezan a ceder terreno a las firmas poscuánticas.

Fuentes