Los códigos de Garbo, agente doble

Por Arturo Quirantes, el 7 enero, 2014. Categoría(s): Criptohistoria ✎ 2
IMG_0514
Códigos usados por el agente Garbo (original: Archivos Británicos)

[Con este post comienzo una recuperación de artículos de mi ya extinto Boletín ENIGMA. Los incluiré con la etiqueta «Boletín ENIGMA.» Original que soy]

Este año se celebra el centenario del comienzo de la Primera Guerra Mundial, y nos aburriremos del tema porque nos lo van a machacar hasta la saciedad. Inicialmente conocida como la Gran Guerra, su final en falso dio origen, dos décadas después, a la otra Gran Guerra; y crucemos los dedos porque no haya una tercera.

En junio de 1944 (también lo «celebraremos» este año), las potencias aliadas se lanzaron al asalto de las playas de Normandía. Dos meses después, si las crónicas son ciertas, un puñado de tanques con nombres castizos, tripulados por españoles exiliados, entraron en París. La contribución española a la causa aliada en la Segunda Guerra Mundial es todavía poco conocida, y muchos episodios están aún por escribir. No hace mucho que supimos de la existencia de un hombre que hizo posible tanto el desembarco como la liberación. Su nombre es Juan Pujol, pero se le conoce por el sobrenombre de Garbo.

La historia de Garbo salió a la luz a mediados de los años ochenta, cuando el periodista Nigel West dio con su pista en Venezuela. Pero es gracias a la desclasificación del expediente Garbo por parte del gobierno británico en 1999 cuando pudimos conocer detalles de primera mano. Dicho expediente, que lleva el código KV 2/41 fue escrito poco después de la guerra por su agente de control, y se ha hecho tan popular que fue impreso en forma de libro («Garbo, the spy who saved D-day«, Public Record Office, Secret History Files, Londres, 2000; existe traducción al castellano). Hay otros libros que pueden ser consultados por los lectores interesados: «Garbo, el espía del siglo» de Juan Pujol y Nigel West; «La guerra secreta de Franco», de Manuel Ros Agudo (capítulo 8).

Para los que no conozcan la historia, me limitaré a comentar que Juan Garbo, tras la Guerra Civil, se exilió como muchos otros españoles. No luchó por la República. De hecho, sufrió persecución por parte de los republicanos en su nativa Cataluña y se pasó al bando nacional, pero su desdén hacia los regímenes totalitarios le impulsó a ayudar al bando británico en su lucha contra el nazismo alemán. En un principio, se ofreció como espía, pero fue rechazado. Dispuesto a llamar su atención, logró entrar en contacto con los alemanes, a quienes se ofreció como agente. Su intención era convertirse en agente doble. Finalmente consiguió su objetivo. El servicio de espionaje inglés entró en contacto con él, y con el tiempo se convirtió en el mejor agente alemán infiltrado en Inglaterra.

La verdad es que era el mejor agente doble supuestamente infiltrado en Inglaterra. Sabiamente aleccionado por el servicio secreto inglés, transmitió a Alemania un sinnúmero de mensajes falsos o de escaso valor. Su imaginación le llevó a inventarse toda una red de agentes ficticios. Sus contribuciones fueron enormes. Mientras los alemanes bombardeaban Londres con sus bombas volantes V-1 y V-2, Garbo les daba información falsa sobre los puntos de impacto, logrando que muchos de los misiles cayesen en el mar. Sus falsos informes sobre ejércitos aliados agrupados en el norte de Escocia hizo creer a los alemanes que los aliados intentarían un desembarco en Noruega, lo que les obligó a estacionar diez divisiones en aquel país hasta casi el mismo final de la guerra. Y, no menos importante, logró convencer a Hitler de que el desembarco principal aliado tendría lugar en el paso de Calais. Si el plan Overlord tuvo éxito en Normandía, fue en buena medida porque ejércitos alemanes enteros permanecieron en la zona de Calais, esperando un ataque que nunca se produjo.

A duras penas puedo evitar contaros las mil y una peripecias que Garbo experimentó durante su etapa de agente doble. Lo único que puedo deciros es que ojalá se haga una película sobre su vida, porque dejaría en ridículo cualquier film de James Bond. Pero estamos aquí para hablar de cifras y códigos, y por supuesto que Garbo debía tenerlos para transmitir sus informaciones a sus «jefes» alemanes. El encargado de suministrar a Garbo códigos y tintas invisibles era su contacto en España, Karl Erich Kühlantal, quien ya había intervenido durante la Guerra Civil (fue secretario del jefe del Departamento de Inteligencia de la Legión Cóndor).

El primer código (cifra, que diríamos hoy) fue suministrado a Garbo a finales de 1942 para sus comunicaciones con su agente alemán de Madrid. Era el mismo código que usaban los alemanes para sus comunicaciones entre Tetuán y las ciudades de Ceuta, Melilla y Spartel. Se trataba de un sistema de sustitución polialfabética que empleaba cinco alfabetos diferentes.

La tabla de alfabetos de cifrado (1 al 5) eran como sigue:

TEXTO LLANO    a b c d e f g h i j k l m n o p q r s t u v w x y z
Alfabeto 1     G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Alfabeto 2     E F G H I J R L M A B C D N O P Q R S T Z U V W X Y
Alfabeto 3     A Z Y B X C W D V E F U T G H S R I J Q K P L M O N
Alfabeto 4     Q R S Z U V W X Y Z B A C E D F H G J I L K M O N P
Alfabeto 5     D E G F I H J A B C K O L M N P R Q T S V U Z X Y W

Para cifrar se toma la primera letra y se cifra con el primer alfabeto; la segunda letra con el segundo alfabeto, y así hasta la quinta letra, que se cifra con el quinto alfabeto. A continuación ciframos la sexta letra con el primer alfabeto, y así sucesivamente. Es decir: el primer alfabeto cifra las letras 1ª, 6ª, 11ª, º6ª…; el primer alfabeto cifra las letras 2ª, 7ª, 12ª, 17ª … creo que ya entendéis el proceso.

Vamos a verlo con un ejemplo. Supongamos que queremos cifrar el siguiente texto: «EL DOS DE NOVIEMBRE SALIO CONVOY COMPUESTO DE …»

Lo primero que haremos es dividir el texto en grupos de cinco letras: ELDOS DENOV IEMBR ESALI OCONV OYCOM PUEST ODE …

Para cifrar, seguiremos el procedimiento descrito anteriormente. La primera letra del texto llano (E) se cifra con el primer alfabeto como K (la letra que hay bajo la e minúscula de la tabla). La segunda letra del texto llano (L) se transforma mediante el segundo alfabeto en la letra C. El resultado es:

Alfabeto         12345 12345 12345 12345 12345 12345 12345 12345
Texto llano      ELDOS DENOV IEMBR ESALI OCONV OYCOM PUEST ODE...
Texto cifrado    KCBDT JIGDU OITRQ KSAAB UGHEU UXYDL VZXJS UHX...

Si el último grupo de texto llano tuviese menos de cinco letras, se completaría con X. Para descifrar se seguiría el mismo procedimiento, pero utilizando las tablas inversas:

TEXTO CIFRADO  a b c d e f g h i j k l m n o p q r s t u v w x y z
Alfabeto 1     U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
Alfabeto 2     J K L M A B C D E F G H I N O P Q R S T V W X Y Z U
Alfabeto 3     A D F H J K N O R S U W X Z Y V T Q P M L I G E C R
Alfabeto 4     L K M O N P R Q P S V U W Y X Z A B C D E F G H I J
Alfabeto 5     H I J A B D C F E G K M N O L P R Q T S V U Z X Y W

A algunos lectores esto puede resultarles familiar. Hasta cierto punto, recuerda al sistema de cifra de Vigenère, solo que con alfabetos distintos al de César. En efecto, no resulta muy seguro si el atacante consigue suficiente cantidad de texto cifrado como para efectuar análisis de frecuencias.

En abril de 1943, Garbo recibió instrucciones para que emplease el doble cifrado usando la misma tabla. Es decir, el mensaje cifrado se vuelve a cifrar. En nuestro ejemplo, la primer letra del texto llano (E) se convertía en K tras el primer cifrado; ciframos de nuevo K con el primer alfabeto y obtendríamos la letra Q. El resto del mensaje nos daría:

Alfabeto        12345 12345 12345 12345 12345 12345 12345 12345
Texto llano     ELDOS DENOV IEMBR ESALI OCONV OYCOM PUEST ODE...
Primer cifrado  KCBDT JIGDU OITRQ KSAAB UGHEU UXYDL VZXJS UHX...
Segundo cifrado QGBDT PMWZV UMQGR QSAQE ARDUV AWOZO BYMZT ALM...

Y ya tenemos el nuevo texto cifrado: QGBDT PMWZV UMQGR… En realidad, se trata de otro tipo de sustitución polialfabética, lo que significa que no introduce un mayor grado de seguridad. Resulta, por tanto, extraño que Garbo recibiese la orden de efectuar doble cifrado «para mayor seguridad». Según el expediente de Garbo, este cambio era una indicación de la gran estima en que se le tenía.

Pronto se dieron cuenta los alemanes de que este sistema no ofrecía gran seguridad, y en Mayo cambiaron los sistemas de cifra que usaban en sus transmisiones desde y hacia España. Esto devolvió a los criptoanalistas británicos a la casilla de salida. Pero Garbo ya estaba en un pedestal alemán, y Berlín decidió tratarlo como a una de sus estaciones transmisoras en España. Es decir, Garbo recibió una copia del nuevo sistema de cifra … con instrucciones tajantes de que no cayese en manos inglesas bajo ninguna circunstancia. La cifra recibida por Garbo no permitió a los ingleses leer los demás mensajes cifrados con el nuevo sistema, pero les permitió conocer la naturaleza de dicho sistema. Se trata, como veremos, de una combinación de sustitución y permutación

El cambio de una cifra a otra se efectuó de forma bastante novelesca. Garbo (cuya estación transmisora era conocida con el nombre en clave de ALMURA) debería estudiar el nuevo sistema y, cuando estuviese listo para usarlo, transmitiría a CENTRO (la estación de Madrid) la frase «Estoy agradecido por los cordiales saludos que me habéis enviado«, cifrada con la cifra antigua que hemos visto antes. La respuesta de CENTRO, también cifrada con el sistema antiguo, sería «No hay motivo para agradecer. Era un deber entre amigos

Apuesto a que estáis deseando conocer cómo era la nueva cifra. Me hago cargo. Se trata de un sistema de cifra más complejo, e involucra una serie de sustitución y trasposiciones. Vamos a verlo paso a paso. Supongamos que queremos cifrar el siguiente mensaje:

«Las operaciones siguen siendo llevadas a cabo con toda normalidad obteniendose exitos locales en algunos sectores»

Lo primero que vamos a hacer es dividir el mensaje en grupos de cinco letras:

lasop eraci oness iguen siend ollev adasa caboc ontod anorm alida
dobte niend oseex itosl ocale senal gunos secto resxx

donde, como puede verse, añadimos x al final si es necesario completar el último grupo. A continuación vamos a cifrar las cinco letras de cada grupo siguiendo la siguiente tabla de sustitución:

                                 U V W X Y
                               N L A C O N L
                               G F I Z E G F
                               H B R T D H B
                               S J M P Q S J
                               Y U V W X Y U
                                 L A C O N

Se trata de una tabla de 5×5, donde las filas superior e inferior y las columnas izquierda y derecha están repetidas en el lado opuesto de la tabla por comodidad.
Lo que vamos a hacer es ir cifrando las cinco letras de cada grupo en el orden de las agujas del reloj. Vamos a verlo con el primer grupo: LASOP. Para cifrar la primera letra (L) nos vamos a la tabla y escogemos la letra que hay encima de la L; en este caso, es la U. La segunda letra (A) se cifra por la que hay a su derecha (C); la tercera letra (S) se transforma en la que se encuentra justo debajo de ella en la tabla (Y), y la cuarta (O) se sustituye por la que hay a su izquierda (C). La quinta letra del grupo se deja tal cual, sin cifrar. De este modo, LASOP se transforma en UCYCP. Compruebe el lector que el segundo grupo llano ERACI se convierte en OTIAI. Hay una excepción: si aparece la letra K en el texto llano nunca se cifrará, no importa la posición en la que se encuentre.

De esta forma obtenemos el siguiente resultado, que escribimos en filas de 31 elementos:

U C Y C P O T I A I X L D Q S A F L Z N H Z D O D X A F Z V V
H I C A W C I C C X L P C D V L E B M V A R T A E N J R E Y Z
D O D X J D Z X A D E Q L X O C N E H F G L L N V G C S H G Z
R O I G Y W X

(lo he copiado literalmente del ejemplo que aparece en el expediente de Garbo, así que confío haberme equivocado; puede el lector comprobarlo por sí mismo).

Si solamente se tratase de esto, no habría mucha diferencia con el sistema de cifra mostrado en el boletín anterior. Se trataría de una sustitución con cuatro alfabetos. Pero ahora vamos a añadir unas trasposiciones. Vamos a leer el texto cifrado columna por columna. Pero las columnas las vamos a tomar «salteadas». Es decir, no vamos a escribir UHDR CIOO YCDI…, sino que escogeremos las columnas en el siguiente orden:

1     2 1 1 1   2 3     2   1 1 2   1 1 2 2 2 1 2   2 2 3   1
6 1 7 3 9 2 4 2 0 1 3 8 1 9 7 3 4 6 5 0 7 2 5 1 8 4 9 6 0 5 8

Para complicar más la cosa, comenzaremos a escribir el texto cifrado de forma que la primera letra esté en la columna que coincida con el día del mes en que se ha enviado el mensaje. Supongamos que estamos a día 15. Esto quiere decir que colocaremos el texto obtenido antes de esta forma:

1     2 1 1 1   2 3     2   1 1 2   1 1 2 2 2 1 2   2 2 3   1
6 1 7 3 9 2 4 2 0 1 3 8 1 9 7 3 4 6 5 0 7 2 5 1 8 4 9 6 0 5 8
                                    U C Y C P O T I A I X L D
Q S A F L Z N H Z D O D X A F Z V V H I C A W C I C C X L P C
D V L E B M V A R T A E N J R E Y Z D O D X J D Z X A D E Q L
X O C N E H F G L L N V G C S H G Z R O I G Y W X

Siguiente paso: vamos leyendo las columnas una por una, comenzando por la 1 y acabando por la 31. Debajo del número 1 tenemos la columna SVO; bajo el número 2, la columna HAG; así hasta la columna 31, donde tenemos DTL. Esta redistribución de letras nos da esto:

S V O H A G O A N I C X L P Q V Z Z A L C D E V A J C C I O O
O C D W Z M H Z E H N V F U H D R Q D X F R S D C L L B E Z R
L X N G C A X G F E N V Y G P W J Y I X D Y C D I T I Z X A C
A X L E D T L

Ahora vamos a trasponer de nuevo, leyendo columna a columna de la misma forma que antes. Pero, si antes pusimos la primera letra en la columna marcada con el día del mes (15, en nuestro caso), ahora lo haremos comenzando por la columna que nos da el mes. Supongamos que estamos en abril (mes 4). Esto nos da:

1     2 1 1 1   2 3     2   1 1 2   1 1 2 2 2 1 2   2 2 3   1
6 1 7 3 9 2 4 2 0 1 3 8 1 9 7 3 4 6 5 0 7 2 5 1 8 4 9 6 0 5 8
                                                  S V O H A G
O A N I C X L P Q V Z Z A L C D E V A J C C I O O O C D W Z M
H Z E H N V F U H D R Q D X F R S D C L L B E Z R L X N G C A
X G F E N V Y G P W J Y I X D Y C D I T I Z X A C A X L E D T
L

Y lo mismo que antes: columna uno (AZG), columna dos (PUG) columna tres (ZRJ) … columna treinta y uno (VDW). Reagrupamos las letras en grupos de cinco, y ya tenemos nuestro mensaje cifrado:

AZGPU GZRJS CLAAZ CDVDD NEFZQ YLXXJ LTOZA XVVDR YLFYA CICHX
LCFDG MATCN HQHPA DICBZ IHEES CIEXO ONLCL IROCV CXXHW GEVDW

El proceso de descifrado es justamente el inverso: escribimos el texto cifrado en columnas, siguiendo el orden establecido y comenzando por la columna rotulada como 4, luego leemos fila a fila, volvemos a trasponer comenzando por la columna rotulada como 15, etc, etc.

Este es el procedimiento que Garbo debía usar a partir del 7 de Mayo de 1943. Por supuesto, todo venía acompañado de una serie de instrucciones sobre horas de transmisión, frecuencias, indicativos de llamada, etc. Si no se sabe cómo es el sistema de cifra, los mensajes serán difíciles de criptoanalizar, especialmente si no son mensajes muy largos. No es de extrañar que los alemanes instruyeran a Garbo para que evitase por todos los medios que el método de cifra cayese en manos del enemigo. Lástima para ellos que trabajase para la inteligencia británica.



2 Comentarios

  1. En el libro de Ben Macintyre «La historia secreta del Día D. La verdad sobre los superespías que engañaron a Hitler» cuenta un hecho, que suena a risa, sobre Garbo el mismo dia D.

    Para preservar su confianza y credibilidad ante los los alemanes se decidió que Garbo contara la verdad, que el desembarco iria por Normandia, unas tres horas antes de producirse.
    ¿Porque tres horas? Porque era el tiempo que tardaban los mensajes en llegar hasta a Alemania via Madrid. Cuando lo leyeran en Alemania ya estaria produciéndose el desembarco y militarmente la suerte estaria echada.

    Pero ese dia el enlace de Madrid, Kühlenthal, a pesar de estar avisado, no se presentó a la escucha a las tres de la mañana. Se intentó conectar cada quince minutos y nada. El equipo que apoyaba a Garbo supuso que o bien estaria dormido o que andaria disfrutando de la noche madrileña en Chicote. Por fin a las ocho de la mañana pudo ser enviado. Entre pitos y flautas no llegó a Alemania hasta pasadas las doce del mediodia del dia D.
    Y lo más asombroso es que cumplió su función. Garbo salió reforzado como el agente mas fiable que tenian.

Deja un comentario

Por Arturo Quirantes, publicado el 7 enero, 2014
Categoría(s): Criptohistoria
Etiqueta(s): ,