Veinticinco años de sospechas se cerraron en menos de media hora. Claude de Anthropic encontró el origen de las semillas del NIST, esos números que la Agencia de Seguridad Nacional de Estados Unidos (NSA, por sus siglas en inglés) entregó sin explicar su origen y que alimentaron la teoría de una puerta trasera en el cifrado de internet. La respuesta resultó casi decepcionante por simple: un reloj de 1997 y un generador de números viejo, de los que traían las bibliotecas del lenguaje C.
ECDSA, el algoritmo de firma digital de curva elíptica, es el estándar de criptografía de curva elíptica. El Instituto Nacional de Estándares y Tecnología (NIST) lo adoptó en el año 2000, dentro del estándar FIPS 186-2. Cada curva trae una semilla publicada, un valor de 20 bytes cuyo resumen define uno de sus coeficientes. Su procedencia fue el problema: la NSA la entregó sin una sola explicación, y ese silencio dejó espacio para la duda más incómoda de la criptografía moderna.
Una frase de broma llevó a todos por el camino equivocado
La pista con más fama apuntaba a una broma interna. Jerry Solinas, matemático de la NSA, contó en 2015 que las semillas salieron del resumen de una frase humorística, algo parecido a «den un aumento a Bob y a Jerry». Bob Reiter escribió el código, y ninguno de los dos recordaba los detalles. Los archivos de la época nunca aparecieron.
Solinas murió en 2023 y otros colegas de aquellos años no respondieron. La comunidad se quedó con una frase imposible de comprobar. El criptógrafo Filippo Valsorda organizó una recompensa para quien resolviera el enigma, y varias personas, incluido personal de Anthropic, probaron combinaciones de palabras durante meses. Nada encajaba, porque la frase nunca existió.
La huella de un generador viejo quedó marcada en los bits
El giro llegó en octubre de 2026. Un empleado de Anthropic le pidió a un modelo interno de Claude que averiguara cómo se generaron las semillas, sin mencionarle la pista de la frase. Claude de Anthropic cambió de ruta: en lugar de buscar palabras, pensó en el programa que alguien habría usado en 1997 y apostó a que trabajó con un generador de números pseudoaleatorios de los que incluían las bibliotecas de C de la época, débiles y con huellas reconocibles.
Con esa idea, el modelo escribió un escáner que recorrió cada semilla bit a bit y probó 34 combinaciones de generadores antiguos. Escritas como palabras de 32 bits, cuatro de las diez semillas tienen el bit superior en cero en las veinte palabras, algo que por azar ocurre 1 de cada 5,810 veces. Esa marca calza con lrand48, un generador que solo devuelve los 31 bits superiores de un estado interno de 48 bits.
Para las curvas de números primos, P-192, P-224, P-256, P-384 y P-521, la tarea era más dura, porque cada salida conserva menos bits. Claude la trató como un problema de retículos y la resolvió con el algoritmo LLL, de Lenstra, Lenstra y Lovász. Las cinco semillas del NIST y otras cinco del estándar ANSI X9.62 compartían el patrón. Cada estado recuperado regenera los 160 bits de su semilla.
Ese generador corre hacia atrás con la misma facilidad que hacia adelante, así que el modelo retrocedió estado por estado hasta la forma de arranque de srand48. Las diez inicializaciones resultaron ser marcas de tiempo Unix entre mayo de 1997 y abril de 1998. La semilla de P-256 salió de una corrida iniciada el 16 de agosto de 1997 a la 01:52:34 UTC, y fue la candidata número 1,842. Anthropic publicó el código que reproduce todas las semillas, abierto para que cualquiera lo ejecute.
Qué cambia para quien usa P-256, las firmas digitales y Bitcoin
Anthropic lo dejó escrito sin rodeos: esto no es una ruptura criptográfica, ni un ataque nuevo, ni una debilidad de las curvas ECDSA. Nadie tiene que cambiar configuraciones ni rotar claves por este hallazgo. La lectura es la contraria. Si las semillas del NIST salieron de un generador común arrancado con la hora del reloj, el margen para haber escogido curvas con una debilidad deliberada se achica mucho: el procedimiento quedó a la vista de cualquiera.
Bitcoin queda fuera de esta historia por una razón sencilla, apuntó CoinDesk en su cobertura del 17 de octubre. La red usa otra curva, secp256k1, definida con dos números fijos y pequeños que dejan poco espacio para esconder ajustes. Su debate sigue siendo otro: las computadoras cuánticas con capacidad suficiente, un riesgo todavía teórico.
Quedan cabos sueltos. La semilla de la curva binaria B-163 no encajó en nada de lo probado. Los puntos base de P-224, P-256, P-384 y P-521 siguen sin explicación, aunque Claude sí encontró el origen de otros: los de P-192 y los de cinco curvas de ejemplo ANSI X9.62 salieron del generador del paquete FreeLIP, de Arjen Lenstra, con semillas enteras pequeñas. Falta explicar un salto curioso: la candidata 876 de la corrida de P-256 también producía una curva válida y, aun así, la publicada fue la 1,842.
La recompensa de US$36,864 será donada al Internet Security Research Group, la organización sin fines de lucro detrás de Let’s Encrypt, que entrega certificados gratuitos de seguridad a sitios web. El premio por despejar la sospecha sobre el cifrado terminará financiando cifrado gratuito para la web abierta.
Fuente: Anthropic — Claude reveals ECDSA curve origins
Foto: Anthropic
Descubre más desde Tecnología Geek
Suscríbete y recibe las últimas entradas en tu correo electrónico.

