Un cifrado irrompible

En el mundo actual la criptología es una ciencia compleja, reservada para especialistas altamente entrenados en técnicas secretas y misteriosas, que se reúnen en salas de culto para recibir conocimientos arcanos vedados para los simples mortales.

Los tiempos de enrollar piel de animales muertos en una rama (Escítala) o de cambiar un caracter por otro (Cifrado César) hace mucho que pasaron. Los algoritmos modernos de cifrado requieren de complejos rituales de adoración a oscuras deidades matemáticas, y existen fuertes intereses en su desarrollo para garantizar su fortaleza y al mismo tiempo para romperlos.

Desde el punto de vista teórico, la seguridad de un sistema criptográfico se puede clasificar en condicional o incondicional.

La seguridad condicional está dada cuando un atacante puede teóricamente resolver la tarea, pero no es computacionalmente factible para él (debido a sus recursos, capacidades y acceso a información). Un ejemplo de esto es el algoritmo RSA, donde su seguridad está dada en la dificultad para factorizar enteros grandes. Si se encontrara un método eficiente de resolver este problema, RSA dejaría de ser seguro.

Se dice que un sistema criptográfico tiene una seguridad incondicional sobre cierta tarea si un atacante no puede resolver la tarea por mucho que implore o sacrifique al Ominissiah.

Existe un cifrado irrompible, con seguridad incondicional, denominado “Libreta de un solo uso” (“One time pad” en inglés). Aunque su invención se atribuye comúnmente a Gilbert S. Vernam, de los Laboratorios Telefónicos Bell en el año 1917, ya había sido descrito anteriormente por Frank Miller, un banquero de California, EEUU en 1882 (para más detalles, ver aquí). Su creación es reverenciada por los servicios diplomáticos y agencias de inteligencia de todo el mundo.

Su funcionamiento es sencillo, no se requieren sacrificios al dios máquina, solo unas sencillas plegarias de adoración a la Modulari Arithmetica. Supongamos que Alice quiere mantener comunicación cifrada con Bob (ya los conocemos de entradas anteriores). Ambos cuentan con una libreta idéntica con caracteres aleatorios, que constituye la clave. Para cifrar el mensaje, Alice realiza una suma modular del caracter del mensaje que quiere enviar y el correspondiente de la clave, el resultado es el mensaje cifrado.

Ejemplo: queremos cifrar el mensaje “hola” y nuestra clave es “rkui”, utilizaremos un alfabeto de 26 caracteres.

  • Paso 1: Asignamos valores numéricos a cada caracter h = 7, o = 14, l = 11, a = 0. Igualmente para la clave, r = 17, k = 10, u = 20, i = 8.
  • Paso 2: Realizar suma modular del mensaje y la clave, h + r = y, o + k = y, l + u = f, a + i = i. Mensaje cifrado es “yyfi”.

Para descifrar, se realiza la operación inversa.

A primera vista parecería sencillo descubrir el mensaje original, pero el cifrado no brinda información alguna y si probamos diferentes combinaciones de claves, podemos obtener diferentes combinaciones de texto claro con igual probabilidad de ocurrencia. Ej: si probamos la clave “lgba”, el texto claro sería “suma”, si probamos la clave “tydr”, el resultado es “amor”.

Si probáramos todas las 456 976 posibles combinaciones de cuatro letras en un alfabeto de 26 caracteres, cada una representaría un posible texto claro con tanta probabilidad como el resto de ser el mensaje original, por lo que buscar una solución por fuerza bruta no es factible.

Para garantizar la seguridad del cifrado, se deben cumplir las siguientes reglas:

  • La clave debe ser aleatoria, realmente aleatoria.
  • La clave debe ser al menos del mismo largo que el mensaje a cifrar.
  • No se puede reutilizar la clave (de ahí el nombre de “libreta de un solo uso”).

Esta expresión de sabiduría ha gozado de gran popularidad entre los servicios de inteligencia de todo el mundo, principalmente porque puede ser utilizado por un agente en el campo, sin necesidad de una computadora. Pero su uso incorrecto puede tener consecuencias nefastas para aquellos que confían en su fortaleza.

Debido a su divina simplicidad, cualquier violación de los rituales establecidos volverá inútil el cifrado, demostrado en el Proyecto Venona, llevado a cabo por la NSA entre los años 1943 y 1980, con el objetivo de romper los cifrados utilizados por la Unión Soviética. En los años 1943 y 1944, por razones desconocidas, los servicios de cifrado soviéticos reutilizaron páginas en varias libretas de claves, lo que llevó a un ataque exitoso en algunos mensajes. A pesar del esfuerzo realizado por la NSA, en realidad la cantidad de mensajes esclarecidos fue baja, de cientos de miles solo 3000 fueron descifrados total o parcialmente (ver).

Los servicios soviéticos, utilizaban dos capas de cifrado, siendo la segunda un cifrado de libreta de un solo uso. La información mostrada fue la consultada para esta investigación, otras fuentes pueden brindar más información.

A pesar de su magnificencia, este cifrado presenta serias desventajas para su aplicación práctica:

  • Es difícil generar datos realmente aleatorios, lo que es necesario para que la clave sea segura.
  • Cada clave puede ser utilizada una única vez, reutilizar claves debilita el cifrado, como se explica anteriormente.
  • La clave debe tener al menos la longitud del mensaje, si necesitamos cifrar un video de 1 GB, requiere una clave de 1 GB.
  • Distribución de claves, debido a que cada par de usuarios requiere claves únicas y los requisitos anteriores, este problema se vuelve inmanejable rápidamente, ej: para 100 elementos (embajadas, agentes…), contando con que puedan enviarse mensajes entre si, es necesario generar 4950 pares de libretas únicas.

Debido a sus desventajas, este cifrado es poco utilizado en el entorno de Internet, donde existen alternativas poderosas, pero avances en el campo de la física cuántica pudieran volverlo relevante como parte de la criptografía cuántica.

Comentarios