Esto es lo que pasa con nuestros datos cuando usamos una tarjeta de crédito en Internet
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 por RSA 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.