web analytics

Posts etiquetados con ‘RSA’

¿Estamos seguros?

Vivimos en un mundo de claves secretas para proteger nuestros datos: correo electrónico, transacciones bancarias, tarjetas de crédito, comunicaciones por móvil, … ¿Nos preguntamos cómo funciona el sistema? Todo está basado en la criptografía, y por lo tanto, en las matemáticas.

Hasta hace poco, la herramienta principal eran los números primos combinados mediante algoritmos de diferente índole, que dotarán de mayor o menor seguridad a nuestra clave. El cifrado de seguridad mediante el uso de números primos surgió en 1975 con W. Diffie y M. Hellman, de la Universidad de Stanford en California, quienes idearon el denominado cifrado asimétrico o clave pública (el llamado protocolo Diffie-Hellman). Diffie era estudiante ce Hellman, y debemos añadir un tercer personaje a la historia, R.C. Merkle. Ellos iniciaron una batalla en los setenta y ochenta del siglo XX con la agencia de seguridad del gobierno norteamericano que merece una entrada aparte.

Diffie, Hellman y Merkle

La clave pública usa las denominadas funciones matemáticas trampa, que hacen posible el cifrado, pero virtualmente imposible el descifrado. Son funciones unidireccionales. Esto quiere decir, que es muy fácil “ir” pero prácticamente imposible “volver”. Vamos a explicarlo con un ejemplo: si tomamos dos números primos al azar, como el 7 y el 13, y los multiplicamos, obtenemos el número 91. El proceso indirecto se trata de deshacer la operación y saber qué números dan 91, mediante diferentes operaciones. Porque la multiplicación, no es ni mucho menos, la única operación de cifrado. El sentido común sugiere, que para cifras pequeñas, podríamos hacer un listado de primos y combinarlos de todas las formas posibles para recuperar el 91. Sin embargo, los cifrados de nuestras redes sociales o cuentas bancarias manejan dígitos de gran envergadura. Por ejemplo, consideremos el número 1.409.305.684.859. Este número es el resultado de multiplicar dos números primos: 705.967 y 1.996.277. Encontrar este par de números,no es una tarea inmediata si usamos la lista de primos como en el caso del 91. Este cálculo necesita la implementación de un software, porque desde Euclides ya sabemos que hay infinitos números primos. Además, los ordenadores sólo trabajan con un sistema binario, lo que supone una gran limitación, pues se introducen aproximaciones en los números para poder expresarlos en base dos.

Uno de los sistemas de encriptación más famosos es el denominado RSA, siglas correspondientes con los apellidos de los criptógrafos matemáticos  Rivest, Shamir y Adlerman, que desarrollaron una de las versiones de criptografía de clave pública en 1977. La seguridad del algoritmo procede de la factorización de números enteros. Los mensajes se representan mediante números y el mecanismo se basa en la operación producto de dos números primos muy grandes, elegidos al azar y mantenidos en secreto. El orden de estos números es menor de 10200 hasta el momento; sin embargo, la capacidad creciente de cálculo de los ordenadores prevé un crecimiento del orden de precisión en las encriptaciones con números primos aún más gigantescos.

Ron Rivest, Adi Shamir y Leonard Adleman

Un dato curioso es que en 1994, se lanzó un reto a la comunidad matemática para derribar el sistema de encriptación RSA. Un grupo de 600 matemáticos con la ayuda de 1600 voluntarios consiguieron factorizar según el método RSA, un número de 129 cifras. Para desencriptar claves con cifras superiores a 1024, se necesitarían todos los ordenadores del universo desencriptando en paralelo y aún así, su tiempo de computación se calcula semejante a la edad del universo: decenas de miles de millones de años.

Uno de los paradigmas de este siglo es la computación cuántica. Y esa futura encriptación cuántica es aún un proceso emergente. La ventaja fundamental de la encriptación cuántica frente a la clásica, es una propiedad fundamental extraída de las leyes de la mecánica cuántica. Si un tercer intruso en la lectura del mensaje (el remitente, que encripta la clave, y el receptor, que la desencripta, son los dos principales roles en la emisión del mensaje) intenta hacer “eavesdropping”, término acuñado para la escucha secreta tradicionalmente relegado al ámbito de seguridad, el proceso de creación de la clave se altera, advirtiéndose el intruso antes de que se transmita la información privada. La explicación radica en el principio de incertidumbre de Heisenberg, que dicta que si realizamos una medida sobre un sistema cuántico, dicho sistema se altera después de la medida y permanece en un estado fijo, no entrelazado.

Las claves de la mecánica cuántica han de ser descifradas a nivel subatómico, pues la mecánica cuántica es la teoría del “pequeño mundo”, donde nos movemos en longitudes menores a 10-15 fermi, que es el tamaño de un núcleo atómico. Por tanto, las lecturas se harán con láser, capaz de alterar partículas cuánticas como los electrones, mediante la incidencia de fotones.

Como podemos ver, la teoría de la criptografía clásica, sólo utiliza matemáticas que podríamos llamar tradicionales, como es la teoría de números y, en particular, los números primos. Sin embargo, las teorías más contemporáneas, a partir de 1984, utilizan la mecánica cuántica, tal y como contaremos en una próxima entrada de este blog.

Para terminar, haremos unos pequeños comentarios curiosos a la teoría de la encriptación clásica. Por ejemplo, que los Estados Unidos y Canadá sólo permiten el uso de ciertas claves criptográficas en su territorio, que no tienen autorizada la venta ni la exportación. Las claves se hallan en una especie de pastillas que en contacto con el oxígeno exterior, se solidifican en una masa informe y cuya lectura con rayos X destruye la información, convirtiéndose en ceros (recordemos aquellos mensajes a James Bond) .

Sobre los números primos, existe el proyecto GIMPS (Great Internet Mersenne Prime Search), en el que cualquiera puede colaborar con su ordenador. Se trata de que el ordenador trabaje en paralelo con los ordenadores de otros muchos colaboradores voluntarios en este proyecto común: el descubrimiento de un tipo particular de números primos, los denominados primos de Mersenne, con un mínimo de diez millones de cifras. El pasado enero, todos los colaboradores de GIMPS, proclamaron el descubrimiento de un número primo de Mersenne con más de 22 millones de cifras, cuyo valor es 274207281-1. La computación sólo se llevará a cabo en tiempos muertos de su ordenador, mientras el salvapantallas esté encendido, por lo que no impedirá su trabajo habitual.

____

Manuel de León (CSIC, Fundador del ICMAT, Real Academia de Ciencias, Real Academia Canaria de Ciencias, ICSU) y Cristina Sardón (ICMAT-CSIC).

Etiquetas: , , ,
Categorias: General