Un reloj de 1997 y un generador vulgar de C: el origen de las semillas de la NSA, y por qué es una buena noticia
Durante casi tres décadas nadie supo de dónde salían los números con los que se fabricaron las curvas elípticas más usadas del mundo. Anthropic dice ahora que salieron de un generador de números corriente y de la hora del reloj. No es un fallo, y a Bitcoin no le afecta.
C49D3608 86E70493 6A6678E1 139D26B7 819F7E90. Ese número de 40 cifras hexadecimales es la semilla de la curva P-256, la que protege buena parte de los certificados de la web [3]. La NSA la entregó en 1997 sin decir de dónde salía, y desde entonces ha alimentado sospechas de puerta trasera. El 16 de octubre de 2026, Anthropic publicó la respuesta: según la empresa, no era el hash de ninguna frase, sino lo que escupió un generador de números aleatorios de las bibliotecas de C de los noventa, puesto en marcha con la hora del sistema [1].
Lo esencial, antes de entrar en detalle, cabe en dos frases. No es una ruptura ni un ataque, lo dice la propia Anthropic, que añade que el hallazgo da más confianza en esas curvas, no menos [1]. Y Bitcoin no usa ninguna de ellas: firma con secp256k1, una curva cuyos coeficientes son 0 y 7 y que nunca tuvo semilla [7].
Steve Weis, ingeniero de Anthropic y uno de los autores, lo anunció en X el 16 de octubre a las 20:41, hora peninsular, con cuatro palabras en mayúsculas: «CLAUDE FOUND THE SEEDS» [11]. A la mañana siguiente el post pasaba de los tres millones de impresiones.
Una curva elíptica, explicada con una mesa de billar
Contar golpes hacia delante es fácil para cualquier ordenador. Lo contrario, mirar dónde está la bola y adivinar cuántos golpes hicieron falta, es imposible en la práctica. Esa asimetría es la base de la seguridad.
Ahora bien, la forma de la mesa no es un detalle. La definen unos pocos números, los parámetros de la curva, y si alguien eligiera a propósito una forma con un defecto que solo él conoce, podría acortar el cálculo imposible. Por eso los estándares de los noventa idearon una salvaguarda: no elegir la forma a mano, sino sacarla de un sorteo. Se toma un número arbitrario, la semilla, se pasa por la función hash SHA-1 y lo que sale se convierte en uno de los coeficientes de la curva [3][7]. El estándar SEC 2 llama a esto parámetros «elegidos de forma verificablemente aleatoria» y promete que así no pueden haberse colocado trampas [7].
El problema es que el sorteo solo tranquiliza si se puede ver el bombo. Con SHA-1 nadie puede fabricar una semilla que dé una curva concreta, pero quien controla el bombo puede repetir el sorteo muchas veces y quedarse con la bola que le conviene. Por eso importaba tanto saber de dónde salían las semillas.
Un cuarto de siglo de sospechas
Las curvas P-192, P-224, P-256, P-384 y P-521 se publicaron en 2000 en el estándar FIPS 186-2 del NIST, el organismo de normalización de Estados Unidos [6]. Sus semillas venían de la NSA. Alfred Menezes, autor principal del estándar ANSI X9.62 de ECDSA, contó a Steve Weis que fue Jerry Solinas, representante de la NSA en el comité, quien se las entregó en otoño de 1997 [4]. Según Weis, ya en 1999 hubo quien desconfió de ellas en Usenet [4].
La sospecha creció con los años. El precedente del generador Dual_EC_DRBG, otro estándar en el que se señaló la influencia de la NSA, hizo que mucha gente mirara con lupa cualquier número sin explicar [4]. Neal Koblitz y Alfred Menezes repasaron la polémica en «A Riddle Wrapped in an Enigma» (2015) [5]. En ese trabajo defienden, según resume Valsorda, que es inverosímil que la NSA eligiera una semilla para explotar un defecto que se le hubiera escapado a todo el mundo durante décadas de criptoanálisis [2].
La versión más extendida tenía gracia. Solinas contó en 2015, en unos correos que Daniel Bernstein y Tanja Lange hicieron públicos después, que las semillas salían de aplicar un hash a «un mensaje humorístico» que ya nadie recordaba [4]:
«El mensaje era algo así como "Dadle un aumento a Bob y a Jerry" o "Bob y Jerry mandan"». Jerry Solinas, citado por Steve Weis [4]
Bob era Bob Reiter, que según Solinas escribió el código y tampoco se acordaba de los detalles. Si los archivos existían, bromeaba Solinas, estarían «en un disco duro junto al Arca de la Alianza» [4]. Solinas murió en 2023 [2].
Ese mismo año, el 5 de octubre de 2023, el criptógrafo Filippo Valsorda lanzó una recompensa de 12.288 dólares para quien encontrara las frases originales de las cinco curvas, que se triplicaba hasta 36.864 dólares si el ganador la donaba a una organización benéfica [3]. Durante tres años nadie la cobró.
Lo que encontró Claude: un generador de C y la hora del sistema
Según Anthropic, varios empleados de la empresa habían intentado sin éxito la pista de la frase graciosa [1]. En octubre de 2026, uno de ellos pidió a un modelo de investigación interno que averiguara cómo se habían generado las semillas, sin darle esa pista. En menos de media hora, Claude dio con el origen de las cinco semillas NIST de curvas sobre números primos [1].
No había ningún hash. Las semillas eran la salida directa de lrand48, un generador de números pseudoaleatorios de la biblioteca estándar de C, inicializado con una marca de tiempo Unix: el número de segundos transcurridos desde 1970 que marcaba el reloj del ordenador [1]. El programa sacaba bytes del generador de 20 en 20, y cada bloque era un candidato a semilla. Para P-256 hicieron falta 1.842 intentos [1].
El método tiene su miga. Claude supuso que el programa original habría usado uno de los generadores que traían las bibliotecas de C de los noventa, tan simples que su salida deja huella [1]. Escribió un detector, probó 34 combinaciones de generador y formato de salida y vio algo raro: en cuatro de las semillas, el bit más alto de cada bloque de 32 bits era siempre cero. Por azar eso pasa una vez de cada 5.810, y es justo la firma de lrand48, que solo devuelve 31 de sus 48 bits internos [1].
En las semillas de las curvas sobre números primos el rastro era más débil, porque el programa solo guardaba un byte de cada salida. Según Anthropic, recuperar el estado interno de un generador así a partir de trozos de su salida es un problema clásico que se resuelve con el algoritmo LLL de reducción de retículos [1]. Después, Claude hizo correr el generador hacia atrás hasta su punto de arranque. En las diez semillas de ese tipo, cinco del NIST y cinco curvas de ejemplo del estándar ANSI X9.62, el arranque correspondía a una fecha entre mayo de 1997 y abril de 1998 [1].
P-256 salió del reloj del 16 de agosto de 1997 a las 01:52:34 UTC [1]. Las cuatro curvas binarias recuperadas, B-233, B-283, B-409 y B-571, daban fechas de febrero de 1984. Según Anthropic, al duplicar esas marcas de tiempo caen en el 17 de abril de 1998, dos semanas después de la tanda de P-224, así que el programa quizá dividía el reloj entre dos [1].
Hay una nota casi cómica en el artículo: Claude, en su razonamiento, llegó a sospechar que estaba en un entorno de prueba simulado, porque le parecía raro que algo tan evidente llevara 25 años sin descubrirse [1]. Lo descartó al comprobar que las diez semillas coinciden bit a bit, algo que no ocurre por casualidad [1].
Lo hemos comprobado. Hemos ejecutado el código que publica Anthropic y produce exactamente la semilla de P-256, C49D3608 86E70493 6A6678E1 139D26B7 819F7E90, y también las de las otras cuatro curvas NIST de números primos. Y hemos ido un paso más allá: al pasar esa semilla por la receta de SHA-1 del estándar ANSI X9.62, sale el coeficiente b de P-256 que publica SEC 2 [7]. El generador del reloj fabrica, por tanto, la curva real.
Valsorda también reimplementó el algoritmo por su cuenta para validar el hallazgo antes de pagar la recompensa [2]. Según Valsorda, el equipo de Anthropic la reclamó el 15 de octubre de 2026 a las 03:07, hora peninsular [2].
También algunos puntos base
Cada curva trae, además de su forma, el punto de salida de la bola: el punto base G. La semilla no lo determina, y su origen era otro misterio. Según Anthropic, Claude descubrió de dónde salieron los de seis curvas generadas en mayo de 1997, P-192 y cinco curvas de ejemplo de ANSI X9.62: del generador de números de FreeLIP, la biblioteca de aritmética de enteros grandes de Arjen Lenstra [1]. Para P-192, el generador arrancó con el número 20000 [1]. Anthropic dice que, hasta donde sabe, es la primera vez que se explica un punto base NIST [1].
Por qué esto da más confianza, no menos
La clave es cuánta libertad tenía quien generó las curvas. Si podía probar cualquier semilla, en teoría podía rebuscar hasta dar con una curva débil. Si la semilla sale de la hora y de un generador corriente, el margen se estrecha muchísimo.
Valsorda lo ha cuantificado. Aunque la NSA hubiera podido escoger cualquier segundo de 1997 y 1998 y cualquiera de los primeros 16 candidatos válidos, habría tenido como mucho unos 30 bits de libertad, es decir, alrededor de mil millones de opciones [2]. Bernstein y Lange habían descrito en 2017 una técnica que aprovecharía unos 70 bits de libertad para apuntar a una hipotética familia de curvas débiles. Según Valsorda, el hallazgo de esta semana la descarta por completo [2].
Unos 30 bits de libertad como mucho: insuficientes, según Valsorda, para esconder una puerta trasera en las curvas NIST [2]
Anthropic llega a la misma conclusión con otras palabras: hay «mucho menos espacio para la manipulación», y cualquiera puede ahora reproducir las semillas [1]. Su recomendación para el lector es casi un encogimiento de hombros: no hay que hacer nada distinto [1].
Bitcoin y secp256k1: una curva sin sorteo
Aquí está la parte que importa a quien tiene bitcoin. Bitcoin no usa P-256 ni ninguna otra curva NIST. Usa secp256k1, definida en el mismo estándar SEC 2, con ECDSA y, desde Taproot, también con firmas Schnorr según BIP-340 [7][9].
La diferencia está en cómo se eligió su forma. secp256k1 pertenece a la familia que SEC 2 llama curvas de Koblitz, cuyos parámetros se escogen buscando una estructura que permite calcular más rápido, no a partir de una semilla [7]. Sus coeficientes son a = 0 y b = 7 [7]. No hay bombo, ni bola, ni número de 20 bytes que justificar. La Bitcoin Wiki señala que esos coeficientes predecibles reducen mucho la posibilidad de que su creador escondiera una puerta trasera, y que la curva apenas se usaba antes de Bitcoin [8].
¿Por qué la eligió Satoshi? No lo sabemos, porque nunca lo explicó. Una lectura frecuente es que quiso evitar las curvas NIST y sus semillas opacas. Es razonable, pero es una interpretación, no algo que dejara escrito.
Y conviene no vender secp256k1 como una curva sin ningún cabo suelto. Nadie ha explicado cómo se eligió su punto base G. Pieter Wuille, uno de los desarrolladores más conocidos de Bitcoin, lo resume sin rodeos: «No lo sabemos» [10]. Hay una pista curiosa: la mitad de G tiene una coordenada x anormalmente corta, de solo 166 bits, y lo hemos verificado nosotros mismos [10]. Wuille añade que la elección del generador se considera irrelevante para la seguridad de esquemas que usan un solo generador, como ECDSA o las firmas Schnorr de BIP-340 [10]. Es el mismo tipo de cabo suelto que Anthropic deja en los puntos base de P-256.
Lo que sigue abierto
Anthropic no cierra el caso del todo, y conviene leer sus advertencias con la misma atención que el titular.
- Candidatos descartados. No todas las semillas candidatas daban una curva válida, pero algunas que sí servían se saltaron. En P-256 se publicó el candidato 1.842 cuando el 876 de la misma tanda también daba una curva válida del tamaño correcto [1]. En P-224 se pasaron por alto tres, y en las curvas de ejemplo de ANSI X9.62, otras siete [1]. Valsorda ha deducido uno de los criterios ocultos, pero el otro se le escapa [2].
- B-163. La quinta semilla binaria no encaja con nada de lo que Claude ha probado y sigue sin explicación [1].
- Puntos base. No se sabe cómo se eligieron los de P-224, P-256, P-384 y P-521, ni los de las curvas binarias del NIST [1].
- Cuántas tandas hubo. Según Anthropic, en teoría alguien podría haber probado muchas horas de arranque buscando una propiedad concreta, aunque solo tendría sentido si pensara revelar después la hora como prueba de inocencia. Nada en los números indica cuántas tandas se hicieron [1].
Con pocos candidatos saltados, Anthropic considera poco plausible que se eligieran curvas debilitadas: implicaría que las curvas débiles son abundantes y fáciles de encontrar [1]. Es su valoración, no una demostración.
Una IA que resuelve un misterio, no que rompe una curva
El caso llega en una semana en la que se ha hablado mucho de inteligencia artificial y criptografía. Hace apenas diez días, Justin Drake pidió preparar un «modo búnker» por si la IA llega a romper ECDSA. Lo de Anthropic va en la dirección contraria: un modelo que reconstruye cómo se hizo algo en 1997, no uno que encuentre un atajo matemático contra las firmas.
La amenaza que sí está sobre la mesa para todas estas curvas es otra. Valsorda lo apunta con ironía al final de su artículo: las curvas NIST terminan su «arco de rehabilitación» justo a tiempo de que las jubilen en favor de firmas poscuánticas [2]. Bitcoin tiene ese debate pendiente con secp256k1, y lo contamos en la amenaza cuántica y BIP-360.
Mientras, los 36.864 dólares de la recompensa irán a ISRG, la organización sin ánimo de lucro que gestiona Let's Encrypt [1][2][12]. Un misterio de la criptografía de la era del módem acaba en la organización que emite certificados gratuitos para la web. Y la frase graciosa de Bob y Jerry, que tanta gente buscó, no es de donde salieron estas semillas.
La altura de bloque, el estado de la red y cualquier cambio en las reglas de consenso de Bitcoin, en directo en la sección de red.
Fuentes
Entre paréntesis, el tipo de fuente.
- Anthropic, Claude reveals ECDSA curve origins, 16 de octubre de 2026. Origen de las semillas en
lrand48y marcas de tiempo de 1997-1998, método de recuperación, puntos base vía FreeLIP, preguntas abiertas, código reproducible y donación a ISRG. (Primaria, autores del hallazgo) - Filippo Valsorda, The NIST Elliptic Curves Seeds Bounty Has Been Claimed, 16 de octubre de 2026. Verificación independiente, hora de la reclamación, criterios de descarte, unos 30 bits de libertad y técnica de Bernstein y Lange descartada. (Primaria, organizador de la recompensa)
- Filippo Valsorda, Announcing the $12k NIST Elliptic Curves Seeds Bounty, 5 de octubre de 2023. Importe de la recompensa, las cinco semillas y uso de P-256 y P-384 en certificados web. (Primaria, organizador de la recompensa)
- Steve Weis, How were the NIST ECDSA curve parameters generated?, septiembre de 2023, actualizado en 2024 y 2026. Testimonio de Alfred Menezes, correos de Jerry Solinas y dudas en Usenet en 1999. (Primaria, investigación con testimonios directos)
- Neal Koblitz y Alfred Menezes, A Riddle Wrapped in an Enigma, IACR Cryptology ePrint Archive 2015/1018. Repaso de la polémica sobre la NSA y las curvas elípticas. (Primaria, artículo académico)
- NIST, FIPS 186-2, Digital Signature Standard, 27 de enero de 2000, con cambio de 5 de octubre de 2001. Estándar que publicó las curvas. (Primaria, estándar oficial)
- Certicom Research, SEC 2: Recommended Elliptic Curve Domain Parameters, versión 2.0, 27 de enero de 2010. Parámetros de secp256k1 y de secp256r1 (P-256), con su semilla, y método de cada familia. (Primaria, estándar)
- Bitcoin Wiki, Secp256k1. Uso de la curva en Bitcoin y comparación con las curvas NIST. (Secundaria, wiki colaborativa; solo como contexto)
- Pieter Wuille, Jonas Nick y Tim Ruffing, BIP-340: Schnorr Signatures for secp256k1. Firmas Schnorr sobre secp256k1. (Primaria, especificación)
- Pieter Wuille, respuesta sobre el punto generador de secp256k1, Bitcoin Stack Exchange, 2022. Origen desconocido de G, coordenada corta de su mitad e irrelevancia para la seguridad. (Secundaria, foro técnico)
- Steve Weis, publicación en X, 16 de octubre de 2026. Anuncio del hallazgo. (Primaria, red social)
- Internet Security Research Group, web oficial. Organización que recibe la donación. (Primaria, web oficial)
Más en Red y minería
Última actualización: 17 de octubre de 2026