Blog articles are published in Spanish and Catalan.

Aprendiendo IA

Números sin truco: P-256 salió de un reloj

Durante décadas nadie supo de dónde salían los números que definen la curva P-256 y sus hermanas, aportados sin explicación por la NSA (National Security Agency), la agencia de EE. UU. que dirige la criptología del Gobierno. Según Anthropic, su modelo Claude ha descubierto que no eran el hash de ninguna frase, sino la salida de un generador de números pseudoaleatorios arrancado con una marca de tiempo Unix. El caso explica por qué en criptografía cada constante debe poder recalcularse.

Ilustración: en una sala de ordenadores de los años noventa, un matemático bosteza y pulsa una tecla en una estación de trabajo de 1997, bajo un reloj de pared que marca casi las dos; junto al teclado, una taza con el sello de la NSA y una tira de papel continuo.
📷 Imagen generada con IA

En resumen

  • Según Anthropic, las semillas de las curvas P-192, P-224, P-256, P-384 y P-521 no eran hashes, sino salidas de lrand48 iniciado con una marca de tiempo.
  • Anthropic afirma que el hallazgo no es una rotura ni una debilidad de las curvas de ECDSA, y que hace mucho menos plausible una puerta trasera.
  • Según NIST, Dual_EC_DRBG, un generador cuyos parámetros hicieron temer una puerta trasera, salió de sus recomendaciones en 2014.
  • Con el código que publica Anthropic se puede reproducir en casa la semilla de P-256 y compararla con la oficial.

Constantes que cualquiera puede recalcular

Ilustración: un mago remangado hasta el hombro levanta los brazos junto a un cubo de cristal vacío mientras un inspector escéptico le alumbra la manga con linterna y lupa sin encontrar nada.
📷 Imagen generada con IA

SHA-256 es el ejemplo de manual. Sus sesenta y cuatro constantes de 32 bits, que comparte con SHA-224, representan los primeros 32 bits de las partes fraccionarias de las raíces cúbicas de los sesenta y cuatro primeros números primos. Cualquiera puede repetir la cuenta: la primera de la lista es 428a2f98.

Curvas con la receta a la vista

Otros estándares de curvas elípticas aplican la misma idea a sus parámetros. Uno de ellos describe así su método de generación: «pretende ser tan objetivo como sea razonablemente posible para que quede claro que ninguna consideración indebida influyó en la elección de la curva». Lo contrario, una constante que nadie explica, deja abierta la duda de que alguien la eligiera a dedo.

Las curvas de NIST y su semilla sin historia

NIST, el National Institute of Standards and Technology de EE. UU., fundado en 1901 y hoy parte del Departamento de Comercio, adoptó ECDSA en 2000 dentro de FIPS 186-2. Esa norma incluye una lista de curvas estándar: P-192, P-224, P-256, P-384 y P-521. Mucha criptografía actual se apoya en ellas, sobre todo en P-256 y P-384.

En cada curva, el coeficiente b sale de pasar una semilla por SHA-1, siguiendo el método de ANSI X9.62 para generar curvas «verificablemente al azar». SP 800-186 lo describe así: b se derivó «de forma difícil de invertir» a partir de un valor pseudoaleatorio. El problema es que esas semillas las aportó la NSA, agencia de apoyo al combate del Departamento de Guerra de EE. UU. que dirige la criptología del Gobierno, sin explicación ni justificación.

Una frase graciosa que nadie recordaba

La explicación más repetida era una frase. Según Jerry Solinas, veterano empleado de la NSA, las semillas salieron del hash de un mensaje humorístico «del estilo de “Dale a Bob y a Jerry un aumento”», aunque en 2015 ya no recordaba los detalles. Solinas murió en 2023 y la pregunta quedó abierta.

En octubre de 2023, Filippo Valsorda, que organizó la búsqueda, ofreció una recompensa por descifrar los cinco hashes, que se triplicaba hasta 36.864 dólares si el ganador la donaba a una organización benéfica. Eso sí, Valsorda sostiene que el temor a que la NSA eligiera las semillas para colar curvas débiles no está bien fundado.

Dual_EC_DRBG: cuando la sospecha tuvo consecuencias

Ilustración: en una vitrina de patrones con el logotipo de NIST, un conservador con bata y guantes retira con pinzas la única pesa negra y opaca de una fila de pesas doradas, ante la mirada de los visitantes.
📷 Imagen generada con IA

Según el informe del Visiting Committee on Advanced Technology, el principal comité asesor federal de NIST, durante la elaboración del estándar los criptógrafos señalaron dos problemas: la posibilidad de una puerta trasera ligada a los parámetros concretos y un sesgo estadístico en la salida, «como un dado trucado». Se añadió un método para generar parámetros alternativos, pero los originales siguieron siendo los recomendados y eran obligatorios para validar módulos criptográficos ante NIST.

La pregunta equivocada

Según NIST, al evaluar Dual_EC_DRBG se preguntó «¿creemos que hay una trampa?» cuando debió preguntarse «¿debemos incluir en nuestros estándares un algoritmo que podría tener una trampa?». El organismo sostiene que entonces creía improbable una puerta trasera, y cifra en más de 50 los módulos criptográficos validados que lo implementaban.

En septiembre de 2013, informaciones de prensa provocaron preocupación pública sobre la fiabilidad de Dual_EC_DRBG. NIST afirma que desaconsejó de inmediato su uso y que en abril de 2014 lo retiró del borrador de SP 800-90A «basándose en su propia evaluación y en respuesta a la falta de confianza pública». Según NIST, quien aún lo use debe pasar a uno de los tres algoritmos restantes «lo antes posible».

Lo que encontró Claude

Según Anthropic, en octubre de 2026 uno de sus empleados pidió a un modelo interno de investigación que averiguara cómo se generaron las semillas, sin darle la pista de la frase. En menos de media hora, Claude descubrió que las de P-192, P-224, P-256, P-384 y P-521 no salían de ningún hash, sino del generador lrand48 de la biblioteca de C, iniciado con una marca de tiempo Unix.

Según Anthropic, cada inicialización de srand48 de las semillas de las curvas sobre cuerpos primos fue una marca de tiempo Unix de una fecha entre mayo de 1997 y abril de 1998. Para P-256, la salida del código publicado muestra la marca «1997-08-16 01:52:34», y su semilla es el candidato número 1.842 de esa ejecución.

Anthropic afirma que el hallazgo no es una rotura criptográfica, ni un ataque nuevo, ni una debilidad de las curvas de ECDSA, y que hace «mucho menos plausible» que se eligieran con puertas traseras: las semillas salieron de un generador corriente iniciado con el reloj, algo que ahora cualquiera puede reproducir.

Hazlo tú: reproduce la semilla de P-256

Ilustración: sobre un banco de trabajo, un despertador mueve con engranajes una jaula de dados que suelta una tira perforada; al lado, un aparato blanco con el destello de Claude, y una investigadora comprueba, entusiasmada, que la tira coincide con otra idéntica.
📷 Imagen generada con IA

Anthropic publica en la misma página el código que reproduce las semillas. Basta con guardarlo en un fichero, por ejemplo semillas.py, y ejecutarlo con Python. El programa convierte cada fecha en una marca de tiempo Unix, arranca el estado de lrand48 tal como lo haría srand48, con los 16 bits bajos fijados, y va sacando candidatos de 20 bytes hasta llegar al número indicado.

En la salida hay una línea por curva. La de P-256 dice: «P-256 1997-08-16 01:52:34 1842 C49D360886E704936A6678E1139D26B7819F7E90». La última columna coincide con la semilla publicada de P-256, C49D3608 86E70493 6A6678E1 139D26B7 819F7E90, y con la que figura en la lista de Filippo Valsorda.

Lo que sigue sin respuesta

Según Anthropic, quedan cabos sueltos. La semilla de la curva binaria B-163 no encaja con nada de lo que ha probado Claude, y se desconoce cómo se generaron los puntos base de P-224, P-256, P-384 y P-521. Tampoco se sabe por qué se saltaron candidatos viables: en P-256, el 876 de la misma ejecución también daba una curva de orden primo del tamaño adecuado.

Anthropic sostiene que, como los candidatos saltados son pocos, no cree plausible que se eligieran curvas debilitadas. Según Anthropic, se prevé donar los 36.864 dólares de la recompensa al Internet Security Research Group.

Conclusión

Una constante explicada y reproducible no demuestra que un algoritmo sea seguro, pero quita de en medio la sospecha de que alguien la eligiera a dedo. Las de SHA-256 se publicaron con su receta; la semilla de P-256 ha tardado décadas en tenerla y, según Anthropic, bastaba con mirar un reloj de 1997.

Fuentes primarias

Comentarios

Sé respetuoso. Los comentarios se moderan.

    La continuación natural

    Aprende IA a tu ritmo con nuestros cursos gratuitos.

    En nuestra plataforma de aprendizaje TAKU podrás acceder a este y muchos otros cursos de manera totalmente gratuita.

    APRENDER CON TAKU

    ← Volver al blog