Cualquier empresa que ofrezca servicio de venta online sabe
que los beneficios de esta actividad están directamente relacionados
con la sencillez del procedimiento de cara al cliente. Hoy en día,
podemos
realizar pagos alrededor del mundo de manera instantánea con tan solo 3 o 4 clics de ratón,
y ya ni hablemos de las facilidades que ofrecen los pagos in-app en los
smartphones. Sin embargo, este procedimiento tan trivial no es más que
la punta de un iceberg de algoritmos criptográficos y números de enormes magnitudes. Un iceberg que esconde en su interior nada más y nada menos que los sensibles datos de nuestras tarjetas de crédito, pero
¿cómo se construye tal fortaleza?Como en toda buena historia, primero debemos presentar a los personajes: seguro que todos conocéis los
números primos (números naturales mayores que 1 que solo tienen dos divisores, él mismo y la unidad): 2, 3, 5, 7, 11… y por otro lado, los
números semiprimos (números naturales que son el producto de dos números primos, no
necesariamente distintos): 4 (2 x 2), 6 (2 x 3), 9 (3 x 3), 10 (2 x 5),
14 (2 x 7)… De hecho,
cada vez que realizamos una compra online, los números primos entran en acción.
Antes de que los números de nuestras tarjetas sean enviados
a través de internet, deben ser encriptados, y una vez lleguen al
receptor, son desencriptados. Uno de los algoritmos más utilizados para
ello, es el
algoritmo RSA (Rivest, Shamir y Adleman), el cual está basado en las
mágicas cualidades de los números primos. El algoritmo RSA utiliza una
“clave pública”, visible para cualquiera, y una
“clave privada” que sólo posee el receptor de nuestro pago.
En esencia
la clave pública es un semiprimo (por ejemplo 15), y
la clave privada son los dos primos cuyo producto forma ese semiprimo (3 y 5), aunque
no es tan sencillo como parece,
además entran en juego otros sistemas de encriptación más enrevesados
para enviar estos números. Y la cosa se pone aún más interesante cuando,
tratar de descifrar estos números, pasa por utilizar los conocidos
números RSA.
Los números RSA son un conjunto de semiprimos que formaron parte del
RSA Factoring Challenge, convocado porRSA Security, una de las mayores compañías de seguridad de redes. Allá por 1991, RSA Security propuso
el desafío de factorizar una serie de semiprimos, a cambio de suculentos premios en metálico,
con la intención de fomentar la investigación y demostrar el potencial
de sus sistemas de seguridad. Este desafío fue declarado inactivo en
2007 debido a los grandes avances en criptografía resultantes en la
época.
Para que os hagáis una idea, el primero de estos números,
llamado RSA-100, fue factorizado tras varios días de procesamiento en un
superordenador de 1991, aunque en la actualidad puede factorizarse en
unas cuatro horas
fácilmente con un Athlon 64 a 2,2 GHz. Sin embargo, con los siguientes en la lista se tardarían meses e incluso años, como el RSA-768, factorizado a finales de 2009, o el
RSA-2048 (el más largo de los números RSA) cuyo premio rondó los 200.000 dólares,
el cual no se espera factorizado hasta dentro de muchos años.
Con estos ingredientes y una serie de procedimientos criptográficos, obtenemos un sistema
prácticamente imposible de descifrar con equipos informáticos convencionales.
Un sistema que hoy por hoy, es capaz de sostener la confianza de
millones de transacciones mundiales que son realizadas cada segundo.