Está en la página 1de 2

Una historieta sobre RSA

La compañía RSA Laboratories publicó una lista con números muy grandes y desafió a la
comunidad internacional a factorizarlos ofreciendo premios que iban de 10.000 a 200.000
dólares. El desafío se ha convertido en una especie de juego o deporte entre algunos
matemáticos y algunos han ganado un dinero con él.
En 2003 fueron capaces de factorizar RSA-576. En noviembre de 2005, y después de 18
meses de cálculos, consiguieron factorizar el número RSA-640, un número de 200 cifras.
Hace un par de años Thorsten Kleinjung de la Universidad de Bonn y sus colaboradores
de la compañía japonesa NTT y de la Ecoles Polytechniques Fédérale de Lausannes
(EPFL) conseguieron factorizar un número específico no aleatorio de 307 cifras que en
binario tiene 1017 bits y que, por cierto, no está en la lista mencionada.
El sistema por defecto de RSA está basado ahora en números de 1024 bits. Ya en 1999
se aconsejó pasar del sistema de 512 bits al de 1024, y es de esperar que a partir de este
momento se pase a un sistema de 2048, aunque quizás queden muchos años hasta que
se rompa el sistema de 1024 bits. De hecho ya se aconseja el sistema de 2048 y algunos
protocolos como el ssh usan claves públicas de ese tamaño desde hace tiempo.
Para efectuar la factorización, los miembros del grupo de Kleinjung usaron una criba de
números especiales (GNFS o General Number Field Sieve) desarrollada en los ochenta
por Arjen Lenstra (entonces en Bellcore), su hermano Hendrik (UC Berkeley), John Pollard
y Mark Manasse (DEC) y un truco denominada “paso de matriz” que además han
conseguido distribuir ahora en un conjunto de ordenadores emplazados en diferentes
ubicaciones. La idea era buscar un sistema para poder distribuir un algoritmo sobre una
arquitectura dada y sacar ventaja del comportamiento de la caché.
Necesitaron 11 meses de tiempo real y mucho tiempo de CPU (tiempo de computación)
para factorizar este número. Los pasos efectuados y los tiempos empleados fueron los
siguientes:
- Búsqueda de candidatos (tiempo de CPU: 125.7 años de Opteron-248).
- Criba (tiempo de CPU: 5 años de Pentium-D).
- Álgebra lineal (tiempo de CPU: dos meses en dos clusters de NTT con 146 PC).
- Cálculo de raíz (tiempo de CPU: varias horas en el cluster de la Universidad de Bonn).
Fueron capaces de factorizar este número un tanto especial porque al estar relacionado
con un número de Mersenne su estructura permitió calcular su factorización fácilmente.
Hacer lo mismo con números de tamaño equivalente pero aleatorios es, de momento, casi
imposible.
Este equipo de investigadores pretende mejorar sus algoritmos en el futuro y afrontar el
desafío RSA-704 en algún momento. Pero probablemente se tardarán muchos años antes
de que se pueda romper el RSA-1024.
Para aquellos que quieran ganar el dinero del premio pueden consultar los desafíos RSA
e intentarlo si saben suficiente informática y teoría de números.
Aunque algunos han propuesto que quizás ciertos individuos puedan esclavizar con un
virus decenas de miles de videoconsolas en red tipo Play Station 3 (optimizadas para
cálculos con números) para así romper los códigos aleatorios RSA y efectuar fraudes, la
posibilidad es reducida, sobre todo si los demás les sacamos ventaja con claves cada vez
más grandes.
Ordenadores más potentes permiten romper más fácilmente los códigos, pero también
nos permiten a los demás cifrar mensajes con números más grandes.
Las matemáticas tienen a veces rentabilidad económica inmediata. El algoritmo RSA fue
patentado (la patente expiró hace pocos años) y hay una empresa que explota la idea. Sin
RSA el comercio electrónico sería imposible.
Por cierto, el número de 307 cifras en cuestión y su factorización son:

115942057407257306436980714887689464075389979170
201772498686835353882248385996675660800060954080
051794720539932612302048744028604353028619141014
409345351233471273967988850226307575280937916602
855510550042581077117617761009413797078797380618
700843777718682868088984471282200293520180607475
5 4 5 1 54 1 3 7 0 7 1 1 0 2 3 8 1 7 =
558536666199362912607492046583159449686465270184
88637648010052346319853288374753
×
207581819464423827645704813703594695162939708007
395209881208387037927290903246793823431438841448
348825340533447691122230281583276965253760914101
891052419938993341097116243589620659721674811617
49004803659735573409253205425523689

También podría gustarte