Criptografía: claves secretas y públicas

En el mundo actual usamos la criptografía en nuestra vida diaria. Los datos que guarda nuestra tarjeta de crédito, las llamadas que hacemos desde el teléfono móvil o la información que intercambiamos con nuestro banco a través de su sitio web están cifrados.

Tipos de sistemas criptográficos

Para cifrar la información que se quiere esconder se necesita una clave. Según como sea esta clave, secreta o pública, hay dos tipos de sistemas. En los sistemas criptográficos de clave secreta, también llamados de clave simétrica, la persona que envía el mensaje cifrado,  y la persona que lo recibe, utilizan la misma clave para cifrar y descifrar el texto enviado. Esta clave nadie más la debe conocer. En los sistemas de clave pública, también llamados asimétricos, las claves para cifrar y descifrar son distintas y una parte de estas claves es pública sin que ello afecte a la confidencialidad de la información  que se oculta.

Sistemas criptográficos de clave secreta

En estos sistemas la persona que envía cifra el mensaje, haciendo uso de la clave secreta y de un cierto procedimiento, lo hace llegar al destinatario a través de un canal que no necesariamente tiene que ser seguro ya que el mensaje cifrado es indescifrable si no se dispone de la clave. Cuando el receptor lo recibe utilizará la misma clave secreta y el procedimiento preestablecido para descifrarlo.
Un claro inconveniente de este sistema es que cifrador y descifrador han de compartir la misma clave y para ello necesitan utilizar un canal seguro para intercambiarla o haberla intercambiando antes de separarse.

AES

Vincent Rijmen uno de los creadores de AES
Vincent Rijmen uno de los creadores de AES

Uno de los sistemas más populares de este tipo es el AES, Advanced Encryption Standard, también conocido como Rijndael, desarrollado por dos criptólogos belgas, Joan Daemen y Vincent Rijmen. Fue el ganador de un concurso organizado en 1997 por el instituto norteamericano NIST, National Institute of Standards and Technology. El concurso pretendía escoger un sistema de cifrado capaz de proteger la información sensible durante el siglo XXI. Es muy popular en la actualidad y el gobierno de Estados Unidos lo utiliza incluso para cifrar información considerada secreta.

El 29 de julio de 2010 el sitio web WikiLeaks publicó un archivo de 1,4 GB con el nombre Insurance.AES256. El archivo que está cifrado mediante el sistema AES y del que se desconoce su clave, sería el seguro de vida de Julian Assange debido a la información que supuestamente contiene y cuya clave secreta sería hecha pública si a Assange le sucediese algo .

Programas como AES Crypt, gratuito y de código abierto, permiten cifrar y descifrar utilizando el sistema AES.

Sistemas criptográficos de clave pública

Whitfield Diffie
Whitfield Diffie, uno de los padres de los sistemas de clave pública

Fueron propuestos por Whitfield Diffie y Martin Hellman en 1976. La comunicación entre dos usuarios en un sistema de clave pública supone la utilización como se ha dicho más arriba de una clave para cifrar y otra diferente para descifrar. Cada usuario del sistema dispone de dos claves, que se generan de forma simultanea mediante el uso de un programa informático específico. Una de ellas la llamada clave privada solo la debe conocer el usuario mientras que la otra, la clave pública, se da a conocer de forma parecida a lo que se hace con los números de teléfono que se incluyen en guías o páginas web.

Cuando se cifra un mensaje con una de las dos claves de la pareja, ya sea la pública o la privada, solo se podrá descifrar con la otra clave del par. Esto puede dar lugar a dos situaciones distintas:

  • Alfredo cifra un mensaje con su clave privada y se lo envía a Beatriz. Beatriz solo podrá descifrarlo si utiliza la clave pública de Alfredo lo que le garantiza la integridad del mensaje y la autoría del mismo. Además de Beatriz el mensaje lo puede haber leído cualquiera que lo haya interceptado dado que es la clave pública de Alfredo la que lo descifra. Si alguien que lo intercepta lo modifica, Beatriz se da cuenta ya que, por pequeña que sea la modificación, la clave pública de Alfredo ya no lo descifra.
  • Alfredo cifra un mensaje con la clave pública de Beatriz y se lo envía. Cuando Beatriz lo recibe tiene la seguridad de que el mensaje no lo ha podido leer nadie, aunque lo haya interceptado, ya que solamente su clave privada, que solo ella posee, lo puede descifrar. De lo que no puede estar segura es de que el mensaje sea de Alfredo ya que cualquiera puede conocer la clave pública de Beatriz y alguien podría haber cifrado el mensaje y enviárselo haciéndose pasar por Alfredo.

La solución al problema planteado pasa por que Alfredo cifre dos veces el mensaje antes de enviarlo. Primero utiliza la clave pública de Beatriz, y a continuación el mensaje cifrado resultante lo vuelve a cifrar utilizando su clave privada. Beatriz cuando lo reciba primero lo descifra con la clave pública de Alfredo, lo que le garantiza la autoría e integridad, y a continuación lo descifra con su clave privada lo que le asegurará la privacidad ya que ella es la única que la tiene.

Firma y Certificado Digital

Los sistema de clave pública, como acabamos de ver, permiten garantizar la autoría y la integridad de un documento al cifrarlo con la clave privada del remitente. Cuando se quiere garantizar la autoría e integridad de un documento pero no es necesario ocultarlo solo se cifra una especie de resumen del mismo que se añade al documento original. El resumen está hecho de tal manera que si alguien modificase el documento original el resumen resultante ya no sería el mismo. Así no se oculta su contenido sino que se añade un pequeño archivo cifrado, que se conoce como firma digital, que permite a cualquiera que disponga de la clave pública del firmante comprobar que efectivamente él es el autor del mismo.

Una de las ventajas de los sistemas de clave pública es el poder establecer comunicaciones seguras con personas no conocidas previamente, con la garantía de saber que son quienes dicen ser, si conocemos con certeza sus claves públicas. La solución para no tener que intercambiar previamente las claves públicas a través de un canal seguro es la existencia de un intermediario en el que confíen ambos. Alfredo y Zoe no se conocen y se quieren comunicar de forma segura, para ello Zoe le hace llegar al intermediario, personalmente o por un canal seguro, su clave pública y éste le añade información sobre la identidad de Zoe firmándolo todo digitalmente con su clave privada. Este conjunto de la clave pública de Zoe con la información de su identidad y la firma digital del intermediario recibe el nombre de certificado digital. Alfredo una vez que reciba del intermediario, en el que confía, por un canal seguro el certificado digital de Zoe ya podrá enviarle mensajes con seguridad. Este tipo de intermediarios se denominan autoridades certificadoras.

RSA

Leonard Adleman, la A de RSA
Leonard Adleman, la A de RSA

Ron Rivest, Adi Shamir y Leonard Adleman presentaron en 1977 el sistema criptográfico de clave pública conocido como RSA. En la actualidad se usa ampliamente en la transmisión segura de información a través de internet así como en sistemas de firma digitales.

Hay muchas Autoridades Certificadoras tanto públicas como privadas. Un ejemplo de la primera es la española Fabrica Nacional de Moneda y Timbre y de la segunda la norteamericana Verisign.

Los navegadores web utilizan sistemas de clave pública para intercambiar información de forma segura entre el usuario y las páginas web que visita así como para garantizar la identidad de estas últimas. Para ello incorporan de serie muchos certificados digitales, denominados certificados raíz, de autoridades certificadoras reconocidas. De esta manera al usar un navegador podemos establecer conexiones seguras y con garantías de identidad e integridad con sitios web que contengan certificados digitales firmados por alguna de las autoridades certificadoras cuyo certificado raíz incorpore nuestro navegador.

GnuPG  es un programa libre con licencia GPL que implementa un sistema criptográfico de clave pública.

Ambos sistemas mencionados han resistido todos los ataques dirigidos a romperlos aunque a medida que la potencia de cálculo de los sistema informáticos aumente la seguridad de ambos disminuirá.

Más información
AES
  • AES en la Wikipedia en español
Criptografía de clave pública
RSA
  • RSA en la Wikipedia en español
  • Josu Sangroniz Gómez, Criptografía de clave pública:El sistema RSA, Revista Sigma, 2004 (Noviembre, nº 25) pp 149-165

Créditos de las imágenes