Investigadores reconstruyen la cadena de candidatos hasta una fecha concreta de agosto de 1997

Los investigadores de Anthropic, con la ayuda de una versión interna de Claude, recuperaron el origen de los números misteriosos con los que a finales de los años 1990 se eligieron los parámetros de cinco curvas elípticas del NIST. El modelo lo hizo en menos de media hora y descubrió que los números se obtuvieron de un generador de números pseudoaleatorios estándar ejecutado con una marca de tiempo del sistema. El hallazgo no afecta la seguridad de ECDSA; no es necesario cambiar claves ni algoritmos.
El enigma duró más de 25 años. Al normalizar la criptografía de curvas elípticas para P-192, P-224, P-256, P-384 y P-521 se publicaron valores iniciales de 160 bits. Los entregó la Agencia de Seguridad Nacional de Estados Unidos, pero nadie explicó cómo se eligieron. El origen opaco de los parámetros hace tiempo suscitaba sospechas: los criptógrafos sospechaban que los números podrían haber sido seleccionados a propósito para lograr alguna propiedad desconocida de las curvas.
Durante mucho tiempo una de las principales hipótesis fue que se había pasado por una función hash una frase en broma. Claude siguió otra pista y trató de entender qué código de finales de los años 1990 podría haber dejado una huella matemática visible en los valores publicados. La pista llevó a lrand48, un viejo generador de números pseudoaleatorios de las bibliotecas del lenguaje C.
El esquema resultó ser simple. El programa iniciaba lrand48 usando la marca de tiempo Unix, luego obtenía secuencialmente variantes de 20 bytes y las comprobaba para la curva futura. Por ejemplo, para P-256 el generador se inició con la fecha 16 de agosto de 1997, y el valor estandarizado apareció tras probar 1842 candidatos.
Claude primero observó un patrón característico en los bits de los números publicados, luego reconstruyó el estado interno del generador y lo retrocedió. Para las cinco curvas NIST se obtuvieron fechas entre mayo de 1997 y abril de 1998. El mismo mecanismo explicó otros cinco valores del estándar ANSI X9.62. Los estados reconstruidos del generador reproducen de nuevo los 160 bits de los números originales, por lo que la coincidencia aleatoria es prácticamente imposible.
El hallazgo no demuestra matemáticamente que nadie intentara conseguir una propiedad oculta al elegir las curvas. Sin embargo, la hipótesis de una puerta trasera preparada de antemano se volvió mucho menos verosímil: los investigadores obtuvieron un método simple y reproducible para generar números que antes parecían arbitrarios.
Quedaron sin embargo algunas preguntas. El generador a veces omitía candidatos que también cumplían los criterios conocidos, y los investigadores aún no han encontrado la razón. No se pudo reconstruir el valor inicial de la curva B-163. Claude también explicó el origen del punto base P-192 y de varias curvas ANSI, pero la elección de los puntos base P-224, P-256, P-384 y P-521 sigue siendo un misterio.
Por la resolución del origen de los números se había ofrecido anteriormente una recompensa de $36 864. Tras resolver el problema decidieron donar toda la suma a la organización sin fines de lucro Internet Security Research Group.