sábado, 23 de febrero de 2013

CRIPTOGRAFÍA XVIII



Como íbamos diciendo…estamos en la era de la información, millones de datos se mueven por todo el planeta mediante e-mails, páginas web, teléfonos móviles… Datos financieros, gubernamentales, personales…todo depende de la protección de la información, y por supuesto esto depende de la criptografía. Hasta hace pocas décadas los cifrados sólo eran imporatantes para gobiernos y ejércitos,pero ahora los negocios tiene un gran peso y en poco tiempo lo tendrá la información personal para proteger nuestra privacidad…aunque viendo el facebook, de momento la privacidad no nos importa mucho. La criptografía de clave pública (especialmente la cifra RSA) ofreció una clara ventaja frente a los criptoanalistas, pues si el valor de N es suficientemente alto, encontrar p y q cuesta un tiempo extremadamente indecente. (ver: http://cervellet.blogspot.com.es/2010/04/criptografia-xvii.html) . Además la criptografía de clave pública no presenta la debilidad de un problema de distribución de claves. 
Pero los gobiernos tienen un problema con esto…no pueden controlar las comunicaciones de la gente perversa y maligna. Ahora el dilema es buscar la manera de que las personas decentes y empresas puedan usar comunicaciones encriptadas, pero no los criminales.
En los años 80 un tal Phil Zimmermann pensaba que todo el mundo tenia derecho a la privacidad de la codificación RSA, el principal problema era la cantidad de poder informático necesario para producir la cifra. Tal potencia dejaba fuera de juego a cualquiera que no fuera un gobierno, el ejército o una gran empresa con potentes ordenadores. Así que Zimmermann puso su empeño en crear un producto RSA para las masas, lo que además debía de incluir un interfaz simple y que no sobrecargara un ordenador personal corriente. Llamó a su producto "Pretty Good Privacy" o PGP (Privacidad bastante buena).
Pongamos un ejemplo para poder entender esto.
Normalmente si Alicia quiere usar RSA para codificar un mensaje para Benito, lo que debe hacer es buscar la clave pública de éste y luego aplicarla al mensaje. A la inversa, Benito decodifica el texto usando su clave privada y de esa forma invertir la función de una sola vía. Estos dos procesos requieren de una alta manipulación matemática, que puede tardar varios minutos. Si tenemos que enviar un centenar de mensajes, todo se vuelve tremendamente desesperante. 
Zimmermann utilizó un ingenioso truco que utiliza la codificación asimétrica RSA junto con la anticuada codificación simétrica (más simple matemáticamente). El único problema de la codificación simétrica es la distribución de claves, pues ha de ser transportada de manera segura del emisor al receptor. Ahí entra la RSA, pues ésta se puede utilizar para codificar la clave simétrica.
Imaginemos otra vez. Alicia quiere enviar un mensaje cifrado a Benito y comienza a codificarlo con una cifra simétrica (por ejemplo la cifra IDEA, similar a DES). Para codificar con IDEA Alicia necesita elegir una clave, pero para que Benito descifre el mensaje Alicia debe pasarle de alguna manera la clave. Para ello Alicia busca la clave pública RSA de Benito y la usa para codificar la clave IDEA. En total Alicia envía a Benito dos cosas: el mensaje codificado con la clave IDEA y la clave IDEA codificada con la cifra asimétrica RSA. Una vez llega el mensaje a Benito, éste utiliza su clave privada RSA para descodificar la clave IDEA y con esta descifrar el mensaje.
Aunque parezca lioso, la ventaja es que en mensajes grandes se está codificando con una rápida cifra simétrica y sólo la clave IDEA está siendo codificada con RSA. Uno de los problemas informáticos estaba resuelto, ahora había que ponérselo fácil a cualquier persona mediante una interfaz agradable y sencilla.
Generar una clave RSA no es tarea fácil, hace falta encontrar un par de números primos gigantes. Ahora Alicia puede crearla fácilmente, el programa PGP lo hará por ella y además los movimientos del ratón   introducirán un factor aleatorio para asegurar que todo usuario tenga sus propias claves pública y privada únicas. Luego sólo tendrá que dar a conocer al mundo su clave pública.

Otro aspecto práctico del PGP, la firma digital. Normalmente utilizamos la clave pública para codificar un mensaje y el receptor utiliza la clave privada para descifrarlo. Pero, ¿y si lo hacemos al revés? ¿Para que?
Imaginemos que recibimos un correo de un amigo, que certeza tenemos de que lo ha escrito él y no otra persona. En una carta normal podríamos comparar la firma escrita a mano, pero en un mail no podemos asegurar que lo ha escrito el que firma abajo. Sería un problema para los bancos no saber si quien pide que se trasladen 22 millones de euros de un banco de suiza a uno de las islas caimán es realmente la persona que dice ser. Por eso si codificamos con la clave privada (en lugar de con la pública), cualquiera puede descifrar el mensaje (porque se descifra con la clave pública), pero eso nos asegura que la carta ha sido escrita únicamente por Alicia (al estar codificada con la clave privada de Alicia). Si combinamos ambas opciones podemos garantizar la privacidad y al mismo tiempo la autoría. Alicia codifica el mensaje con su clave privada y luego codifica el texto cifrado resultante con la clave pública de Benito. Benito usará su clave privada para acceder al mensaje cifrado y luego usará la clave pública de Alicia para descodificarlo.
Todo esto se vuelve muy complicado, pero Zimmermann desarrolló su programa para que lo hiciera todo automáticamente. La cifra IDEA codifica el mensaje, con RSA codificamos la clave de IDEA y además incorpora la firma digital. 
Con el software Alicia teclea su texto, elige la opción PGP, elige el destinatario (Benito) y PGP se encarga de buscar la clave pública de Benito y realizar todos los procesos matemáticos para la codificación y envío cifrado del mail. Con dos simples clicks de ratón. Y Benito hace lo mismo en su ordenador, abre el mail, elige la opción PGP y obtiene el texto descifrado.
Zimmermann descubrió una forma eficiente de dar privacidad al pueblo llano.
Como temió que el gobierno de EE.UU se le echara encima por realizar semejante barbaridad (no se podría espiar a los malos), decidió en lugar de vender el software, distribuirlo libremente por internet antes de que lo prohibiera la legislación. Poco a poco PGP se extendió por todo el mundo.
Esto supuso un grave problema para Zimmermann, pues no disponía de licencia para utilizar el código RSA en su software, lo que lo llevó a juicios e investigaciones por parte del FBI. Fue acusado de ser traficante de armas al exportar PGP a través de internet, pues en EEUU el software de codificación está incluido en la definición de "municiones", junto a los misiles, morteros, etc…

Desde aquí podéis descargar el software PGP: http://www.pgpi.org/

Leer más...