Los números inexplicables detrás de HTTPS
La criptografía de curva elíptica (ECC) sustenta las conexiones seguras que los navegadores establecen con los sitios web, permitiendo el intercambio crucial de una clave secreta compartida a plena vista. Esta hazaña matemática se basa en elliptic curves, donde ciertas operaciones son computacionalmente triviales de realizar, pero prácticamente imposibles de revertir. La curva P-256, un estándar publicado por el NIST en el año 2000, se convirtió en una piedra angular de TLS 1.3 y HTTPS, obligatorio para prácticamente todas las aplicaciones.
Durante más de dos décadas, los criptógrafos albergaron una profunda inquietud con respecto a estas curvas del NIST. Los parámetros que definen su forma incorporaban "semillas" arbitrarias proporcionadas por la NSA, sin una explicación pública sobre su origen. Esta falta de transparencia alimentó las especulaciones: ¿podría la NSA haber elegido deliberadamente estas semillas para insertar una puerta trasera secreta, permitiéndoles un acceso único a las comunicaciones cifradas?
Las infames revelaciones de Snowden sobre el generador de números aleatorios Dual_EC_DRBG amplificaron estas sospechas, demostrando que un estándar diferente influenciado por la NSA estaba efectivamente comprometido. Sin embargo, es fundamental distinguir el Dual_EC_DRBG de las curvas elípticas del NIST. Si bien el incidente anterior hizo comprensible una teoría de conspiración sobre P-256, nunca constituyó una prueba de una puerta trasera en las curvas elípticas en sí mismas.
Claude ignoró la famosa pista y encontró una marca de tiempo
Durante décadas, un rumor tentador, atribuido al matemático de la NSA Jerry Solinas, sugería que la semilla de P-256 se originó al aplicar hash a una frase memorable. Esta explicación, aunque nunca fue corroborada del todo, llevó a los investigadores a búsquedas infructuosas de la "frase de broma" que mencionó Solinas, como "give Bob Reiter and Jerry Solinas a raise", la cual no pudo recordar antes de su fallecimiento en 2023. Esto dio lugar a una recompensa de larga data por la solución, alimentando la especulación.
Claude, sin embargo, ignoró esta famosa pista. En lugar de perseguir una frase olvidada, el modelo de Anthropic exploró patrones comunes de generadores de números pseudoaleatorios (PRNG). Identificó artefactos estadísticos, como un bit superior consistentemente puesto a cero, característico de ciertos generadores heredados. Utilizando algoritmos de reducción de red, Claude trabajó hacia atrás desde estas "huellas digitales" para reconstruir el estado interno del generador.
El resultado clave: las semillas de varias curvas primas del NIST, incluida P-256, coincidían con las salidas de lrand48. Este conocido generador de la biblioteca C de la era Unix, ampliamente utilizado en la década de 1990, se inicializaba a partir de marcas de tiempo simples de Unix. Para P-256 específicamente, la reconstrucción apunta a que lrand48 fue sembrado el 16 de agosto de 1997, a las 01:52:34 UTC, con la semilla oficial de P-256 correspondiente a su número 1,842 generado. Otras curvas del NIST, como P-192, también se alinearon con las salidas de lrand48 a partir de marcas de tiempo entre mayo de 1997 y abril de 1998.
La matemática detrás del rápido avance forense
El avance de Claude dependió de reconocer sutiles "huellas digitales" estadísticas dentro de los valores de las semillas. Identificó que las semillas proporcionadas por el NIST exhibían características consistentes con lrand48, un generador de números pseudoaleatorios (PRNG) común de las bibliotecas C de los años 90. Específicamente, Claude notó un comportamiento restringido del bit superior en las salidas generadas.
A partir de estas salidas truncadas, Claude reconstruyó ingeniosamente el estado interno del PRNG. Empleó lattice-reduction methods —una técnica sofisticada para encontrar vectores cortos en redes de alta dimensión— para realizar ingeniería inversa del estado del generador, incluso con información incompleta. Esto le permitió rastrear los números aleatorios hasta sus condiciones iniciales.
La velocidad de esta reconstrucción fue notable: menos de media hora para cinco curvas NIST. El bloc de notas interno de Claude incluso mostró que expresaba sorpresa, cuestionando si se encontraba en un entorno de prueba simulado dado el rápido éxito. Para P-256, el generador comenzó el 16 de agosto de 1997, a las 01:52:34 UTC, y la semilla oficial fue el número 1,842 que produjo.
Anthropic verificó rigurosamente estos hallazgos, publicando código reproducible que permitió a investigadores independientes regenerar las semillas reportadas carácter por carácter en segundos. Este proceso también resolvió los orígenes de varios puntos base de ANSI X9.62 y NIST, vinculándolos a la biblioteca FreeLIP de Arjen Lenstra. Anthropic reclamó una recompensa de larga data de $36,864 por este descubrimiento y la donó al Internet Security Research Group (ISRG). Más detalles, incluido el artículo de investigación, están disponibles en Anthropic Research: ECDSA Curve Origins.
¿Te está gustando? Recibe uno así en tu bandeja cada mañana.
un correo al día · date de baja en dos clics · sin rastreadores de terceros
Una respuesta tranquilizadora, con cabos sueltos
Revelar los orígenes de la marca de tiempo ofrece una tranquilidad significativa, no una crisis criptográfica. Una marca de tiempo Unix, que proporciona aproximadamente 30 bits de elección, presenta un espacio de búsqueda drásticamente menor de lo que requeriría una puerta trasera diseñada deliberadamente. Esta libertad limitada significa que una debilidad oculta es altamente improbable.
Fundamentalmente, este descubrimiento no rompe TLS, no revela claves privadas ni falsifica firmas. P-256 sigue siendo seguro, sin requerir parches urgentes ni una revisión del protocolo. El análisis de Anthropic, y la posterior verificación independiente, confirmaron que las curvas son más limpias, no más débiles.
Sin embargo, quedan preguntas pendientes. La semilla de la curva binaria B-163, por ejemplo, todavía carece de una explicación completa. Los orígenes precisos de ciertos base points —las coordenadas iniciales en la curva elíptica— también esperan una aclaración completa, aunque algunos han sido vinculados a la biblioteca FreeLIP de Arjen Lenstra.
Además, los criptógrafos todavía se preguntan por qué se seleccionó un candidato P-256 calificado sobre otros que también cumplían con los criterios. Si bien el trabajo de Claude redujo drásticamente las sospechas en torno a las curvas NIST, proporciona un capítulo crucial en su historia, no un relato definitivo de cada elección de diseño.
Preguntas frecuentes
¿Qué descubrió Claude sobre las semillas de las curvas NIST?
Claude de Anthropic rastreó varias semillas de curvas NIST hasta las salidas del generador de números pseudoaleatorios lrand48, inicializado con marcas de tiempo Unix.
¿Significa el descubrimiento que P-256 tenía una puerta trasera?
No. El proceso basado en marcas de tiempo deja muy poca libertad para hacer plausible una puerta trasera intencional, y el hallazgo no permite ataques contra P-256.
¿Cómo reconstruyó Claude las semillas?
Reconoció patrones estadísticos en las salidas de lrand48 y utilizó técnicas matemáticas, incluida la reducción de redes (lattice reduction), para recuperar los estados probables del generador.
¿Están explicados ahora todos los orígenes de las curvas?
No. Algunos orígenes de semillas y elecciones de puntos base siguen sin resolverse, incluida la semilla de la curva binaria B-163 y la selección de un candidato P-256.

