Alan Turing vs Enigma, o como la computación venció en la segunda guerra mundial.

Alan Turing vs Enigma, o como la computación venció en la segunda guerra mundial.

El pasado 23 de Junio fué el aniversario del nacimiento de Alan Turing. Con motivo del mismo, nos hemos animado a hacer una publicación un tanto especial en nuestro (y vuestro) blog.

1 de Septiembre de 1939. Alemania invade Polonia, dando así inicio a uno de los episodios más negros de nuestra historia reciente. En contraposición, fué una de las etapas más brillantes en el desarrollo científico e intelectual en infinidad de campos. (Como por ejemplo, en física nuclear. He ahí el proyecto Manhattan... aunque de eso ya hablaremos más adelante) Uno de los más destacables, la computación. Podría decirse que fué el nacimiento de la informática moderna.

Alan Mathison Turing fué un matemático, lógico, criptógrafo y científico de la computación, nacido en Londres en 1912, se considera el padre de la computación moderna y precursor de la informática tal cual la conocemos. Desde 1938, trabajó para el ejército descifrando códigos nazis, destacando en sus avances sobre el código Enigma, y posteriormente en el Naval Enigma. 

Vale, pero, ¿qué es enigma?

Enigma era el nombre que se le daba a la máquina usada por los nazis para encriptar y desencriptar mensajes y protegerlos del espionaje aliado.

Era tan facil de utilizar y supuestamente imposible de descifrar, es por eso que casi todas las comunicaciones alemanas eran traducidas a este código para evitar su captación y poder comunicarse con total certeza de que sus mensajes no iban a ser interceptados. Se trataba de un dispositivo electromecanico, es decir, compuesto de partes electrónicas y partes mecánicas, constaba de un teclado similar al de las máquinas de escribir cuyas teclas eran interruptores, un engranaje mecánico y un panel de luces con las letras del alfabeto. 

Mediante una batería, se iban encendiendo cada una de las lámparas de ese panel en función de la tecla presionada. Existían 5 rotores con 26 contactos eléctricos, una por cada letra del alfabeto. Al cambiar la configuración, la conexión entre estos rotores cambiaba de manera que en el rotor uno podía estar seleccionada la letra A y en el rotor 2 la T, y así sucesivamente... pero mejor os dejamos un vídeo de la universidad de Burgos y el museo de Burgos en la que se explica muy bien:

Resulta sorprendente saber que se habían usado alguna de estas máquinas en la guerra civil española, ¿verdad? 

Llegados a este punto, alguno de vosotros os preguntaréis. ¿Dónde está la complejidad? Por muy dificil que sea, unas cuantas personas sentadas probando diferentes combinaciones cada vez tendría que bastar, ¿no? Pues... creo que es el momento de sacar la calculadora y ofreceros un asiento a nuestro lado.

Vale, imaginemos: 

3 rotores con 26 combinaciones cada uno, un deflector que cada vez seleccionaba un "camino" dentro de esos 3 rotores, mas las clavijas de configuración... el resultado rondaba las 1016 combinaciones. Si no recuerdas bien la notación científica ( a parte de invitarte a que te pases por aquí... ;) ), te la recordamos: 

  • Un uno seguido de dieciseis ceros
  • 10.000.000.000.000.000
  • Diez mil billones de combinaciones

Efecitvamente, has leido bien, diez mil billones de combinaciones. Para este momento seguramente tu mandíbula desencajada te impida hablar. Pero nosotros vamos a seguir haciendo cálculos, que para eso nos encantan las matemáticas en esta academia ;) 

Supongamos que una persona promedio puede probar una combinación en una máquina enigma cada 60 segundos. (Esto supone programar la máquina, probar unas cuantas letras hasta comprobar que el mensaje saliente tiene o no sentido, darse un par de cabezazos contra la mesa de desesperación, blasfemar, etcétera), supongamos que tenémos las máquinas enigma que queramos sobre la faz de la tierra y supongamos que cada uno de los individuos anteriores tienen la capacidad sobrehumana de no dormir en 24 horas y de estar lo suficientemente despierto para no equivocarse a la hora de cambiar las combinaciones. 

Un solo individuo tardaría 6944444444444 días, cerca de 20 mil millones de años. Y además había una limitación (por si esta parecía poca). Los alemanes cambiaban la combinación de los rotores a diario, por lo que como máximo tenían un solo día para probar las combinaciones. Sin duda, enigma parecía indescifrable por completo. 

via GIPHY

 

Pero,  ¡cuéntanos algo más sobre Alan!

Entonces llegó Alan Turing, como os comentábamos anteriormente. Desde pequeño mostró interés por las matemáticas y por la quimica, sorprendiendo a sus profesores con sus aptitudes (y a sus padres en mas de una ocasión, puesto diseñó un laboratorio químico en su casa, amenazando con lanzarla por los aires en más de una ocasión). Su pasión por el estudio era algo fuera de lo común, tanto que el día que debía ingresar en la universidad recorrió en bicicleta los 90 kilómetros que separaban su casa de Kings College, ya que coincidió con una huelga general en Inglaterra.
Nunca estuvo especialmente interesado en el estudio de los clasicos y, como pasa con muchos genios, era nefasto en aquellas asignaturas que no llamaban su atención. Tanto que llegó a suspender sus exámenes finales varias veces, (siendo compensado con la brillantez de sus calificaciones en matemáticas y química). Y al final, con 24 años, en 1935, se convirtió en profesor de Kings College, su universidad (pese a haber elegido Trinity en primer lugar) 

Destacó, además de en matemáticas, en computación y en sus estudios sobre la inteligencia artificial (si, esa que ya sabéis vosotros que nos gusta tanto)

Un día después de la declaración de guerra por parte de Gran Bretaña  fué convocado a Bletchley Park, donde se encontraba el servicio británico de descifrado. Ahí, 9000 personas intentaban descifrar los códigos enigma de los que hablabamos previamente. Obviamente, sin resultado alguno. Por su cuenta habían conseguido descifrar algún mensaje, pero nunca completos. Al final, el reloj marcaba las 00:00 y el código volvía a cambiar de nuevo, haciendo que todo el trabajo del día anterior resultase completamente en vano. Alan y el equipo de personas que reunió fueron capaces de detectar ciertos patrones en los mensajes, pero no era suficiente. Tras un tiempo en un callejón sin salida, se preguntó: "¿Y si, para poder vencer a una máquina, necesitamos otra máquina?"

En base a este pensamiento, comenzó a trabajar en un prototipo de máquina que fuese capaz de detectar la configuración alemana con una "muestra" de mensaje, en esencia, realizando combinaciones de rotores de manera similar a la máquina enigma. Tras un tiempo realizando optimizaciones al boceto inicial, el 14 de Marzo de 1940 consiguieron crear "Bombe", el prototipo de computadora (o mejor dicho, dispositivo electromecánico) que sería capaz de descifrar los códigos enigma.

Bombe, descifrando enigma.

"¿Y si, para poder vencer a una máquina, necesitamos otra máquina?"

Alan Turing


Tras la construcción de esta primera máquina, y el veloz desarrollo de otras 200 más, los aliados comenzaron a interceptar mensajes de las fuerzas alemanas que les permitieron adelantarse a sus movimientos y, finalmente, vencer la guerra. Se calcula que gracias al trabajo de Turing, la guerra se acortó de 2 a 4 años. (Independientemente del uso de las bombas de Hiroshima y Nagasaki, de las que podremos hablar más adelante). Sin duda, el desarrollo de Bombe fué todo un hito en la historia de la computación (y de la criptografía también). 

Lamentablemente, en 1952 fué condenado por su homosexualidad y su carrera cesó bruscamente. Tras cumplir su condena, Alan Turing se suicidó en su domicilio, comiendo de una manzana en la que previamente había inyectado cianuro. Una historia realmente triste. A raíz de éste ultimo dato, cuenta la leyenda que el logo de cierta compañía es un homenaje hacia él. ¿Adivinas de que compañía se trata?

via GIPHY