Luyu, desde Aofeisi
QbitAI | Cuenta oficial de WeChat: QbitAI
A primera hora de la mañana, el mundo de la IA ha vuelto a explotar...
No es otra cosa que la ola de resolución de problemas de la IA, que ya ha ido a desenterrar viejas deudas de más de veinte años de la comunidad criptográfica.
Battle royale para todos, esta vez le toca aClaude——
Hace un momento, según lo revelado por Anthropic, Claude utilizóEn menos de media hora, se aclaró la forma en que se generaron las semillas de las cinco curvas elípticas estándar de NIST.

Esta serie de números que la industria ha utilizado durante más de veinte años llegó a incluirse en estándares criptográficos, pero cómo se eligió originalmente es algo que nadie ha podido explicar.
La gente incluso localizó a la persona implicada, y las pistas apuntan a una frase«Aumentar el salario de Bob y Jerry»de la operación de hash de contraseñas.
¡Y entonces llegó el giro dramático! Claude dijo: ¡grave error!
La verdadera respuesta proviene deTiempo, un reloj de computadora de los años 90.
Y además, este caso sin resolver ya ha sido verificado de forma independiente por quien ofreció la recompensa.

Resolver en media hora un caso misterioso de criptografía
Todo hay que rastrearlo desde un conjunto de tecnologías utilizado para "verificar la identidad".
ECDSA, cuya sigla corresponde al Algoritmo de Firma Digital de Curva Elíptica.
Permite al receptor comprobar si un dato fue emitido por el firmante que lo afirma y si fue modificado después de la firma. En 2000, fue incluido por el Instituto Nacional de Estándares y Tecnología (NIST) de Estados Unidos en el estándar de firma digital FIPS 186-2.
Antes de usar este algoritmo, hay que seleccionar primero algunos parámetros matemáticos públicos, incluidas las curvas P-192, P-224, P-256, P-384 y P-521.
La controversia proviene precisamente de susSemillaencima.

Se puede entender la semilla como el material de partida para generar los parámetros de la curva: con la semilla en mano y siguiendo los pasos de cálculo estipulados por el estándar, se puede verificar si los parámetros posteriores coinciden.
Pero¿Por qué precisamente esta semilla?, y absolutamente nadie lo sabía.
Hasta Jerry Solinas, quien en su momento proporcionó las semillas, ya tiene la memoria confusa; solo recuerda vagamente que convirtieron en números una frase que podría haber sido una broma sobre un aumento de sueldo, y luego le añadieron un contador.
Por eso, durante estos más de veinte años, todos han estado especulando en esta dirección, y el ingeniero de criptografía Filippo Valsorda incluso publicóOrden de recompensa, invitando de manera muy pública a todos a buscar los orígenes de estos cinco grupos de semillas.

Todo terminó sin resultado, hasta queClaudeHa intervenido.
Según la descripción de Anthropic, los empleados no informaron al modelo de investigación interno sobre la pista de la consigna de aumento salarial al entregarle el problema.
Claude entonces se puso a especular por su cuenta: quizás estos números provenían deBiblioteca del lenguaje C de los años 90el generador de números pseudoaleatorios que hay dentro.
Porque los números generados por este tipo de programas parecen caóticos, pero detrás siguen patrones fijos. Basta con reconocer el patrón para tener la oportunidad de deducir de forma inversa el proceso de generación.
Luego Claude escribió unPrograma de escaneo, desplazando y examinando bit a bit los dígitos binarios de las semillas públicas, probó 34 combinaciones de generadores y métodos de extracción de salida.
Se descubrió que, al dividir cada una de las cuatro semillas en cinco enteros de 32 bits, los bits más altos de estos 20 enteros,Increíblemente, todo son 0。

Caso resuelto, el sospechoso debería serGenerador de números aleatorios lrand48。
Internamente, lrand48 guarda un entero de 48 bits; en cada llamada, multiplica este entero por una constante fija, le suma otra constante y, al final, conserva solo los 48 bits bajos del resultado como el estado de la siguiente ronda.
Pero el resultado solo entrega los 31 bits altos de este; si se coloca en 32 bits, los restantes solo pueden rellenarse con 0.
Una vez encontrada la máquina, Claude recurrió además alalgoritmo de reducción de bases de redes LLLpara recuperar el estado truncado de la semilla.

A continuación solo queda una pregunta: ¿cómo se arrancó inicialmente?
La función encargada de la inicialización se llama srand48; coloca el valor de entrada en los 32 bits altos del estado de 48 bits, fija los 16 bits bajos en 0x330E, y luego retrocede siguiendo la relación de recurrencia, apuntando alas marcas de tiempo Unix。
Estas entradas de inicialización se concentran entreDe 1997/5 a 1998/4。
Es decir,convertir un instante de tiempo en un entero, entregarlo al generador y luego extraer los números de una forma fija permite recuperar de nuevo la semilla del estándar.
Tomando P-256 como ejemplo, el momento de inicialización correspondiente es: 16 de agosto de 1997, 01:52:34 UTC.
Ejecutando el generador desde ese momento y tomando el grupo 1842 de candidatos, se obtiene precisamente esa semilla que empieza por C49D. Los otros cuatro casos también coinciden uno a uno.

Por supuesto, la empresa A también indicó que este resultado aún no llena todos los vacíos históricos.
Los investigadores descubrieron que el programa de la época omitió algunas curvas candidatas que también parecían cumplir las condiciones, por razones que siguen sin estar claras; la semilla de B-163 y el método de generación de los puntos base de algunas curvas tampoco han sido explicados aún.
Sin embargo, el nuevo resultado también significa que estas curvas no presentan ninguna vulnerabilidad de seguridad latente, por lo que pueden usarse con tranquilidad.
Enlaces de referencia:
[1]
https://www.anthropic.com/research/ecdsa-curve-origins
[2]
https://x.com/sweis/status/2111165738836717980
[3]
https://words.filippo.io/seeds-bounty/
