Cognition anunció el 9 de septiembre que su investigador Eric Lu utilizó Devin, el agente de programación desarrollado por la propia empresa, para completar la factorización de RSA-260, el mayor récord público actual en el desafío de factorización RSA. El récord anterior, RSA-250, se quedó en febrero de 2020, seis años y medio antes.
RSA-260 es un número decimal de 260 dígitos, descompuesto en dos primos de 130 dígitos. El algoritmo utilizado no es nuevo: sigue siendo la criba general del cuerpo de números (GNFS), el método estándar para factorizar enteros grandes desde la década de 1990. El cambio está en la capa de implementación: todo el proceso pasó de clústeres de CPU a GPU.
En qué se gastaron los 4.900 GPU-días
El desglose que da Cognition es: selección de polinomios, 643 GPU-días; criba reticular, 3.813 GPU-días; resolución del sistema lineal, 467 GPU-días. El paso de criba consume más de tres cuartas partes de la capacidad de cómputo, algo característico del GNFS.
La pieza clave es una criba reticular en GPU llamada glas, reescrita en CUDA, combinada con una versión modificada de CADO-NFS y una variante optimizada para GPU del algoritmo de Wiedemann por bloques. Según Cognition, esta implementación redujo el coste unitario de la criba en aproximadamente un orden de magnitud.
CADO-NFS es precisamente el software de código abierto que usó el equipo francés para factorizar RSA-250 en 2020. Misma base de código, distinto backend de hardware: la diferencia de seis años queda reflejada en estas dos cifras.
Lo que hace Devin aquí es trabajo de ingeniería, no un descubrimiento matemático: optimización de código, ajuste de parámetros, gestión del clúster. Cognition lo describe en su publicación como un "ingeniero de software lo bastante bueno como para resolver problemas en la intersección entre teoría computacional de números e ingeniería de rendimiento de GPU".
La contribución humana también quedó registrada en los datos públicos: 233 sesiones, 82.702 palabras de instrucciones. En promedio, más de 300 palabras por sesión, cerca del volumen de comentarios de una revisión de código. No se trata de una ejecución sin supervisión, sino de una persona con una herramienta capaz de trabajar de forma continua, comprimiendo en tres semanas un trabajo que antes requería a un equipo coordinado durante meses.
Cómo se ve la extrapolación
Cognition de paso ofreció dos estimaciones extrapoladas, ambas señaladas como cálculos aproximados a los precios actuales de GPU: la dificultad de RSA-1024 sería unas 78 veces la de RSA-260, con un coste de unos 30 millones de dólares; la de RSA-2048 sería 9,12 billones de veces mayor, con un coste escrito como 3,77×10^16 dólares.
La primera cifra merece una pausa. Un orden de 30 millones de dólares es algo que las instituciones estatales pueden costear, y también las grandes empresas. RSA-1024 lleva tiempo sin recomendarse en los estándares, pero todavía persiste en dispositivos embebidos, firmas de firmware antiguas y algunas cadenas de certificados que ya nadie mantiene. La diferencia de aproximadamente mil millones de veces entre ambas cifras es toda la razón por la que los 2048 bits todavía se sostienen.
Si se mira la línea temporal de récords: en 1999, RSA-155 se factorizó con una estimación pública de unos 8.000 MIPS-año; a finales de 2009, RSA-768 convertido a un solo núcleo Opteron de 2,2GHz equivalía a unos 2.000 años; en 2020, RSA-250 fueron 2.700 núcleos-año; esta vez son 13,5 GPU-años. Los tres primeros avances vinieron sobre todo de la ley de Moore y del ajuste de algoritmos, con un ritmo de aproximadamente una década por hito. En este salto se superponen el cambio de generación de hardware y la cuestión de "quién escribe ese código CUDA".
Lo que todavía no tiene respuesta
Si el artículo y el código se publicarán por completo, y si glas será de código abierto, el anuncio de Cognition no lo dice. Ningún tercero independiente ha reproducido aún el cálculo: RSA-250 fue validado en su momento de forma cruzada por varios equipos a partir de los parámetros de criba, mientras que este resultado, por ahora, solo cuenta con los datos de una parte.
El resultado de la factorización en sí es fácil de verificar, basta con multiplicar los dos primos. Lo difícil de verificar es la cuenta de costes: qué modelo de GPU, a qué precio unitario, si los intentos fallidos se incluyeron en los 4.900 GPU-días; el anuncio no lo desglosa partida por partida. Lo que signifique la cifra de 400.000 dólares para una evaluación de seguridad depende precisamente de esos detalles.
Fuentes: blog técnico oficial de Cognition, anuncio de factorización de RSA-250 en caramba.loria.fr, CocoLoop; las cifras en GPU-días y núcleos-año se citan tal como aparecen en cada anuncio original, sin conversión unificada.