¿Hay algún cifrado indescifrable?

Joseph Mauborgne coinventor del cuaderno de un solo uso
Joseph Mauborgne coinventor del cuaderno de un solo uso

La respuesta a la pregunta que da título a esta entrada es: sí, el cuaderno de un solo uso. El sistema lo inventaron en 1914 Joseph Oswald Mauborgne, militar de la armada norteamericana, y Gilbert Sandford Vernam, empleado de la American Telephone and Telegraph Company.

En 1949 Claude Shannon, un matemático e ingeniero norteamericano, considerado el padre de la teoría de la información, publicó Communication Theory of Secrecy Systems. En este trabajo demostró que si se cifra un texto usando un cuaderno de un solo uso, del texto cifrado no se puede obtener NINGUNA información sobre el texto original.

El sistema tiene ventajas evidentes como su indescifrabilidad, pero también tiene inconvenientes, como se verá, que limitan su uso a situaciones muy concretas.

Un ejemplo de su funcionamiento

Cifrado

  1.  Se asigna un código numérico a cada uno de los posibles caracteres. Por ejemplo para cifrar textos constituidos por letras A..Z, dígitos 0..9 y ‘_’, el código numérico podrían ser los números del 0 al 37, según se muestran el la imagen:
    otp01
  2. Cada carácter del mensaje a cifrar se sustituye por su código numérico:
    otp02
  3. Se genera una clave constituida por números aleatorios entre 0 y 37 tan larga como caracteres tenga el mensaje a cifrar.
  4. Cada número de la clave se suma al código que corresponde al carácter a cifrar y si la suma es mayor o igual que 38 se le resta este número. Este conjunto de números, entre 0 y 37, es el mensaje cifrado. Si se quiere en forma de texto solo habría que utilizar los símbolos que corresponden según el código utilizado.
    otp03

Descifrado

Para descifrar se procede de la siguiente manera:

  1. Si el mensaje cifrado está en forma de texto, se transforma en números utilizando el código.
  2. A cada uno de los número que forman el mensaje cifrado se le resta el correspondiente de la clave utilizada para cifrarlo, sumándole 38 al resultado si fuese negativo.
  3. Haciendo uso del código, se obtiene el texto descifrado.

otp04Archivo con el ejemplo anterior.

La esencia del cuaderno de un solo uso

Una forma de tratar de captar la esencia del método es analizarlo al enviar, 1 bit, que es la mínima cantidad de información. Se envía un mensaje constituido por una opción elegida entre dos, por ejemplo la posible respuesta a una pregunta del tipo ¿va a haber reunión? Las posibles respuestas que se quieren transmitir son, SI, NO. Para codificarlas usamos los números 0 y 1. El SI se codifica como 1 y el NO como 0. La clave es en este caso un número elegido al azar entre 0 y 1, con una probabilidad para cada uno de 1/2. El siguiente paso es sumar mensaje codificado y clave. La suma se hace normalmente salvo que en el caso que sean 1 y 1. En este caso se toma como resultado 0.  El mensaje cifrado será un 0 o un 1. En la tabla se muestran los casos posibles según sea el mensaje enviado y la clave.

otp05Como se observa en la tabla, al añadirle la clave, perdemos completamente la información del texto original. La mitad de las veces el mensaje cifrado sera 0 y la otra mitad 1.

Cualquier mensaje se puede transformar en una secuencia de ceros y unos sin más que cambiar el código utilizado de base 10 a base 2.

Condiciones para que sea indescifrable

Para que el texto cifrado sea realmente indescifrable se han de cumplir los siguientes requisitos en relación con la clave utilizada:

  • tiene que tener la misma longitud que el mensaje que se quiere cifrar.
  • tiene que ser realmente aleatoria. No valen los generadores de números pseudoaleatorios que con frecuencia se usan en los ordenadores.
  • hay que usar una nueva clave cada vez. Las claves no se pueden reutilizar.
    Obviamente es necesario que la clave se mantenga oculta, es decir, que solo el emisor y el receptor del mensaje la conozcan.
  • La longitud de un mensaje puede aportar información sobre el mismo, sobre todo si el mensaje es corto. Para evitar esto es necesario que el mensaje cifrado que se envía tenga siempre la misma longitud.

¿Qué es una clave aleatoria? ¿Cómo se puede generar?

Una secuencia de números aleatorios, de los que se necesitan para el cuaderno de un solo uso, es un conjunto de números no relacionados entre si, que se han obtenidos al azar, pertenecientes a un cierto intervalo, en nuestro ejemplo [0..37] y todos ellos con la misma probabilidad de aparecer. En el ejemplo 1/38.
Para generarlos se hace uso de dispositivos que emplean algún fenómeno físico impredecible como podría ser el ruido en una calle con mucho tráfico. En la Wikipedia hay  información sobre  dispositivos comerciales que generan números aleatorios.

Ventajas e inconvenientes del Cuaderno de un solo uso

Si se aplica correctamente es indescifrable y a diferencia de la mayoría de los sistemas que se usan en la actualidad no se necesita un ordenador para implementarlo ya que los cálculos son muy sencillos. Con frecuencia se usa algún tipo de ayuda para reducir los cálculas que hay que realizar. En la imagen, a continuación, se ve una tabla usada por la Agencia de Seguridad Norteamericana. A la izquierda está la clave y con la tabla de la derecha se cifra o se descifra el texto.

Cuaderno de un solo uso
Cuaderno de un solo uso usado por la NSA

Un gran inconveniente que limita el uso de los cuadernos de un solo uso, frente a los sistemas de clave pública, es la necesidad de compartir previamente la clave mediante algún canal seguro. La otra gran desventaja es el tener que generar claves aleatorias, de un solo uso, tan largas como los mensajes que se quieran transmitir.

Un poco de historia

Se conocen casos en los que fue posible descifrar mensajes cifrados con cuadernos de un solo uso debido a un uso incorrecto del mismo. En la segunda guerra mundial los servicios de inteligencia norteamericanos fueron capaces de descifrar mensajes alemanes y soviéticos en los que se habían usado claves más de una vez o claves que no eran realmente aleatorias, por ejemplo las que preparaban operarios al escribir aleatoriamente con una máquina de escribir.

En los últimos cien años han usado el cuaderno de un solo uso: militares, diplomáticos, espías, … En 1963 después de la crisis de los misiles cubanos, los gobiernos norteamericano y soviético establecieron un sistema de comunicación conocido popularmente como el  teléfono rojo que está basado en un cuaderno de un solo uso. Para compartir las claves se usa la valija diplomática.

Emisoras de números

Si uno recorre con una radio las bandas de onda corta encuentra fácilmente emisoras en varios idiomas en las que una voz humana o sintetizada lee secuencias de números, letras o palabras.
Aunque no se ha reconocido públicamente por ningún gobierno, está claro que un gran numero de estas emisoras transmiten información a espías usando cuadernos de un solo uso. Es un sistema fácil de implementar ya que el espía que recibe la información solo necesita una radio de onda corta, papel, lápiz y la clave, que al ocupar poco, puede ocultarse fácilmente.

A continuación un ejemplo de emisión. Grabación realizada el 26 de noviembre de 2016 a las 09:57 (CET) en 12180,0_khz:

Más información

Dirk Rijmenants mantiene una página sobre criptografía con mucha información sobre el cuaderno de un solo uso.

En el Crypto Museum hay información sobre cuadernos de un solo uso y otros muchos temas relacionados con la criptografía y su historia.

Priyom.org es un sitio web  con información sobre emisoras de números. Incluye horarios de futuras emisiones. Si no se dispone de un receptor de onda corta para escuchas emisoras de números, puede controlar y escuchar uno en está página de la universidad holandesa de Twente.

La obra definitiva sobre la historia de la criptografía:
Kahn, David. 1996.The Codebreakers. (Scribner: New York)

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