
¿Alguna vez se han preguntado como encriptan sus comunicaciones secretas las grandes multinacionales y los gobiernos de todo el mundo? En mi caso, tal vez víctima del imaginario Hollywoodiense, siempre me había imaginado como utilizaban algún algoritmo super secreto escondido en un recinto de máxima seguridad al modo de la fórmula de la Coca Cola. Nada más lejos de la realidad.
Obviando la posibilidad de que algún gobierno haya descubierto de forma secreta un método de comunicación mejorado, el método público para encriptar cualquier comunicación de forma completamente segura es el denominado RSA, y es increíblemente sencillo. Pese a que, al mismo tiempo, se requieran de miles de millones de años de cálculos para romperlo.
El RSA, cuyo nombre responde a las siglas de los apellidos de sus tres inventores, se basa en el sistema de la criptografía por clave pública y consiste en tres claves que el receptor de un mensaje posee. Dos de ellas - p y d -son secretas mientras que la otra, a la que denominaremos N, es pública.
En el supuesto de que alguien quisiera enviar un mensaje cifrado a otra persona, lo que tendría que hacer es buscar o pedir la clave pública N de esa persona, cifrar el mensaje en base a unos algoritmos públicos y a la clave, y enviar seguidamente el mensaje.
Por su parte, el receptor utilizaría las dos claves secretas p y d que solo él conoce para descifrar el texto. ¿Sencillo no?
Tanto p como d no son más que dos simples números primos mientras que N resulta del producto de ambos tal que: p x d = N. Lo que si comparten los tres es su tamaño; son muy, pero que muy grandes. Para ponerles un ejemplo, les reconfortará saber que su banco cifra sus transacciones vía Internet con cifras del orden de 10^350. En comparación, el número aproximado de átomos del universo es de 10^77.
A partir de aquí, uno podría pensar que solo teniendo N cualquiera podría descubrir el producto de los dos números que dieran como resultado la clave pública para así poder descifrar el mensaje. Y aquí es donde nuestro cerebro nos engaña.

Ronald Rivest, Adi Shamir y Leonard Adleman: co-inventores del RSA.
Resulta que la función factorial es función asimétrica. Eso quiere decir que es muy fácil obtener un número a partir del producto de otros dos números primos (3 x 7 = 21), pero es prácticamente imposible deducir de un número resultante sus dos factores primos.
De hecho, y volviendo a nuestro malvado cracker, el único método que este tendría para intentar descifrar nuestro mensaje secreto sería ir probando todos los productos de números primos hasta encontrar el que diera como resultado nuestro número N. Y es en este punto en donde el tamaño SI importa; Suponiendo que nuestro malvado cracker tuviese acceso a la super computadora más potente de la historia, el tiempo que esta tardaría en hacer los cálculos necesarios para descubrir los números p y d excede sobradamente la edad del universo (unos 15 mil millones de años).
Así pues, en la practica, es imposible descifrar un mensaje encriptado con el algoritmo RSA. Pero entonces ¿porqué nos preocupamos tanto por la seguridad en la red?
Eso es porqué, ante la imposibilidad de romper el código, los piratas informáticos han vuelto al método tradicional. Básicamente se cuelan en sistemas y ordenadores con troyanos y programas parecidos para intentar encontrar las dos claves secretas p y d que permitan descifrar nuestro mensajes, o directamente espiarnos mientras redactamos o leemos los mensajes.
En cualquier caso pueden leer más sobre el tema en el genial libro de Simon Singh The Code Book: The Secret history of codes and code-breaking, que mezcla de manera muy amena la ciencia de la criptografía con las más increíbles historias de espías que a menudo se esconden tras de ella.

Además, en el artículo de la Wikipedia sobre el asunto explican como cifrar cualquier mensaje con el algoritmo RSA.
Un apunte final. Pese a que Rivest, Shamir y Adleman quedarán como los inventores del código RSA en los anales de la historia, es lícito destacar que cuatro años antes, en 1971, tres agentes de la inteligencia británica hicieron el mismo descubrimiento; Clifford Cocks, Malcolm Williamson y James Ellis se vieron obligados a mantener el secreto de su descubrimiento por trabajar bajo el mando del servicio de inteligencia británico, viendo como tres estudiantes del MIT les robaban el reconocimiento público cuatro años más tarde. No sería hasta pasadas tres décadas, en 1997, cuando Cocks y sus dos otros compañeros recibirían el reconocimiento merecido.
Actualización:
Cada vez que ves un candadito en el navegador web cuando estás en un servidor seguro y aparece la «s» en https en la barra de direcciones, estás usando criptografía de clave pública (RSA) sin saberlo.
@Alvy en esta entrada de Microsiervos.


como siempre muy interesante, la verdad es que siempre me habia preguntado como funcionaban las transacciones por internet y porque no conseguian nunca interceptar la informacion o demas.