Criptografía for Dummies

Modern Cryptography for Dummies

El mundo de la criptografía es cada día más amplio y variado. Por ese motivo y por la importancia creciente que tiene esta materia en un mundo dominado por la comunicaciones seguras (comercio lectrónico, banca online, privacidad, …) es necesario que el común de los mortales tenga unas ligeras nociones de criptografía moderna.

Sin entrar en tecnicismos que no nos aportan nada y sin enrollarme demasiado quiero presentar algunos de los principios fundamentales de la criptografía a través de unas sencillas analogías.

Esteganografía

La esteganografía consiste, literalmente, en ocultar un mensaje a la vista de los demás. No es una forma de criptografía puesto que tan sólo proporciona seguridad por oscuridad, es decir, nuestro mensaje será invulnerable sí y sólo sí nadie más que el receptor conoce cómo lo hemos ocultado. La criptografía se basa en el principio de Kerckhoffs que ya en 1880 dio por supuesto que cualquier enemigo conoce nuestro sistema de cifrado y la seguridad del mismo debe residir tan sólo en mantener en secreto la clave.

Hoy en día, en el mundo de las comunicaciones digitales, no nos podemos permitir el uso de la esteganografía para ocultar mensajes pero aún así resulta interesante conocer su existencia y sus variantes modernas (como la ocultación de textos en imágenes y vídeos de apariencia anodina) que pueden ser un buen complemento a las técnicas criptográficas a la hora de mantener oculto un mensaje y, además, mantener oculta la comunicación secreta (resultaría sospechoso que 3 compañías petroleras intercambien mensajes cifrados justo antes de una subida del precio de la gasolina, por poner un ejemplo…)

Criptografía de clave privada

Si seguimos el Principio de Kerckhoffs debemos incorporar un nuevo elemento al sistema: la clave.

Si antes bastaba con conocer el método de ocultación para ocultar y encontrar un mensaje, ahora será necesario conocer el método y la clave usada. Así, un método de cifrado será un sistema al que proporcionándole una clave y un mensaje nos devuelve el mensaje cifrado. Y viceversa, si le proporcionamos el mensaje cifrado y la misma clave usada para cifrarlo nos devolverá el mensaje original.

Un ejemplo físico fácil de entender sería una caja fuerte de combinación: Ana y Benito quieren enviarse mensajes pero sospechan que Eva, que trabaja en correos, quiere leer su correspondencia. Así pues deciden comprarse una pequeña caja fuerte de combinación (el método) y un día se reúnen para ponerse de acuerdo en la combinación que abrirá la caja (la clave). Después de eso proceden a enviarse los mensajes en la caja fuerte a través de correos. Eva, aunque tiene acceso a la caja fuerte (mensaje cifrado) y conoce el sistema que han usado para ocultarlo (método) no puede acceder al mensaje original porque no sabe la combinación (clave).

Como todo el mundo sabe, cuantos más dígitos tenga la combinación más difícil será que Eva pueda encontrarla probando al azar. Por otra parte, sí siempre usan la misma combinación Eva puede ir probándolas todas poco a poco hasta encontrar la correcta. Así pues en criptografía clásica (o simétrica o de clave privada, que son 3 maneras de decir lo mismo) la clave ideal debería ser del mismo tamaño que el mensaje y debería usarse una clave diferente para cada mensaje.

Como podéis suponer, si cada vez que tengo que enviarle un mensaje a alguien debo comunicarme con esa persona a través de un canal seguro y enviarle una clave que tiene la misma longitud que el mensaje que quiero transmitirle… ¡Me sale más a cuenta enviarle ese mensaje directamente!

Este es el famoso problema de la distribución de claves que tan de cabeza trajo a todos los criptógrafos hasta bien entrado el siglo XX.

Criptografía de clave pública

El anterior sistema se llama simétrico porque usa la misma clave para cifrar y descifrar un mensaje. Esto nos obliga a ponernos de acuerdo, de antemano, con la persona que queremos comunicarnos en una clave común. Y además cada par de personas deben tener una clave diferente así que si hay N personas comunicándose entre ellas habrá del orden de N² claves en uso en cada momento.

Una alternativa consiste en usar criptografía asimétrica, que es aquella que usa claves diferentes para cifrar y descifrar los mensajes. La clave para cifrar mensajes se llama la clave pública y es conocida por todo el mundo mientras que la clave para descifrar mensajes se llama clave privada y tan sólo la conocen sus respectivos dueños. Así pues, si N personas quieren intercambiarse mensajes cifrados tan sólo se necesitan N pares de claves pública-privada para que el sistema funcione. Cada persona mantendrá en secreto su clave privada y dará a conocer su clave pública junto a su dirección de contacto.

Por seguir con la analogía anterior, ahora ya no tenemos cajas fuertes de combinación sino cajas fuertes con candados. Cuando Ana quiere enviarle un mensaje a Benito lo mete en la caja fuerte (método) y compra en la ferretería un candado del tipo Benito (clave pública de Benito). El ferretero le da el candado Benito abierto y ella lo usa para cerrar la caja que contiene el mensaje (cifrarlo). Para cerrar un candado no es necesario tener la llave pero para abrirlo sí, de manera que Benito, que es el único que tiene la llave (clave privada), será el único que podrá abrir esa caja (mensaje cifrado). Por mucho que Eva lo intente no podrá abrir el candado aunque sepa conozca el método usado (la caja) y tenga acceso a los candados abiertos del tipo Benito (la calve pública).

Para que todo esto funcione es fundamental que el hecho de conocer la clave pública no nos proporcione ninguna información sobre la clave privada y además dispongamos de un sistema fiable para difundir las claves públicas (una guía telefónica virtual o algo parecido). Si el que nos proporciona la clave pública es malicioso podría darnos su propia clave pública y leer todos los mensajes pero el receptor genuino detectaría rápidamente el engaño al no recibir ningún mensaje o al recibir mensajes que no puede descifrar.

BOLAEXTRA: En la práctica se usa Criptografía Asimétrica para intercambiar claves simétricas y Criptografía Simétrica para cifrar los mensajes en sí ya que el cifrado simétrico es mucho más rápido y sencillo que el asimétrico y podemos permitirnos el lujo de usar claves simétricas cortas a cambio de usar una diferente en cada mensaje.

Escrito en 05/05/09 10:12 por Carlos Luna en las categorías:

Comentarios

Gravatar.com se ha roto

Encara tens aquell exemple de text en ascii on es revela la contrasenya? Me la podries enviar, si us plau? Tinc curiositat…

Meldor | 05/05/09 15:39 | #
Gravatar.com se ha roto

Quin és aquest text en ASCII? De què parla en Meldor?

Epsilon | 05/05/09 19:48 | #
Gravatar.com se ha roto

@ε: És un secret!

Carlos Luna | 05/05/09 23:59 | #
Gravatar.com se ha roto

¡Vale, gracias! Creo que ya lo he pillado, lo que me faltaba era entender que un ferretero te podía vender candados abiertos ;) Le iré dando vueltas, que el tema es demasiado complicado para mí.
Un abrazo

Mar | 07/05/09 11:29 | #
Gravatar.com se ha roto

Hey, ¡ me ha encantado el artículo ! Es un gran recordatorio y los ejemplos son buenos.

Aunque, visto desde fuera, creo que el texto tiene una complejidad notable para los no iniciados.

Eisenreich | 07/05/09 14:17 | #

Deja un Comentario

Quizás quieras usar textile para dar formato a tu comentario.

"linktext":http://       _em_       *strong*       -strike-       ^sup^       ~sub~
bq. Blockquote       # Lista numerada       * Lista no-numerada       ==html crudo, sin textile==

(no será mostrado) (http://...)