Etiquetas

viernes, 9 de junio de 2017

DESCIFRANDO ENIGMA

Allan Turing en descifrando el enigma

Nunca había escuchado hablar de este personaje. Y sinceramente después de ver esta película me quedé con las ganas de saber más. Es como si me hubiese sabido a poco. Muchos consideran, por lo que he leído, a Allan Turing como el padre de los ordenadores y no simplemente como un matemático brillante, un coco en toda regla.

De manufactura inglesa The Imitation Game nos adentra en el fascinante mundo del espionaje que tuvo lugar entre 1939 y 1945 durante el desarrollo de la segunda guerra mundial, y en la que precisamente los ingleses tuvieron un rol preponderante en la victoria de los aliados contra los alemanes, todo esto por el desarrollo de la maquina conocida como la Máquina de Turing que dentro de la trama del director M. Tyldum es llamada cariñosamente como “Cristopher” quien hace alusión a Christopher Morcom, el primer amor de Turing, que es finalmente el medio por la cual logra descifrarse el código de Enigma, la maquina utilizada por Alemania para encriptar mensajes de inteligencia y comunicación militar.

Nacido en Londres en 1912, Turing es considerado uno de los padres de la ciencia de la computación y precursos de la informática moderna por medio de algoritmos. Un amante de los puzles y de resolver los mismos como se plasma en la película. Allan Turing formuló y creo una maquinaria que descodificaba los mensajes cifrados de los nazis alemanes durante la segunda guerra mundial correspondientes a la maquina Enigma. La maquina de Turing o "Christopher" como se le nombre en la película. Muchos consideran que sus contribuciones son la razón por la que Inglaterra no desapareció del mapa en esa época de la historia humana y que incluso acortó la guerra en 2 a 4 años. La mención a padre de la computadoras es dada porque tras la guerra, diseño uno de los primeros ordenadores electrónicos programables digitales en el Laboratorio Nacional de Física. La vida laboral de este genio fue acortada en el 52 tras ser procesado como homosexual (61 años de prisión y castado quimicamente). Dos años después, murió por intoxicación de cianurio aunque mucho consideran que por suicidio.

Su biografía es muy fascinante e invito a leerla a cualquier lector en las miles de paginas web que existen que tratan este mismo tema. Lo que nos interesa en este blog es la parte más técnica/informática de este curioso personaje un tanto Sheldom Cooperiano (según lo que me trasmitió en la película).
La maquina de Tuirng es un dispositivo (definida en 1936) que manipula símbolos sobre una tira de cinta de acuerdo a unas reglas, unos códigos. Parece muy simple, que en realidad en cierta medida sí, es una simplicidad que salvó miles de vidas. A pesar de su simplicidad, la máquina puede ser adaptada para simular la lógica de cualquier algoritmo y es particularmente útil en la explicación de las funciones de de los mismos.
La máquina de Turing no está diseñada como una tecnología de computación práctica, sino como un dispositivo hipotético que representa una maquina de calculo/computación y ayudan a los científicos a entender los límites del cálculo mecánico.
Esta máquina además tiene la peculiaridad de que es capaz de imitar a otra máquina de Turing y su funcionamiento.
La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a:
  • Mover el cabezal lector/escritor hacia la derecha.
  • Mover el cabezal lector/escritor hacia la izquierda.
El cómputo se determina a partir de una tabla de estados de la forma:
(estado, valor) (nuevo estado, nuevo valor, dirección)
Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a escribir en la cinta.
La memoria es la cinta de la máquina que se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer símbolos. Inicialmente todas las celdas contienen un símbolo especial denominado "blanco". Las instrucciones que determinan el funcionamiento de la máquina tienen la forma, "si estamos en el estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha".
La máquina de Turing puede considerarse como un autónoma capaz de reconocer lenguajes concretos como los enumerables, de acuerdo a la jerarquía de Chomsky.  Esta explicación genérica no está muy  bien descrita en la película pero dentro de lo que cabe, esta se mantiene bastante fiel a la esencia del mensaje. Un ejemplo que he encontrado del descifrado de la máquina está basado en lo más parecido a un código binario explicado en algún blog previo. Este ejemplo toma la máquina de Turing sobre el alfabeto , donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo "1" de una serie. La máquina de Turing copiará el número de símbolos "1" que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, posiciona el cabezal sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada "111" devolverá "1110111", con "1111" devolverá "111101111", y sucesivamente.
El conjunto de estados es y el estado inicial es . La máquina realiza su proceso por medio de un bucle, en el estado inicial , reemplaza el primer 1 con un 0, y pasa al estado , con el que avanza hacia la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado , con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habrá ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado el cómputo.

Por tanto se puede deducir por lo mencionado que esta máquina tardaría lo suyo en descifrar el código, por eso fue tan importante el descubrimiento de unas palabras concretas que siempre aparecían en todos los mensajes porque reducía considerablemente las posibilidades de lectura de los mensajes ocultos y por tanto permitía descodificar los mismos a mucha más velocidad.

Tras informarme un poco sobre este personaje me quedo con las mismas sensaciones con las que me quedé al indagar en Tesla. Dos personajes de gran índole y indiscutiblemente claves en el desarrollo de sus culturas respectivas e incluso me atrevería a decir para la humanidad a los que no se les ha dado el reconocimiento que se merecían y que aunque se este intentando solventar queda un largo camino por recorrer. Dependiendo exclusivamente de quien o como se cuente la historia (Hechos reales y comprobables) puede resultar sumamente interesante y apasionante, o ser aburrida y tediosa, contar un suceso se vuelve algo sumamente complicado aunque considerando, en mi opinión la película era buena y recomiendo verla porque la estructura narrativa de la cinta es perfecta, se toma el tiempo justo para contar lo que es necesario saber para entenderla, y se te da hábilmente la oportunidad de querer más, de tal manera que es necesario recurrir a mas fuentes para conocer a detalle lo sucedido con Alan Turing, y porque, quizá el verdadero artífice de la derrota alemana haya sido condenado por la historia (por lo menos británica) y sobre cómo el mundo fue injusto con uno de los grandes personajes del siglo 20, de vital necesidad para quien guste del genero de drama, thriller y biográfico, pero más allá de todo eso. En definitiva, un buen plato para amantes de la historia, los conflictos bélicos y políticos. Alan Turing se convierte a partir de esta película en uno de los referentes históricos obligados para quienes tienen gusto por la informática, la política, la guerra e incluso la sexualidad, ¿Por qué menciono que esto sucede a partir de este momento? Porque la propia historia y el gobierno se encargaron de desaparecer todo vestigio de la vida y obra de Turing, hasta que después de 50 años de su muerte, se dan a conocer los archivos sobre la investigación y su papel determinante en la Segunda Guerra Mundial, que a la postre lo convierten en el hombre que propició la derrota de los Nazis en el conflicto armado, incluso recién el 24 de diciembre 2013 a solicitud del ministro de Justicia, Chris Grayling, que basado en un clamor popular, fue quien pidió a la soberana Isabel II que emitiera el indulto al amparo de la Real Prerrogativa de Misericordia y finalmente fue absuelto post mortem, lo que motiva que el sistema exculpe al matemático y la humanidad pueda conocer su vida finalmente. The Imitation Game cumple perfectamente con aquella sentencia que dice: “La realidad supera a la ficción” y conocer la historia del padre de la computación y verdadero ganador de la Segunda Guerra Mundial, es apasionante, finalmente cambio al mundo con su manera de pensar.