Criptoanálisis de Enigma
Boletín Enigma nº 9 3 Febrero 2003
Ult. rev. 05-01-2023
EDITORIAL
Nuevo año, nuevo boletín. Y ya iba siendo hora. El ejemplar del mes de Enero tuvo que sufrir un leve retraso. Podría daros muchos motivos, pero para qué vamos a andar con rodeos, sencillamente no pude. La mayor parte de este boletín ya estaba listo para Reyes, pero no podía permitirme ligerezas, y preferí ir lento pero con buena letra.
Y confío en que la espera haya valido la pena. Vamos a comenzar el año en plan fuerte. Para empezar, tres artículos donde comenzaremos a criptoanalizar la máquina Enigma comercial. Puede que os resulte algo pesado, a pesar de mis esfuerzos, así que tomáoslo con calma. Si algo no se entiende, seguid adelante. En segundo lugar, una primicia: extractos del nuevo libro "Libertad Vigilada", de Nacho García Mostazo. Y, por si fuera poco, nuevas fotografías para el Museo Camazón.
En cuanto pulse el botón de "enviar", el siguiente Boletín Enigma ya estará en preparación. Hay en preparación más artículos sobre criptoanálisis, documentos calentitos de los archivos españoles. Y muchas sorpresas. ¿Sabíais que el gobierno español quiso comprar Enigmas en 1931? ¿Queréis saber cuáles eran las claves que usaban los marineros del Mar Cantábrico? Pues cada cosa a su tiempo. Por de pronto, ahí va un boletín completo.
1. El método de tiras, primera parte
Los primeros intentos criptoanalíticos contra la Enigma militar (la que podemos denominar "modelo estándar") fue llevada a cabo por los polacos del grupo de Rejewski a comienzos de los años 30. Sin embargo, existe una solución anterior sobre otro modelo de Enigma, el comercial. Esta versión tiene ciertas diferencias con la militar, siendo la más relevante la ausencia de tablero de conexión. Como veremos aquí, eso posibilita un ataque criptoanalítico.
El primer ataque teórico contra una Enigma comercial -y, de hecho, de cualquier tipo- parece corresponder a Hugh Foss, quien hacia 1927 o 1928 escribió un informe titulado "La Enigma recíproca", que se guarda actualmente en los archivos británicos (Public Records Office, legajo HW 25/14). No me extenderé sobre él porque a) no lo conozco en su totalidad y b) alguien que sí lo ha examinado me ha reconocido que es un ataque complejo, cosa que he podido confirmar leyendo un par de páginas. Con todo, y en ausencia de pruebas ulteriores, podemos fijar la fecha 1927-28 como la de los primeros asaltos exitosos contra nuestra máquina de cifrado favorita.
El método de Foss fue refinado y potenciado por uno de los grandes criptoanalistas británicos: Dilly Knox. Este personaje, merecedor de nuestra atención en un futuro boletín, se encontró con el reto de descifrar los mensajes protegidos con Enigmas que, de repente, se comenzaron a captar en la España en guerra. En efecto, en Noviembre de 1936 las orejas electrónicas inglesas captaron mensajes cifrados con una máquina que posteriormente se identificó como una Enigma comercial, modelo K. Al parecer, la Alemania de Hitler dotó a las fuerzas franquistas de este tipo de máquina. Máquinas similares fueron usadas por Suiza e Italia durante la Segunda Guerra Mundial.
El procedimiento usado por Knox se denomina método de "rodding" en inglés, y "methode des batons" en francés. Aquí, en ausencia de una traducción adecuada, me permitiré llamarlo "método de tiras". Aunque cronológicamente es posterior a los ataques polacos contra la versión militar, lo presento aquí en primer lugar. No sólo considero más lógico comenzar por los ataques a las primeras versiones de Enigma, sino que, siendo el método de tiras heredero directo del procedimiento de Foss de finales de los años 20, podemos considerarlo como el primero cronológicamente hablando ... aunque por los pelos.
Desafortunadamente, explicar aquí el método de tiras requeriría varias páginas de tediosos desarrollos, y lo último que quiero es aburrirle, amable lector. Así que séame permitido sacrificar algo de rigor en beneficio de una explicación clara y accesible.
El método de tiras no debe verse como un ataque criptoanalítico fácil, directo e infalible. Muy por el contrario, requiere de elevadas dosis de paciencia, así como de intuición, habilidades lingüísticas y, por qué no decirlo, una buena dosis de suerte.
Lo primero que necesitamos es una chuleta. Y me da igual que ya hayamos comido, porque no van por ahí los tiros. Los criptoanalistas ingleses denominaban "chuletas" (cribs) a las palabras, o fragmentos de frase, que creían aparecían en un texto. Es una suposición sobre lo que el mensaje pueda incluir. Por ejemplo, si se trata de un mensaje al Alto Mando de la Armada, puede que la palabra "almirante" aparezca en el texto. Y ahí está el primer problema, porque podemos acertar o no. Pero ya les dije que no sería un método infalible. De hecho, veremos en boletines sucesivos que gran parte de los éxitos contra Enigma pasaban por tener chuletas, o al menos suponerlas.
Bien, tome aire, que allá vamos. Lo primero que supondremos es que, en el transcurso del mensaje, solamente gira el rotor derecho. Recordemos que el corazón de Enigma consta de tres rotores y un reflector. El rotor derecho (a veces denominado rotor rápido) da una vuelta cada 26 letras, y en un momento dado de esa vuelta arrastrará al rotor central. Es decir, el rotor central se moverá una vez cada 26 letras cifradas. Eso quiere decir que, en mensajes de pocas palabras, es bastante probable que dicho rotor no se haya movido. Por ejemplo, si consideramos las 5 primeras letras del mensaje, hay un 80% de probabilidades de que el rotor central no gire. Y por supuesto, para el rotor izquierdo las probabilidades a favor de que no gire son mucho mayores.
Es decir, la mayor parte del tiempo los rotores izquierdo y central se están quietecitos. Bien, pues esa va a ser nuestra segunda suposición: que solamente el rotor derecho se mueve. Podemos entonces dividir el mecanismo de cifrado en dos partes. Por una, un rotor que gira; por otra un conjunto inmóvil formado por el reflector y los rotores izquierdo y central.
Ahora, imaginemos que sustituimos mentalmente el conjunto inmóvil (reflector + rotor izquierdo + rotor central) por un sólo rotor o disco fijo, al que denominaremos "disco imaginario." De esta forma, la señal eléctrica que entra en el conjunto de rotores atravesaría los siguientes elementos: disco o cilindro de entrada (fijo), rotor derecho (rotatorio), disco imaginario, rotor derecho, disco de entrada. Es decir, el conjunto inmóvil actuaría como un reflector.
Vamos a rotular ahora el disco imaginario (y también el rotor derecho) de forma que, si lo miramos de frente, las letras aparezcan en el orden del teclado en sentido horario. Es decir, mirando el sistema desde la derecha -de donde vendrá la señal eléctrica de entrada-, el disco imaginario tendrá una q en la parte superior (la de las doce en punto en la esfera de un reloj); siguiendo la mirada en el sentido de las agujas del reloj, nuestros ojos se encontrarán con las letras w, e, r, t... (no usamos el orden alfabético por motivos de comodidad: en la versión comercial de Enigma, las conexiones del teclado iban al cilindro de entrada en el orden qwertzuiop..., no en el alfabético). Usaremos las minúsculas, y reservaremos las mayúsculas para el rotor derecho y el disco de entrada. Y hablaremos de "posiciones del rotor" para indicar su orientación. Si el rotor está con la Q en la parte superior, hablaremos de la posición 1 del rotor; si ha girado, será ahora la W la que aparezca en la parte superior del rotor, en cuyo caso diremos que éste está en la posición 2; y así sucesivamente.
Digamos que estamos cifrando la letra W. Pulsamos dicha tecla, y la señal correspondiente a la W entra al disco o cilindro de entrada. Lo que pase con la señal dependerá de cómo esté orientado el rotor derecho, y por supuesto, de cuál sea el rotor que tengamos ahí. Pero como conocemos el cableado del rotor, podemos determinar cómo se transforma dicha señal. Así que el rotor envía la señal al disco imaginario en la posición de, digamos, la letra n. Si en vez de la W hubiésemos intentado cifrar la letra B, la señal que recibiría el disco imaginario sería la de la posición de, digamos, la letra r. Para cada tecla que pulsemos en el teclado, obtendríamos una señal en el disco imaginario.
De ese modo, podríamos relacionar cada tecla pulsada en el teclado -o lo que es lo mismo, cada señal que entra en el disco de entrada- con cada posición en el disco imaginario. A fin de cuentas, eso es lo que hace el rotor derecho: tomar la señal de entrada, y cambiarla por una señal de salida. Pongamos un ejemplo real. Para el rotor I, la relación entre las señales de entrada (en mayúsculas) y las posiciones del disco imaginario (en minúsculas) son las siguientes:
Señal de entrada: CIWPDQMSLXVAKRJEFUHZGYTNBO
Disco imaginario: qwertzuioasdfghjkpyxcvbnmlSi usted estuviese sobre el disco imaginario, en la posición q (las doce en punto si el disco fuese un reloj), recibiría una señal procedente de la tecla C; su compañero situado en la posición w (las doce y pico) recibiría la señal de la tecla I, y así sucesivamente. Nótese que el orden del disco imaginario no es el del teclado actual, sino el alemán de los años 30, en el que la tecla a la derecha de la t es la z, no la y.
El conjunto inmóvil actúa como un reflector. No sabemos cómo es su estructura interna (ya que aún no sabemos qué rotores contiene, en qué orden ni con qué orientación), pero el caso es que conecta los puntos del disco imaginario a pares, y podemos averiguar al menos parte de dicha estructura interna desde fuera.
¿Cómo? Volvamos a unos párrafos atrás. Supongamos que el efecto del rotor derecho fuese conectar el contacto W (procedente del disco de entrada) con el contacto n del disco imaginario. Supongamos también que conectase el contacto B del disco de entrada con el contacto r del disco imaginario. ¿Qué pasaría si la máquina, en esas circunstancias, cifrase la letra W convirtiéndola en B? Pues que los contactos (n,r) del disco imaginario estarían conectados. De esa forma, al entrar la señal de la W, iría al disco imaginario en el punto n, saldría de dicho disco (que representa al resto del sistema) por el punto r, y de ahí saldría del disco de entrada por la B.
Bien, algo sabemos, aunque todavía no está claro en qué nos ayudará. Porque esto sólo sirve para la primera tecla que pulsemos. Aun cuando una "chuleta" nos haga suponer que la primera letra de texto llano (sin cifrar) es la W, la situación cambiará con la segunda letra. El rotor derecho habrá girado, de forma que las relaciones entre señal de entrada y disco imaginario habrán cambiado: al pulsar la tecla W la señal no irá a la posición n del disco imaginario.
Pero nosotros conocemos el rotor y su cableado. Eso significa que podemos saber cuál será la tecla que habrá que pulsar para que la señal llegue a una posición dada del disco imaginario, sea cual sea la orientación del rotor. La relación que vimos anteriormente era para un rotor en la posición 1 (en la que los contactos del rotor están rotulados siguiendo el orden quertzuiop..., con la q en la parte superior). O sea: con el rotor en la posición 1, la señal de entrada C va al contacto q del punto imaginario. ¿Y si el rotor está en posición 2, esto es, si ha girado un 1/26 de vuelta? Pues que el contacto q del punto imaginario recibe la señal que entra no por la C sino por la U.
Resumiendo: si sabemos la posición inicial del rotor, y cuál es éste, podemos saber lo que harán las señales en el sistema. Y, lo más importante, sabremos lo que no pueden hacer, lo que nos permitirá descartar posibilidades.
2. El método de tiras, segunda parte
Ya está bien de charla, vamos con un ejemplo práctico. Reconozco que no es mío, sino que aparece en un artículo denominado "rodding" de Frank Carter, disponible en www.bletchleypark.co.uk/rodding.pdf (puede que esta dirección cambie en el futuro). Usted es el criptoanalista, y ha recibido el siguiente mensaje:
MLXVK SCLDU HOHSV FKXKU .....
Por supuesto, usted no tiene NPI de lo que significa, pero tiene el barrunto de que las primeras letras corresponden a la "chuleta" CODEX (X era habitualmente usado como espacio entre palabras).
Vamos con la primera letra: C se transforma en M si nuestra chuleta resulta ser cierta. Vamos a suponer que el rotor derecho es el denominado I, y que su posición inicial es la 1. En esas condiciones, la relación entre señal de entrada y disco imaginario resulta ser la que hemos ya visto:
(Posición inicial de rotor 1)
Señal de entrada: CIWPDQMSLXVAKRJEFUHZGYTNBO
Disco imaginario: qwertzuioasdfghjkpyxcvbnmlComo vemos, al entrar la señal C va a la posición q, y a la salida la señal M proviene de la posición u. Si eso es cierto, significa que los puntos (q,u) del disco imaginario están conectados.
(Posición inicial de rotor 2)
Señal de entrada: UQKSLNAMYCOJEHWDZGTFPRBVIX
Disco imaginario: qwertzuioasdfghjkpyxcvbnmlAhora, la señal O está conectada con la s, y la L con la t. Conclusión: los puntos (s,t) del disco imaginario están conectados. Siguiendo con las otras tres letras de la chuleta, obtendríamos que los siguiente puntos del disco imaginario están conectados: (o,y) (r,k) y (b,x).
Esto nos sirve para dos cosas. Primera, para descartar casos imposibles; segunda, para obtener información adicional en los casos posibles.
Lo de los casos imposibles es inmediato. Supongamos que en vez del rotor I, hubiésemos partido de la hipótesis de que el rotor derecho es el II. Repitiendo el razonamiento anterior para dicho rotor, obtendríamos las siguientes conexiones en el disco imaginario:
(j,x) (p,c) (c,q) (f,n) (j,w)
Pero eso no es posible. Según esto, p está conectado con c, y c está conectado con q, lo que da lugar a una contradicción: !el contacto c está conectado con dos puntos distintos! Pero esto no puede ser, ya que mientras los rotores central e izquierdo no se muevan, los puntos del disco imaginario están conectados a pares. No podemos tener una señal que entre por c saliendo por p, y luego una que entre por q saliendo por c. El punto c está conectado por uno y sólo un punto.
¿Qué puede haber fallado? Varias cosas. O bien el rotor no es el II, o bien el rotor central sí se ha movido después de todo, o bien la chuleta no es la correcta. Si seguimos apostando por que la chuleta es correcta, y porque sólo se ha movido el rotor derecho, es que o éste no es el II, o su posición inicial es la incorrecta.
Se trata, por tanto, de probar cada uno de los tres rotores (no había más rotores en la versión comercial) en cada una de las 26 posiciones iniciales, lo que nos da 3*26=78 posibilidades, y para cada una de esas 78 posibilidades hemos de comprobar si aparecen inconsistencias del tipo que acabamos que ver. De momento, ya hemos visto que la combinación Rotor II + posición inicial A queda descartada. No será la única... pero no me pidan que comprobemos las 78 posibilidades, una tras otra.
En su lugar, volvamos a nuestro ejemplo. Seguimos con la hipótesis de que el rotor I con posición inicial 1 permite transformar el texto llano CODEX en el texto cifrado MLXVK.
Pero podemos ir más allá. Suponer que, en la segunda letra, la O se convierte en una L nos permitió deducir que los puntos (s,t) del disco imaginario estaban conectados. Eso sucede en la posición de rotor 2 (ya que supusimos que la primera letra cifrada correspondía a la posición de rotor 1), las letras O y L se conectan entre sí mediante los contactos (s,t) del disco imaginario.
Os ahorraré el cálculo intermedio, y solamente pediré que me creáis esto: en la posición de rotor 8, los puntos (s,t) conectan las letras L y E. Es decir, si con el rotor en la posición 8 pulsamos la tecla E en el teclado, dicha señal llegará al disco de entrada por la posición s, saldrá por la t, y de ahí saldrá del sistema por la L. Y viceversa: si pulsásemos la tecla L, obtendríamos el carácter cifrado E.
Y si miramos el texto cifrado MLXVK SCLDU HOHSV FKXKU ..... resulta que la octava letra cifrada es una L. Cuando se cifró la octava letra, el rotor estaba en la posición 8. Y cuando el rotor I está en la posición 8, una señal que entra por la L irá al disco imaginario por el contacto s, saldrá de él por el t, y el rotor derecho lo transformará en la E. Esto nos da un dato nuevo: la letra L que aparece en octava posición en el texto cifrado corresponde a la letra sin cifrar E.
Podemos obtener más información estudiando relaciones similares. La forma de hacerlo pasa por crear una tabla, donde las columnas son las posiciones iniciales del rotor (1,2,3...), y las filas son los contactos del disco imaginario. Vamos a poner solamente dos filas (tiras, o "rods"), correspondiente a los contactos t, s.
POSICIÓN INICIAL ROTOR I: 00000000011111111112222222
12345678901234567890123456
Contacto disco s : VOJQDNULUBRIYSOXTKAMPZEGWC
Contacto disco t : DLBIVHJEOCZPQXQKNWFTEGMSRYVéase cómo, en la posición inicial 2 (segunda columna), los contactos (s,t) unen las señales O,L. En ese caso, la señal eléctrica sigue el recorrido L-t-s-O (o bien O-s-t-L, ya que la Enigma es recíproca: si el sistema cifra L como O, también cifraría O como L en las mismas condiciones). Para la posición inicial 8, el recorrido es L-s-t-E. Y, para la posición inicial 14, el recorrido sería S-s-t-X. Como resulta que, precisamente en las posiciones de rotor 8 y 14, tenemos las letras cifradas L y S, podemos concluir que corresponden a las letras llanas (no cifradas) E y X, respectivamente.
De ese modo, sabemos al menos dos letras más de nuestro texto:
Texto cifrado: MLXVK SCLDU HOHSV FKXKU .....
Texto llano: CODEX E XY eso solamente con las tiras correspondientes a los contactos (s,t). Pero también teníamos los contactos (q,u) (o,y) (r,k) y (b,x). Si seguimos un proceso similar, acabaríamos con el siguiente texto llano:
Texto cifrado: MLXVK SCLDU HOHSV FKXKU .....
Texto llano: CODEX E I GX BEs decir, la chuleta CODEX nos da el texto llano correspondiente a otras cinco letras. Y podemos hacer dos cosas. La primera es aprovechar el conocimiento extraído de esas nuevas cinco letras para ir descartando posibilidades (recordemos que esto habría que hacerlo para cada una de las 26 posibles posiciones de cada uno de los tres rotores, tarea de chinos). Y lo siguiente es echarle algo de imaginación al asunto, lo que ya requiere de la intuición y conocimientos lingüísticos de que hablamos al principio.
Puesto que la X separa palabras, la segunda palabra seria algo así como "--E--I-G", donde "-" es una letra desconocida. Puesto que la primera palabra es "CODE", ¿podría la segunda corresponder a "BREAKING"? Sólo hay una forma de averiguarlo: intentémoslo. En el caso que nos ocupa (rotor I, con la posición inicial de partida 1), no sólo es posible, sino que obtenemos más parejas de contactos unidos entre sí en el disco imaginario: (a,n) (l,z), (w,v) y (m,h); y estos contactos, a su vez, nos permitiría obtener más letras:
Texto cifrado: MLXVK SCLDU HOHSV FKXKU .....
Texto llano: CODEX BREAK INGXA XBAsí, con infinita paciencia, podríamos obtener el texto llano. Y todavía hay más complicaciones. Por ejemplo, esto no nos permite obtener la posición del anillo (es decir, la relación entre el núcleo del rotor y su anillo exterior). Tampoco irán bien las cosas si, a pesar de lo que hemos supuesto, el rotor central gira durante el cifrado del texto. Y si la chuleta es incorrecta, apaga y vámonos.
Así, con infinita paciencia, podríamos obtener el texto llano. Y todavía hay más complicaciones. Por ejemplo, esto no nos permite obtener la posición del anillo (es decir, la relación entre el núcleo del rotor y su anillo exterior). Tampoco irán bien las cosas si, a pesar de lo que hemos supuesto, el rotor central gira durante el cifrado del texto. Y si la chuleta es incorrecta, apaga y vámonos.
Pero todos esos problemas se pueden solventar. La posición del anillo no es tan importante, ya que es la posición del rotor lo que determina el cifrado. Respecto a que el rotor central gire, es una complicación, sí, pero podríamos aplicar una técnica parecida a dos partes del texto, las correspondientes a antes y después del giro delrotor central; no es sencillo, pero una combinación de pericia lingüística y técnica matemática permite resolver el problema.
Pero fíjense en todo lo que hemos ganado a cambio. Complejo como pueda ser, este procedimiento solamente hay que aplicarlo en 78 casos, ya que no conocemos cuál es el rotor derecho (uno de tres) ni la posición inicial (una de 26 posibles); y de esos 78 casos, muchos serán descartados con mayor o menor rapidez. No obstante, un ataque de "fuerza bruta" requeriría probar todas las combinaciones de tres rotores (seis), todas las posiciones iniciales de cada combinación (26*26*26). Es decir, un total de 105.456 posibilidades. Pasar de 105.456 a 78 significa olvidarnos del 99.93% de los posibles estados iniciales de la máquina.
De hecho, el truco del disco imaginario nos permite, en muchos casos, despreocuparnos. No necesitamos conocer cuáles son los rotores izquierdo y central, ni cuáles eran sus orientaciones iniciales. Existían algunos casos, no obstante, en que sí eran útil conocerlas, ya que algunos países que usaban Enigmas comerciales para sus comunicaciones secretas usaban la misma posición inicial de los rotores para todos los mensajes enviados en un día. El método de las tiras nos permite conocer cómo es el rotor derecho (tipo y orientación inicial), lo que nos deja el trabajo de conocer los datos correspondientes a los otros dos rotores. El número de posibilidades sigue siendo grande (2*26*26=1.352), pero sigue siendo mucho menos que probarlas todas a piñón fijo.
Los alemanes no eran tontos, y muy probablemente ya habían notado la posibilidad del ataque por el método de las tiras. Por ello, cuando optaron por la máquina Enigma para codificar las comunicaciones del ejército, hicieron varias modificaciones. La más importante, como ya dijimos, era la introducción de un tablero de conexión que cambiaba algunas letras antes y después de pasar por el conjunto de rotores. Eso invalida el ataque de las tiras.
En el ejemplo anterior, imaginemos que el tablero de conexión intercambiase la letra C por la U, la X por la W y la E por la M (en la práctica, el número de parejas de letras intercambiadas era mayor, entre 8 y 12). En ese caso, la "chuleta" CODEXBREAKINGX se convertiría en UODMWBRMAKINGX antes de entrar en el conjunto de rotores, y de éste saldría convertido en el texto ELWVKSULDCHOHS. No hay manera de hacer una comparación entre chuleta y texto cifrado sin antes conocer las transformaciones hechas por el teclado de conexiones, y el número de posibilidades es astronómico. Vean el número de posibles transformaciones al intercambiar para N pares de letras:
N Número de transformaciones
1 325
2 44.850
3 3.453.450
4 164.038.875
5 5.019.589.575
6 100.391.791.500
7 1.305.093.289.500
8 10.767.019.638.375
9 53.835.098.191.875
10 150.738.274.937.250
11 205.552.193.096.250
12 102.776.096.548.125
13 7.905.853.580.625Para los curiosos de las matemáticas, la fórmula que da el número de posibles transformaciones de N pares de letras viene dada por la fórmula:
n!/[(26-2N)! * N! * 2^N] donde ^ significa "elevado a", y ! es el signo del factorial: n! = n*(n-1)*(n-2)... *3*2*1
El verdadero mérito del desciframiento de los mensajes de la Enigma militar consiste, sobre todo, en reducir tan enormes números a cantidades razonables. Pero eso ya lo veremos en su momento. Ahora, si les parece, veamos una batallita histórica en la que la ruptura de la Enigma comercial jugó un importante papel.
3. La batalla del Cabo Matapan
Cuando Italia entró en guerra del lado de Alemania en Junio de 1940, Inglaterra se encontró con un enemigo más al que combatir, uno que amenazaba las líneas de comunicación con el mediterráneo. La flota del almirante Cunningham necesitaría toda la ayuda disponible, y entre sus aliados más eficaces se contaron los criptoanalistas de Bletchley Park.
Se sabía que Italia había usado máquinas Enigma comerciales durante la Guerra Civil Española, pero había que averiguar si todavía eran usadas por la armada italiana, y si habían sido modificadas. De otro modo, el método de tiras de Knox podría ser aún usado, pero partiendo prácticamente de cero, lo que era un engorro, ya que este método requería de un exhaustivo trabajo previo de cálculo.
La tarea recayó sobre una joven pero talentosa colaboradora de Dilly Knox, la estudiante de diecinueve años Mavis Lever. Knox le había sugerido que probase PERX como chuleta; per significa "para" en italiano, y X se usaba, como separador de palabras. Una noche de septiembre de 1940, una de las combinaciones posibles del rotor derecho indicaba que casi había una buena concordancia. Por desgracia, fallaba en la cuarta letra. La chuleta PERX no servía, pero curiosamente sí habría valido la chuleta PERS.
En otras circunstancias, el criptoanalista se hubiera limitado a pasar a la siguiente orientación de rotor para seguir probando. Pero la señorita Lever tuvo lo que podríamos llamar una inspiración. ¿Y si la chuleta no fuese PERX, sino PERSONALE (personal)? Probó... y descubrió que la nueva chuleta era consistente con la orientación del rotor que estaba probando. Siguiendo el procedimiento anteriormente descrito, consiguió deducir varias letras de texto llano, lo que a su vez le dio pie para más chuletas. Para cuando acabó su turno, logró reconstruir el comienzo del mensaje: PERSONALEXPERXSIGNOR (personal para el señor), seguido de un nombre.
El barrunto de Lever permitió confirmar que, en efecto, la Enigma comercial italiana no había sufrido variaciones. A partir de este mensaje, y de otros que fueron posteriormente descifrados, loscriptoanalistas dedujeron un conjunto de chuletas para probar, lo que a su vez les dio acceso a más mensajes. Este procedimiento permitió a los ingleses leer los mensajes Enigma italianos hasta que dejaron de usar dicha máquina hacia el verano de 1941.
Un día, el 25 de mayo de 1941, un operador envió un mensaje desde Roma a un comandante italiano de la isla de Rodas. Usando como chuleta la palabra SUPERMARINA (nombre del alto mando naval italiano), un criptoanalista inglés dio buena cuenta del mensaje. El mensaje comenzaba diciendo "Con referencia al mensaje 53148 fecha 24. Hoy 25 Marzo es día X-3" Estaba claro que algo sucedería el día 28 de Marzo.
¿Pero qué? El mensaje no lo decía, y si sólo fuese por esa señal nada hubiera pasado. Pero los ingleses ya andaban con la mosca tras la oreja. La actividad de reconocimiento alemana en el mediterráneo se había incrementado sensiblemente, y diversos mensajes sugerían que se preparaba algo gordo en la zona. Las posibilidades más probables eran: un ataque contra los convoyes británicos que transportaban refuerzos a Grecia; ataques de diversión para proteger un desembarco en Creta; o un desembarco en Tripoli.
¿Pero qué? El mensaje no lo decía, y si sólo fuese por esa señal nada hubiera pasado. Pero los ingleses ya andaban con la mosca tras la oreja. La actividad de reconocimiento alemana en el mediterráneo se había incrementado sensiblemente, y diversos mensajes sugerían que se preparaba algo gordo en la zona. Las posibilidades más probables eran: un ataque contra los convoyes británicos que transportaban refuerzos a Grecia; ataques de diversión para proteger un desembarco en Creta; o un desembarco en Tripoli.
La opinión del almirante Cunningham y su estado mayor era que la hipótesis del ataque contra los convoyes de refuerzo a Grecia era la más probable. En eso, el desciframiento de Enigma no ayudó en nada. Pero hizo algo casi tan valioso: establecer la fecha del ataque. De nada sirve saber las intenciones del enemigo sin saber cuándo atacará. En sus memorias, Cunningham no hace la menor mención de los mensajes Enigma, ni de por qué sabía cuándo encontrarlos. Solamente hacía vagas alusiones: "la intensificación de las comunicaciones de la radio italiana nos incitó finalmente a levar anclas, ya de noche [27 de Marzo]..."
Lo que sucedió después ha pasado a la historia como una de las más brillantes victorias de la Royal Navy. Al amanecer del 28, un hidroavión inglés informó haber encontrado una flota de cuatro cruceros y cuatro destructores italianos. Estaban tan cerca de una flota naval inglesa, que Cunningham replicó "no sean bobos, acaban de ver nuestros propios buques." Pero el informe era correcto. Se ordenó a la flotilla inglesa -formada por destructores y buques ligeros- que se retirase, y hacia el anochecer los navíos pesados atacaron a un convoy italiano que escoltaba al crucero Pola, dañado anteriormente tras un ataque de torpedos.
Lo que siguió a continuación podría describirse mejor como una cacería de patos. Desprevenidos, sin radar y con las baterías pesadas apuntando a proa y popa como si estuviesen en un desfile, tres cruceros y un destructor italianos fueron convertidos en chatarra en pocos minutos. "¿Cómo describir la trágica situación de los crucero italianos? Torres enteras y enormes montones de hierros retorcidos volaban por los aires antes de caer al mar, levantando inmensas masas de agua. A los pocos minutos, los navíos ardían de proa a popa, convertidos en una tea incandescente. El encuentro no había durado más que unos minutos" (memorias del Alrimante Cunningham).
Al término de la batalla del cabo Matapan, la flota italiana había perdido los cruceros Zara, Pola y Fiume, los destructores Alfieri y Carducci y 2.400 hombres (el acorazado Vittorio Veneto, orgullo de la marina italiana, se salvó por los pelos). ¿Pérdidas inglesas? Un avión y su tripulación. Analizando la situación fríamente, la alegría de los criptoanalistas de Bletchley Park parece fuera de lugar. Pero no olvidemos que había una guerra en la que Inglaterra no iba precisamente ganando. Los convoyes que se dirigían a Grecia fueron salvados, lo que permitió contener a los alemanes durante más tiempo cuando, en Abril, los ejércitos de Hitler invadieron Grecia. La posterior evacuación británica hubiera adquirido tintes aún más dramáticos de haber mediado la intervención de la marina italiana.
Anterior
Principal