Cifrado para proteger la privacidad (II)

El mayor problema con los cifrados de clave simétrica, es decir los que usan la misma clave para cifrar y descifrar, está en la comunicación de la clave para que los destinatarios puedan descifrar.

En 1976 dos desarrolladores, Diffie y Hellman, publicaron un trabajo donde describen una propuesta para intercambiar claves en un entorno no seguro por participantes sin contacto previo.

Voy a explicar de una forma muy simplificada, en que consiste dicha propuesta

Dado que el problema que se da con el cifrado simétrico se produce por la existencia de una sola clave que se usa para cifrar y también para descifrar, conllevando un alto riesgo en la transmisión de la misma, se propone la existencia de dos claves, una secreta secretísima y la otra pública. La pública se puede difundir, es para difundir y la secreta o privada es para guardar con el máximo cuidado. La difusión de la pública no causa mayor problema porque esa clave no descifra contenido cifrado, realmente es para cifrarlo. Si alguien que quiera interceptar contenido la obtiene, no podrá descifrar con ella. Este cifrado también recibe el nombre de cifrado de clave pública.

Otra particularidad que tiene es que lo cifrado con una de las partes solo se puede descifrar con la otra. Esto ayuda a proponer el siguiente escenario:

Sería como en el dibujo de abajo.

Ilustración descriptiva del cifrado

Vamos a suponer que Carlos, que es un curioso, intercepta el mensaje que envió cifrado Alicia a Benito. Como tampoco tiene la clave privada de Benito, le pasa lo mismo que a Alicia: no lo puede descifrar, no lo puede leer y no lo puede modificar. Además, aunque tuviera la clave pública de Benito, estaría en la misma situación.

Todo esto es una explicación, como he dicho anteriormente muy simplificada, detrás de ello hay más cosas y otros usos, firma digital por ejemplo, que sirve para certificar que un contenido cifrado o no, lo ha enviado quien dice ser o para comprobar si un contenido ha sido modificado por el camino desde el envío hasta la entrega. En esta operación, el que emite el mensaje usa su clave privada para generar un “cifrado” antes de emitirlo, si el que lo recibe ha intercambiado la clave pública con el emisor, tiene ocasión de descifrar con la clave pública del emisor, y si lo consigue puede pensar que el contenido está íntegro, en caso contrario puede pensar que ha podido ser modificado por el camino y desconfiar del contenido.

Esto se puede hacer sobre contenido cifrado o no cifrado: firmar y emitir o cifrar, firmar y emitir.

Como en la lista anterior, pero obviando los dos primeros puntos que vamos a considerar que ya están hechos:

En el dibujo de abajo se ilustra el proceso de firmado sin cifrado.

Ilustración descriptiva del firmado

Un año después Rivest, Shamir y Adleman publicaron un trabajo en el que describían los cálculos matemáticos más adecuados para implementar el cifrado de clave pública y a partir de ahí empezaron las aplicaciónes de este sistema.

Realmente el funcionamiento no es difícil de entender: dos claves por participante, una pública y visible por todo el mundo y otra privada, una descifra lo que cifra la otra, una no puede descifrar lo que ya ha cifrado. Pero sí es difícil encontrar en nuestro entorno analógico algo que podamos asimilarlo, al contrario que con el cifrado simétrico que es parecido a como cerramos con llave una puerta.

Aunque pueda parecer cosa de hackers, sin esta forma de cifrado no funcionarían muchas cosas en internet: los certificados digitales como los de la FNMT (Fábrica Nacional de Moneda y Timbre) se basan en claves públicas y privadas, las webs seguras, esas que empiezan con https y las del candadito funcionan con certificados digitales y por tanto utilizan cifrado de clave pública, también en el cifrado punto a punto de sistemas de comunicación como el correo electrónico.

Es decir, que no es cosa de frikis, si no piedra angular en el funcionamiento de internet.