En este antepenúltimo post sobre los métodos de criptoanálisis empleados para "romper" el código de la máquina Enigma le toca el turno a la etapa de Bletchley Park, una vez iniciada la II Guerra Mundial.
Decía en el post anterior que el primer método con el que comenzaron a trabajar los británicos fue el de las hojas Zygalski, pero que duró poco tiempo, ya que a mediados de 1940 los alemanes dejaron de transmitir dos veces de forma consecutiva los tres caracteres cifrados de la "clave de sesión", con lo que se invalidaron todos los métodos de criptoanálisis basados en ese doble cifrado.
Una vez más, las comunicaciones del ejército alemán eran opacas por completo. Me imagino a los británicos apilando hojas perforadas de forma convulsiva sin obtener ningún resultado, acordándose de las madres de Hitler y de todos sus secuaces, y preguntándose qué es lo que habían cambiado esta vez.
Pero, ya antes de que se produjera este cambio en la operativa de la máquina, Alan Turing estaba trabajando en un método de criptoanálisis alternativo que no dependiera del doble cifrado de la "clave de sesión", sino que atacara a otras debilidades del cifrado de la máquina y de su utilización: el cifrado recíproco (por su diseño, una letra nunca se cifra como esa misma letra) y la previsión (suposición) de parte de los contenidos de los mensajes transmitidos por los alemanes, tanto debido a su excesivo formalismo y a su mente "cuadriculada" - ambas cosas muy propias del carácter germano -, como a la tipología de los mismos, por ejemplo: partes metereológicos.
De esta forma, Turing se basó en la conjetura de que ciertos textos sin cifrar (ellos acuñaron el término "crib" para referirse a ellos) se encontraban en el texto cifrado.
Si no lo he entendido mal y para comprender mejor en que se basaba este método, veamos un ejemplo utilizando como "crib" la siguiente: "WETTER VORHER SAGE" (texto en claro que posiblemente se encontraba en los partes metereológicos y que creo que en alemán quiere decir algo así como: "PRONÓSTICO DEL TIEMPO").
1º) Supongamos que en el texto cifrado aparece la siguiente secuencia de caracteres (primera línea) y situamos justo debajo la "crib":
Se trata de ir buscando el encaje de la "crib" (texto en claro conocido) con el texto cifrado para hallar las posibles correspondencias entre los caracteres de la primera con los del segundo, descartando aquellas que no es posible obtener con una máquina Enigma.
Es decir, en primer lugar, si los caracteres en una determinada posición coinciden en ambos casos (texto cifrado y "crib") descartaríamos esas posibles correspondencias, ya que por el diseño de la máquina una letra nunca se puede cifrar como esa misma letra, y desplazaríamos la "crib" una posición a la derecha hasta encontrar alguna posición relativa en la que esto no ocurra.
2º) Examinamos ahora las posibles correspondencias (en nuestro ejemplo ninguno de los caracteres de la "crib" coincide en la misma posición con el mismo carácter en el texto cifrado, aunque que esto ocurra es mucho más probable de lo que puede parecer):
Esto lo que nos dice es que, si el texto cifrado se corresponde con la "crib", con un determinado orden de los rotores y posición de los mismos (a la que llamaremos posición relativa 1) la máquina cifra el carácter "W" como "R" (y, debido a la reciprocidad del cifrado de la máquina, "R" como "W"), en la posición relativa 2 la letra "E" como "J" (y a la inversa, la "J" como "E"), y así sucesivamente.
Esto se puede expresar mediante el siguiente grafo:
A los gráficos de este tipo se les conocía como "menú" (en inglés, "menu"), y servían para configurar la bomba, la máquina que inventó Turing para automatizar el proceso de búsqueda de las configuraciones de la máquina Enigma en las que era posible que el texto en claro conocido pudiera cifrarse como parte del texto cifrado (y, a la inversa, esa parte del texto cifrado pudiera descifrarse como el texto en claro) o, mejor dicho, para descartar aquellas configuraciones que no permitían esto. A mayor número de bucles - en inglés, "loops" - más configuraciones de la máquina era posible desechar, ya que son muy pocas las que pueden satisfacer todas las restricciones de conectividad impuestas por el "menú".
En nuestro ejemplo se pueden observar los siguientes tres bucles:
1.- "T" ---> "K" ---> "S" ---> "T";
2.- "T" ---> "S" ---> "E" ---> "T";
3.- "T" ---> "E" ---> "W" ---> "R" ---> "T".
Se trata ahora de descartar órdenes de los rotores y posiciones de éstos que no satisfagan las citadas restricciones de conectividad, pero antes de contar esto con más detalle veamos en qué consistía la famosa máquina electromecánica conocida como bomba de Turing, y posteriormente, tras la aportación (simple conceptualmente, pero sin duda genial) de su colega Gordon Welchman, como la bomba Turing-Welchman.
Nada fácil lo que me propongo explicar, ya que ni su diseño ni su implementación (tampoco hay que olvidar a quienes la llevaron a cabo a partir de la lógica de estos genios) son ni mucho menos sencillos.
Por lo que he investigado, la primera versión de la bomba de Turing, a la que llamaron "Victory", entró en funcionamiento en marzo de 1940, y en la siguiente figura represento sus componentes principales conforme a lo que he entendido:
Cada tambor reproducía el cableado de uno de lo rotores de la máquina Enigma (I, II, III, ...), es decir, realizaba las mismas transformaciones de caracteres que éste, y su color identificaba al rotor al que replicaba (tambor rojo ---> rotor I, etc.).
Cada una de las tres baterías de 12 codificadores de doble extremo simulaba hasta 12 máquinas enigma conectadas en serie. Estas tres baterías no estaban conectadas eléctricamente entre sí y, por tanto, cada una de ellas podía ser configurada para un orden de los tambores y un menú concretos; aunque sí estaban conectadas mecánicamente a un motor que hacía girar de forma sincronizada los tambores de las tres baterías.
La idea del conector de doble extremo surgió por la necesidad de simular el funcionamiento de varias máquinas Enigma trabajando en serie, para lo que se necesitaba separar la entrada ("camino" de ida hacia el reflector) de la salida ("camino" de vuelta desde el reflector) de cada uno de lo rotores. Para ello, cada tambor disponía de dos conjuntos de cableado, que en ambos casos se correspondían al del rotor al que replicaba.
Al colocarse uno de los tambores sobre la placa en la que se montaba, el cableado interno de cada uno de sus dos conjuntos cerraba el circuito con los correspondientes contactos del par exterior y del par interior de los cuatro círculos concéntricos, respectivamente.
Gráficamente podríamos representarlo de la siguiente manera:
Cuando la bomba encontraba una configuración de la máquina Enigma que no podía desechar se paraba, es decir, ese orden de los rotores y posición de los mismos era compatible con las restricciones impuestas por el menú, por lo que se trataba de una posible solución que debía probarse para comprobar si era la correcta o no.
Sin embargo, en su diseño inicial la bomba no era muy eficaz. En el siguiente post contaré cuál fue la aportación de Gordon Welchman al diseño de la bomba para aumentar su eficacia y retomaré el ejemplo puesto en éste para explicar cómo se configuraba la bomba y su funcionamiento una vez puesta en marcha.
Decía en el post anterior que el primer método con el que comenzaron a trabajar los británicos fue el de las hojas Zygalski, pero que duró poco tiempo, ya que a mediados de 1940 los alemanes dejaron de transmitir dos veces de forma consecutiva los tres caracteres cifrados de la "clave de sesión", con lo que se invalidaron todos los métodos de criptoanálisis basados en ese doble cifrado.
Una vez más, las comunicaciones del ejército alemán eran opacas por completo. Me imagino a los británicos apilando hojas perforadas de forma convulsiva sin obtener ningún resultado, acordándose de las madres de Hitler y de todos sus secuaces, y preguntándose qué es lo que habían cambiado esta vez.
De esta forma, Turing se basó en la conjetura de que ciertos textos sin cifrar (ellos acuñaron el término "crib" para referirse a ellos) se encontraban en el texto cifrado.
Si no lo he entendido mal y para comprender mejor en que se basaba este método, veamos un ejemplo utilizando como "crib" la siguiente: "WETTER VORHER SAGE" (texto en claro que posiblemente se encontraba en los partes metereológicos y que creo que en alemán quiere decir algo así como: "PRONÓSTICO DEL TIEMPO").
1º) Supongamos que en el texto cifrado aparece la siguiente secuencia de caracteres (primera línea) y situamos justo debajo la "crib":
Se trata de ir buscando el encaje de la "crib" (texto en claro conocido) con el texto cifrado para hallar las posibles correspondencias entre los caracteres de la primera con los del segundo, descartando aquellas que no es posible obtener con una máquina Enigma.
Es decir, en primer lugar, si los caracteres en una determinada posición coinciden en ambos casos (texto cifrado y "crib") descartaríamos esas posibles correspondencias, ya que por el diseño de la máquina una letra nunca se puede cifrar como esa misma letra, y desplazaríamos la "crib" una posición a la derecha hasta encontrar alguna posición relativa en la que esto no ocurra.
2º) Examinamos ahora las posibles correspondencias (en nuestro ejemplo ninguno de los caracteres de la "crib" coincide en la misma posición con el mismo carácter en el texto cifrado, aunque que esto ocurra es mucho más probable de lo que puede parecer):
Esto lo que nos dice es que, si el texto cifrado se corresponde con la "crib", con un determinado orden de los rotores y posición de los mismos (a la que llamaremos posición relativa 1) la máquina cifra el carácter "W" como "R" (y, debido a la reciprocidad del cifrado de la máquina, "R" como "W"), en la posición relativa 2 la letra "E" como "J" (y a la inversa, la "J" como "E"), y así sucesivamente.
Esto se puede expresar mediante el siguiente grafo:
A los gráficos de este tipo se les conocía como "menú" (en inglés, "menu"), y servían para configurar la bomba, la máquina que inventó Turing para automatizar el proceso de búsqueda de las configuraciones de la máquina Enigma en las que era posible que el texto en claro conocido pudiera cifrarse como parte del texto cifrado (y, a la inversa, esa parte del texto cifrado pudiera descifrarse como el texto en claro) o, mejor dicho, para descartar aquellas configuraciones que no permitían esto. A mayor número de bucles - en inglés, "loops" - más configuraciones de la máquina era posible desechar, ya que son muy pocas las que pueden satisfacer todas las restricciones de conectividad impuestas por el "menú".
En nuestro ejemplo se pueden observar los siguientes tres bucles:
1.- "T" ---> "K" ---> "S" ---> "T";
2.- "T" ---> "S" ---> "E" ---> "T";
3.- "T" ---> "E" ---> "W" ---> "R" ---> "T".
Se trata ahora de descartar órdenes de los rotores y posiciones de éstos que no satisfagan las citadas restricciones de conectividad, pero antes de contar esto con más detalle veamos en qué consistía la famosa máquina electromecánica conocida como bomba de Turing, y posteriormente, tras la aportación (simple conceptualmente, pero sin duda genial) de su colega Gordon Welchman, como la bomba Turing-Welchman.
Nada fácil lo que me propongo explicar, ya que ni su diseño ni su implementación (tampoco hay que olvidar a quienes la llevaron a cabo a partir de la lógica de estos genios) son ni mucho menos sencillos.
Por lo que he investigado, la primera versión de la bomba de Turing, a la que llamaron "Victory", entró en funcionamiento en marzo de 1940, y en la siguiente figura represento sus componentes principales conforme a lo que he entendido:
Cada tambor reproducía el cableado de uno de lo rotores de la máquina Enigma (I, II, III, ...), es decir, realizaba las mismas transformaciones de caracteres que éste, y su color identificaba al rotor al que replicaba (tambor rojo ---> rotor I, etc.).
Cada una de las tres baterías de 12 codificadores de doble extremo simulaba hasta 12 máquinas enigma conectadas en serie. Estas tres baterías no estaban conectadas eléctricamente entre sí y, por tanto, cada una de ellas podía ser configurada para un orden de los tambores y un menú concretos; aunque sí estaban conectadas mecánicamente a un motor que hacía girar de forma sincronizada los tambores de las tres baterías.
La idea del conector de doble extremo surgió por la necesidad de simular el funcionamiento de varias máquinas Enigma trabajando en serie, para lo que se necesitaba separar la entrada ("camino" de ida hacia el reflector) de la salida ("camino" de vuelta desde el reflector) de cada uno de lo rotores. Para ello, cada tambor disponía de dos conjuntos de cableado, que en ambos casos se correspondían al del rotor al que replicaba.
Al colocarse uno de los tambores sobre la placa en la que se montaba, el cableado interno de cada uno de sus dos conjuntos cerraba el circuito con los correspondientes contactos del par exterior y del par interior de los cuatro círculos concéntricos, respectivamente.
Gráficamente podríamos representarlo de la siguiente manera:
Cuando la bomba encontraba una configuración de la máquina Enigma que no podía desechar se paraba, es decir, ese orden de los rotores y posición de los mismos era compatible con las restricciones impuestas por el menú, por lo que se trataba de una posible solución que debía probarse para comprobar si era la correcta o no.
Sin embargo, en su diseño inicial la bomba no era muy eficaz. En el siguiente post contaré cuál fue la aportación de Gordon Welchman al diseño de la bomba para aumentar su eficacia y retomaré el ejemplo puesto en éste para explicar cómo se configuraba la bomba y su funcionamiento una vez puesta en marcha.
Mikel, de entrada enhorabuena por tu blog, es muy bueno, especialmente por tus posts sobre criptografía, y en particular por la máquina Enigma. Lo tienes todo muy trabajado. Es una delicia leerte.
ResponderEliminarYo soy también uno de los aficionados a Enigma, bueno, casi profesional, porque hemos publicado (junto a mi colega Paz Jiménez Seral) artículos y dado cursos de verano sobre Enigma, incluso participamos en un documental que está a punto de proyectarse en TVE2. Nos gusta la etapa de los polacos. Preferimos presentar las cosas con permutaciones, como Rejewski, y tenemos cierto éxito, por ejemplo resolviendo los retos que plantea Bouchaudy. Los puedes ver en en http://www.jfbouch.fr/crypto/challenges/EH
En fin, te he localizado buscando a personas que les guste este tema. Te apunto. Enhorabuena, otra vez.
Manuel Vázquez
Departamento de Matemáticas
Universidad de Zaragoza
vazquez@unizar.es
Muchas gracias por tu comentario Manuel. Yo soy sólo un modesto aficionado a temas de criptografía y, en especial y en lo que se refiere a la criptografía clásica, un entusiasta el tema de la máquina Enigma.
EliminarEstaría encantado de poder mantener el contacto contigo, y os seguiré, tanto a ti como a tu colega, en todas las actividades que realicéis sobre estos temas, y también encantado de que me hayas mandado el link con los retos.
Un saludo y, otra vez, muchas gracias,
Gracias por tu respuesta. Temía que siendo el mío un comentario enterrado en un post tuyo de hace 6 años ya no tendría ningún eco. Por supuesto que seguiremos en contacto.
EliminarAprovecho para anunciarte que justo este mismo miércoles, 28 de abril de 2021, a las 22:00, se emitirá en TVE2 el documental sobre la relación entre la máquina Enigma y unos criptógrafos republicanos españoles. Nos podrás poner cara a Paz y a mí mismo. Seguro que te gustará el documental.
También aprovecho para anunciarte el próximo curso de verano en Jaca de la Universidad de Zaragoza, titulado "La máquina Enigma en la historia y en el cine", para el 1 al 3 de julio. Más información en https://cursosextraordinarios.unizar.es
en el área de ingeniería (no sé porqué en ese área). Saludos
Muchas gracias por la info. Muy interesante: el documental de este miércoles no me lo pierdo y estaré pendiente del curso de verano en Jaca.
EliminarUn saludo,