Ir al contenido principal

Criptografía (XXII): criptología para todos (III)

En este post introduzco ciertos conceptos básicos que nos ayudarán a comprender mejor los sistemas criptográficos modernos; como se verá, algunos de ellos basados en técnicas no tan nuevas.

Como en todos los posts que he escrito sobre criptografía en este blog, intentaré explicar lo que he entendido de la forma más sencilla posible, espero que sin cometer demasiados errores, con objeto de divulgar esta materia de la forma más comprensible de la que sea capaz.

Tal y como nos cuenta la Wikipedia, podemos considerar que la criptografía moderna comienza con Claude Shannon, cuyos trabajos a mediados del siglo XX establecieron una sólida base teórica para la criptografía y el criptoanálisis.

- Confusión: es una de las dos técnicas básicas, utilizada ya desde los orígenes de la criptografía, para ocultar la relación entre un mensaje sin cifrar o texto en claro y el texto cifrado o criptograma. Evidentemente, la clave (K) establece una relación entre ambos, y podemos decir que lo que realmente pretende la confusión es que a un criptoanalista le resulte lo más complicado posible el establecer la relación existente entre el criptograma y la clave (K) empleada en el cifrado.

El mecanismo empleado para conseguir la confusión es la sustitución, que, como ya sabemos, consiste en sustituir cada elemento de un texto en claro por otro u otros elementos en el texto cifrado.

- Difusión: es la otra técnica básica, también empleada desde los inicios de la criptografía, para ocultar la relación entre un mensaje sin cifrar o texto en claro y el texto cifrado o criptograma. En este caso, consistente en difundir o diluir las características del texto en claro a lo largo de todo el criptograma.

El mecanismo empleado para conseguir la difusión es la transposición, que, como también sabemos, consiste en cambiar de posición en el texto cifrado los elementos correspondientes a un texto en claro.

- Criptografía simétrica o de clave privada o secreta: en este tipo de criptosistemas la clave para descifrar un criptograma (K') se calcula a partir de la clave (K) que se utilizó para cifrar el texto en claro, y viceversa. Lo habitual en los criptosistemas de este tipo es que ambas claves (K y K') coincidan, es decir, que se utilice la misma clave para cifrar un mensaje y para su descifrado.
Por tanto, la clave debe mantenerse en secreto entre el emisor y el receptor, ya que si se conociera por parte de terceras personas éstas no tendrían ningún problema para descifrar el criptograma.

El principal problema de estos criptosistemas es precisamente lo anterior, es decir, mantener secreta la clave, ya que si se emplea un canal no seguro para enviarla se incurre en el mismo riesgo de que la intercepten que si enviáramos el texto en claro.

Todos los algoritmos de cifrado clásicos son simétricos, lo que no quiere decir que algunos de los modernos no lo sean también. La mayoría de los algoritmos de cifrado simétrico modernos se apoyan en los conceptos de confusión y difusión, comentados anteriormente y propuestos por Claude Shannony se denominan cifrados de producto.

- Criptografía asimétrica o de clave pública: en este tipo de criptosistemas la clave para descifrar un criptograma (K') es diferente de la clave (K) que se utilizó para cifrar el texto en claro (de ahí el nombre de cifrado asimétrico) y, además, aunque no son independientes, del conocimiento de K no es posible deducir K', o al menos hasta el momento no se conoce que nadie lo haya logrado.

Me explico: este tipo de criptosistemas se caracterizan porque tanto el emisor como el receptor tienen un par de claves (K y K'); la primera de ellas (K) se utiliza para cifrar los mensajes y es pública (denominada clave pública), mientras que la segunda se emplea para descifrar los mensajes y es secreta (denominada clave privada), y por tanto esta última no debe ser revelada bajo ninguna circunstancia a nadie, ni siquiera a las personas con las que vamos a intercambiar mensajes cifrados.
De esta forma, tal y como se observa en el gráfico anterior, para cifrar un mensaje el emisor lo hace con la clave pública del receptor (que como su nombre indica es pública y debe estar en posesión de cualquier persona que pretenda enviarle un mensaje cifrado) y sólo el receptor podrá descifrarlo utilizando su clave privada (que como su nombre indica sólo él posee).

Por tanto, en este tipo de criptosistemas se elimina el principal problema indicado para los criptosistemas de cifrado simétrico, ya que se evita la necesidad de que el emisor envíe al receptor la clave de descifrado.

Además, otra de las principales ventajas de este tipo de criptosistemas es que posibilitan comprobar la autenticidad de la información recibida, tanto en lo que se refiere a la verificación de la identidad del remitente (el emisor es quien dice ser) como a la comprobación de que ésta no ha sido modificada desde que se generó (integridad de la información, es decir, que el contenido es exactamente el que el emisor nos envió).

Mientras que en un criptosistema simétrico la autenticidad del mensaje cifrado radica en el secreto de la clave (sólo emisor y receptor la conocen y, por tanto y en principio, sólo el emisor legítimo puede cifrar un mensaje que pueda ser descifrado por el receptor utilizando la clave compartida por ambos), en un criptosistema asimétrico el emisor puede añadir al mensaje a enviar, cifrándolo con su clave privada, un resumen del mismo (que se obtiene mediante una función 'hash'), de tamaño fijo mucho menor que el del mensaje original y asociado unívocamente a este último (es prácticamente imposible encontrar otro mensaje que dé lugar al mismo resumen), para que el receptor compruebe tanto que realmente es el emisor quien ha enviado el mensaje, como que el mensaje no ha sido interceptado y modificado por una tercera persona.

Sin embargo, los criptosistemas asimétricos presentan también un inconveniente fundamental respecto a los criptosistemas simétricos, ya que la complejidad de cálculo que comportan los hace significativamente más lentos que los de cifrado simétrico, razón por la cual en la práctica se utilizan sistemas criptográficos híbridos (ver siguiente concepto).

Criptografía híbrida: en este tipo de criptosistemas el texto en claro se cifra mediante una clave de sesión (criptografía simétrica), correspondiente a cada mensaje particular y generada aleatoriamente, y la clave de sesión se cifra utilizando la clave pública del receptor (criptografía asimétrica), de tal manera que sólo el receptor puede obtener la clave de sesión mediante su clave privada (criptografía asimétrica) y posteriormente descifrar el texto cifrado mediante la clave de sesión (criptografía simétrica).
El proceso de cifrado híbrido incorporando la firma digital y el de posterior descifrado incorporando la verificación de la autenticidad del emisor y de la integridad de la información recibida serían como se muestra en la siguiente figura:
Hasta aquí, por no hacerlo muy extenso, este primer post sobre criptografía moderna, en el que he introducido los conceptos más básicos, y en los siguientes introduciré más conceptos, tanto referidos a la criptografía como al criptoanálisis.

Comentarios

  1. juego para ensayar la criptografia: https://www.kickstarter.com/projects/667468269/kripto-android-app-cryptography-criptografia

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema de

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat

¿Qué significa el emblema de la profesión informática? (I)

Todas o muchas profesiones tienen un emblema que las representa simbólicamente y en el caso de la  informática: " es el establecido en la resolución de 11 de noviembre de 1977  para las titulaciones universitarias superiores de informática, y  está constituido por una figura representando en su parte central  un  núcleo toroidal de ferrita , atravesado por  hilos de lectura,  escritura e inhibición . El núcleo está rodeado por  dos ramas : una  de  laurel , como símbolo de recompensa, y la otra, de  olivo , como  símbolo de sabiduría. La  corona  será la  de la casa real  española,  y bajo el escudo se inscribirá el acrónimo de la organización. ". Veamos los diferentes elementos tomando como ejemplo el emblema del COIIE/EIIEO (Colegio Oficial de Ingenieros en Informática del País Vasco/ Euskadiko Informatikako Ingeniarien Elkargo Ofiziala ) . Pero no sólo el COIIE/EIIEO adopta el emblema establecido en dicha resolución, sino que éste se adopta también como im