Criptografía: el arte de esconder mensajes

Hace dos semanas Raul Ibáñez dedicó su sección de matemáticas de La mecánica del caracol a explicar algunos sistemas sencillos de criptografía. Algunos de los ejemplos de codificación que nos contó se realizan sustituyendo palabras o mensajes enteros por otras palabras, expresiones o símbolos. Uno de los ejemplos que nos puso es el uso del euskera en la batalla de Guadlcanal, en la II Guerra Mundial.

También vimos sencillos ejemplos de cifrado, es decir, la sustitución de letras por otras en base a una determinada clave. En el cifrado de Julio César, por ejemplo, se sustituye cada letra por aquella que está tres posiciones más adelante en el abecedario. La charla completa se puede escuchar en los últimos 20 minutos de este programa.

En esta segunda entrega del arte de la criptografía, nos presenta otros ejemplos un poco más complejos:

El método de Alberti

El genio renacentista ideó un sencillo sistema para evitar el análisis de frecuencias, que consistía en disponer de dos alfabetos cifrados (y no solamente uno) e ir alternando la utilización de uno y otro para cada letra.

Por ejemplo, si se utiliza el método de Julio César para las posiciones pares de las letras del texto y el atbash hebreo para las impares, entonces “RAÚL”, que como vimos se transforma en UDXÑ en el método de Julio César y IZFO para el atbash hebrero, utilizando esta técnica de Alberti se convertirá en “UZXO”.

De esta forma, se rompe la posibilidad del análisis de frecuencias ya que una letra, por ejemplo, la e, se expresa mediante dos letras distintas, dependiendo si aparece en una posición par o impar.

El cifrado de Vigenère

Este es un cifrado más sofisticado que pretende evitar el análisis de frecuencias, pero mantiene la sencillez del cifrado de Julio César.

cuadradoEn primer lugar se necesita una plantilla de cifrado que incluye a todas las posibles variaciones del cifrado de Julio Cesar, es decir, las traslaciones de una posición, de dos posiciones, de tres posiciones, así hasta el final. Por lo tanto, generamos “un cuadro de 27 filas y 27 columnas” (o 26 si no consideramos la ñ), que consiste en el alfabeto en su orden normal y después ir realizando una traslación de una posición en cada nueva fila.

Para encriptar un mensaje se necesita una palabra clave, que nos va a determinar cual va a ser el cifrado que se utilizará para cada letra del mensaje. En el cifrado de Alberti, se intercambiaban dos métodos, ahora se combinan 27 métodos y la combinación depende de la palabra clave.

Se considera el mensaje que queremos ocultar, por ejemplo “HOLA AMIGOS”, y debajo escribimos la clave, por ejemplo la palabra CIFRA, que se escribe debajo del mensaje (letra a letra) y repitiendo la palabra clave hasta cubrir todo el mensaje, es decir, en este caso CIFRACIFRA.

La palabra clave sirve para decirnos que cifrado utilizar para cada letra. Así como debajo de la H (de la palabra “hola”), está la C (de la clave cifra), quiere decir que la letra H se debe sustituir por la letra que le corresponde en la línea que empieza por C (que es la tercera fila) de la tabla de Vigenère. Es como en el juego de los barcos… vamos entonces al cuadro y a la H, en la tercera fila (que es la de la C), le corresponde la J.

Como la primera O del mensaje (de la palabra “hola” tiene debajo una I, vamos a la fila correspondiente en la tabla (que es la novena) y vemos que la O se sustituye por la W…

ccc

Entonces, “HOLA AMIGOS” se convierte en “JWPR AÑPLGS”.

Este es lo que se llama un cifrado polialfabético, puesto que se sustituye el alfabeto normal no por otro alfabeto de letras, símbolos o números, sino que se utilizan a la vez diferentes alfabetos en la codificación.

Para desencriptar un mensaje encriptado con el método vigènere es muy importante conocer la clave. Aunque, de hecho, ni siquiera necesitamos tanto, basta con conocer la longitud de la palabra clave, para poder romper este código (es decir, resolver el problema de encontrar su forma de codificar, su cifrado, su clave).

Ese es exactamente el problema que tiene este método de cifrado, su naturaleza cíclica. Si el analista que está intentando descifrarlo sospecha que se está utilizando el cifrado de Vigènere y consigue conocer (o intuir) la longitud de la palabra clave (en el caso anterior 5), entonces puede separar el texto inicial (siempre que sea suficientemente largo) en cinco textos parciales, que vendrían de considerar las letras que están a una distancia de 5 posiciones (en el ejemplo del texto “HOLA AMIGOS” los 5 textos parciales serían HM, OI, LG, AO y AS, aunque en este caso son muy pequeños) y entonces aplicar el análisis de frecuencias a cada uno de los textos parciales (con lo que además adivinaríamos además la palabra clave).

El cifrado ADFGVX

Este fue un método de cifrado, en el que hay sustitución y trasposición, utilizado por los alemanes en 1918, antes de su ofensiva sobre la ciudad de París (que empezaría en marzo). Su inventor fue el coronel Fritz Nebel. Los alemanes lo eligieron porque creían que era indescifrable, y el factor sorpresa es fundamental en una guerra.

El nombre viene del uso de las seis letras de apoyo A, D, F, G, V, X, elegidas porque el cifrado final se trasmitía en código Morse y esas seis letras son muy diferentes entre sí en el código Morse.

dfdf
¿Cómo se codificaba en el método ADFGVX? Para empezar se forma una cuadrícula 6 x 6 con las letras ADFGVX arriba y a la izquierda como en el juego de los barcos. Como hay 6 x6 = 36 huecos en la cuadrícula, los rellenamos de forma aleatoria con las 26 letras (no se considera la ñ, claro) y los 10 números. Como decimos al azar…

A D F G V X
A o 1 s e g F
D 2 0 h a y d
F r b z p 4 n
G q 9 8 c t k
V 3 x i 7 5 w
X j U 6 m v l

Esta primera parte del cifrado es más o menos del mismo tipo que otros cifrados vistos, ahora se sustituye cada letra del alfabeto, o número, por las dos letras que lo generan mediante el método del juego de barcos en la cuadrícula. Por ejemplo, en el ejemplo que yo he tomado la “o” está en la posición de los barcos AA, luego sustituimos la “o” de nuestro mensaje por AA. O la “r” está en la posición FA. El receptor del mensaje necesita conocer esta cuadrícula.

Si nuestro mensaje fuese “radio euskadi” se transformaría en una serie FA – DG – DX – VF – AA – AG – XD – AF – GX – DG – DX – VF.

Como decíamos, esta primera parte es una simple sustitución mono-alfabética y se puede descodificar mediante el análisis de frecuencias. Para la segunda parte de la codificación hace falta una palabra clave, por ejemplo RAUL, que deberá conocer el receptor del mensaje. A continuación, se dibuja otra cuadrícula, de forma que en la parte de arriba se pone la palabra clave RAUL (luego habrá cuatro columnas), y después debajo se va añadiendo el texto cifrado de la primera fase, fila a fila.

Después se permutan las columnas al poner las letras de la palabra clave en orden alfabético, en este caso, ALRU.

R A U L
F A D G
D X V F
A A A G
X D A F
G X D G
D X V F
A L R U
A G F D
X F D V
A G A A
D F X A
X G G D
X F D V

A L R U
A G F D
X F D V
A G A A
D F X A
X G G D
X F D V

Y se vuelve a escribir el texto según el orden de la fila… en nuestro caso el texto original “radio euskadi” se ha convertido en AGFDXFDVAGAADFXAXGGDXFDV. El cual se trasmite en código Morse.

Nos cuenta Simon Sigh en su libro “los códigos secretos” que a principios de junio de 1918, los alemanes se encontraban ya a las puertas de Paris, a 100 kilómetros, y preparaban su ofensiva final. Si los aliados conseguían descifrar la cifra ADFGVX quizás pudiesen averiguar el lugar por el que pensaban atacar los alemanes y prepararse para su ataque. En el bando aliado se encontraba el criptoanalista francés Georges Painvin intentando romper el código ADFGVX, en lo que estuvo trabajando sin descanso, día y noche, perdiendo hasta 15 kilos de peso en el proceso.

Finalmente, el 2 de junio descifro un mensaje encriptado con el código ADFGVX, al que le seguirían otros mensajes, lo cual no fue una tarea sencilla puesto que con este sistema de codificación no valían los métodos clásicos de criptoanálisis. Entre los mensajes descifrados estaba el siguiente «Envíen municiones rápidamente. Incluso durante el día si no os ven». Se identifico el lugar desde donde había sido enviado el mensaje, a 80 km de Paris, y puesto que se mencionaba que se necesitan municiones, se sospechó que ese sería el lugar por el que atacarían los alemanes. Como así fue, pero los aliados ya estaban avisados y los alemanes fueron derrotados.

Solución al problema “El mensaje cifrado”

UOGRBSG EOGO EGWBQWEWOBISH SH SZ GSUOZD RSZ EGDPZSAO RS SHIO HSAOBO, FJS QDBHWHIS SB RSHQWTGOG SHIS ASBHOXS. TWGAORD GOJZ.

Solución: Es el cifrado de tipo Julio César +15, y el mensaje era: GARDNER PARA PRINCIPIANTES ES EL REGALO DEL PROBLEMA DE ESTA SEMANA; QUE CONSISTE EN DESCIFRAR ESTE MENSAJE. FIRMADO: RAUL.

Nuevo reto: Lo importante es la clave

LNU DVMUYR MUD VL LPXAFZ UEF AIOVWVMU OV MUEVMUEZCUD VS YW CIVCF GUCUNYC GALL GRCYTIJTRNNPJ QOP JE MZITYLIA YYKRY EFDUD CAM AVRMZEAM BLE XPJCCQIEH PJTY XVNMLAE ZTIMUOF RUFC
La charla con Raul se puede escuchar aquí.

Podéis enviar las respuesta a lamecanicadelcaracol@eitb.com o responder con un comentario en este post. Entre lo que acierten con el mensaje cifrado sortearemos el libro Gardner para principiantes, un volumen con retos matemáticos elaborado por grandes divulgadores como Raul.

3 pensamientos en “Criptografía: el arte de esconder mensajes

  1. Mikel García larragan

    El texto en claro correspondiente al mensaje cifrado es: ” UNA SEMANA MAS EL REGALO DEL PROBLEMA DE MATEMATICAS ES EL LIBRO GARDNER PARA PRINCIPIANTES QUE SE SORTEARA ENTRE TODAS LAS PERSONAS QUE DESCIFREN ESTE MENSAJE FIRMADO RAUL”. La clave utilizada es RAUL, pero lo bonito es descifrarlo sin conocer la clave utilizando el método Kasiski de ataque a un cifrado polialfabético.

    Responder
  2. Ainhoa Landa Sedano

    El mensaje es:
    UNA SEMANA MAS EL REGALO DEL PROBLEMA DE MATEMÁTICAS ES EL LIBRO GARDNER PARA PRINCIPIANTES QUE SE SORTEARA ENTRE TODAS LAS PERSONAS QUE DESCIFREN ESTE MENSAJE FIRMADO AULR
    Muchas gracias

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *