Artículos sobre ciencia y tecnología de Mauricio-José Schwarz publicados originalmente en El Correo y otros diarios del Grupo Vocento
Mostrando entradas con la etiqueta criptografía. Mostrar todas las entradas
Mostrando entradas con la etiqueta criptografía. Mostrar todas las entradas

Fundó la informática, ganó una guerra, murió perseguido

Los ordenadores que hoy son herramienta fundamental de la ciencia, la economía, el arte y la comunicación son, en gran medida, resultado del sueño de un matemático inglés poco conocido.

Estatua de Alan Turing en Bletchley Park.
(Foto Ian Petticrew [CC-BY-SA-2.0],
vía Wikimedia Commons)
Uno de los frentes secretos de la Segunda Guerra Mundial es Bletchley Park, que era un edificio militar (hoy museo) en Buckinghamshire, Inglaterra. Allí, un grupo de matemáticos, ajedrecistas, jugadores de bridge, aficionados a los crucigramas, criptógrafos y pioneros de la informática se ocuparon de derrotar al nazismo quebrando los códigos secretos con los que se cifraban las comunicaciones militares y políticas alemanas.

Desde 1919, los servicios secretos, criptógrafos y matemáticos habían estado trabajando sobre la máquina llamada “Enigma”, inventada originalmente por el holandés Alexander Koch y mejorada por técnicos alemanes para las comunicaciones comerciales, aunque pronto se volvió asunto de las fuerzas armadas alemanas. La máquina Enigma era esencialmente una máquina electromecánica que usaba una serie de interruptores eléctricos, un engranaje mecánico y una serie de rotores para codificar lo que se escribía en un teclado, y en una versión mejorada y ampliada se convirtió en la forma de codificar y decodificar mensajes militares alemanes de modo enormemente eficaz.

Al iniciarse la Segunda Guerra Mundial, aprovechando los esfuerzos criptográficos previos de quienes habían abordado los misterios de la máquina Enigma, el joven de 26 años Alan Mathison Turing desarrolló mejoras al sistema polaco anterior para romper el código Enigma y diseñó la llamada "bomba de Turing", una máquina que buscaba contradicciones en los mensajes para hacer deducciones lógicas que permitían descifrar los mensajes más rápida y eficazmente. Pero, por supuesto, ningún ejército depende de una sola arma, de una sola estrategia ni de un solo sistema de cifrado para sus mensajes secretos. Así, Turing después se vio implicado en el desciframiento del sistema indicador naval alemán, un desarrollo ampliado de Enigma. Más adelante, en 1942 fue parte del equipo encargado de romper el código FISH de la armada nazi y puso algunas de las bases del ordenador Colossus, desarrollado por otro departamento militar inglés durante la guerra.

El que sería, sin proponérselo, soldado clave, en la Batalla de Inglaterra en 1940 y en el triunfo aliado final de 1945 había nacido en 1912. Desde su niñez se habían hecho evidentes sus aptitudes para la ciencia y las matemáticas, lo que sin embargo no deslumbró a sus profesores, más interesados en el estudio de los clásicos. Turing, sin embargo, siguió estudiando y trabajando matemáticas por su cuenta y llegó a entender y desarrollar planteamientos de Einstein cuando sólo tenía 16 años, concluyendo, algo que Einstein aún no había declarado abiertamente, que su trabajo en la relatividad desafiaba la universalidad de las leyes de Newton. Más adelante, como estudiante en el King’s College de Cambridge (fue rechazado en el Trinity College por sus malas notas en humanidades), reformuló algunos planteamientos del matemático Kurt Gödel y en 1936 planteó una máquina hipotética (la “máquina de Turing”), un dispositivo manipulador de símbolos que, pese a su simplicidad, puede adaptarse para simular la lógica de cualquier ordenador o máquina de cómputo que pudiera construirse o imaginarse, de modo que podría resolver todos los problemas que se le plantearan. La máquina de Turing abre la posibilidad de crear máquinas capaces de realizar computaciones complejas, idea que desarrolló más ampliamente en Princeton. Esta máquina imaginaria permitió responder a algunos problemas matemáticos y lógicos de su tiempo, pero sigue siendo hoy en día uno de los elementos de estudio fundamentales de la teoría informática, pues mucha de la informática de hoy surge de la nueva forma de algoritmos (procedimientos matemáticos de solución de problemas) derivados de la máquina de Turing.

Turing trabajó en proyectos criptográficos del gobierno británico y fue llamado a Bletchley apenas Alemania invadió Polonia en 1938. Durante la guerra, además de su trabajo criptográfico, Turing se ocupó de aprender electrónica. Terminada la guerra, en 1946 en el Laboratorio Nacional de Física de Gran Bretaña, presentó el primer diseño completo de un ordenador con programas almacenados, algo trivial hoy en día. Después de años de construcción, retrasos y sinsabores, el ordenador ACE de Turing fue construido y ejecutó su primer programa el 10 de mayo de 1950. A partir de entonces, Turing se ocupó de la matemática en la biología, interesándose sobre todo por los patrones naturales (como la concha del nautilus o las semillas de un girasol) que siguen los números de Fibonacci.

El brillante matemático, sin embargo, era homosexual en una época en que no había ninguna tolerancia a su condición sexual y en un momento y un país donde los actos homosexuales se perseguían como delitos y como una enfermedad mental. Después de que su casa fue robada por uno de sus compañeros sexuales en 1952, Turing admitió públicamente su homosexualidad y fue declarado culpable. Se le dio la opción, tratándose de un personaje de cierta relevancia, de ir a la cárcel o de someterse a un tratamiento de estrógenos para disminuir sus impulsos sexuales, opción ésta que eligió el genio. Debido a su homosexualidad, que se consideraba un riesgo, perdió además sus autorizaciones de seguridad y se le impidió seguir trabajando en la criptografía al servicio de Su Majestad.

Turing apareció muerto el 8 de junio de 1954, según todos los indicios a causa de su propia mano, aunque quedan algunas dudas sobre la posibilidad de un accidente o un menos probable asesinato. Aunque había sido condecorado con la Orden el Imperio Británico por su trabajo en la guerra, éste permaneció en secreto hasta la década de 1970, cuando empezó la reivindicación de su nombre. En 2001, en el parque Sackville de Manchester, se develó la primera estatua conmemorativa que lo resume: "Padre de la ciencia informática, matemático, lógico, quebrador de códigos en tiempos de guerra, víctima del prejuicio”.

La prueba de Turing

Habiéndose ocupado desde 1941 de la posibilidad de la inteligencia de las máquinas, lo que en 1956 pasaría a llamarse "inteligencia artificial", Turing consideró que no había ninguna prueba objetiva para determinar la inteligencia de una máquina, y diseñó la llamada “Prueba de Turing”. En ella, un evaluador mantiene conversaciones simultáneas mediante una pantalla de ordenador con una persona y con una máquina, sin saber cuál es cuál. Tanto la persona como la máquina intentan parecer humanos. Si el evaluador no puede distinguir de modo fiable cuál es la persona y cuál la máquina, ésta habrá pasado la prueba y se debe considerar "inteligente".

Los códigos verdaderos

Máquina "Enigma" de la Alemania
nazi en el Museo Imperial de Guerra
británico. El desciframiento de su código
fue clave para el triunfo aliado.
(Foto D.P. de Karsten Sperling,
vía Wikimedia Commons)
Son los verdaderos códigos que cifran las comunicaciones, los que usamos cotidianamente, sabiéndolo o no, y de los que ha dependido también el devenir histórico.

Transmitir información de modo que sólo pueda acceder a ella el destinatario y resulte incomprensible para los demás, ha sido una necesidad constante en las sociedades humanas, y no sólo en casos evidentes como las guerras, sino en los terrenos de la religión, la transmisión del conocimiento y la oposición política.

El primer cifrado conocido se encuentra en la tumba del faraón egipcio Khnumhotep II, de alrededor del año 1900 a.n.e., donde un escriba utilizó jeroglíficos no estándares con un objetivo desconocido, que claramente no era la ocultación, pues la traducción del código se escribió junto a éste. Julio César, por su parte, sí utilizó un cifrado para su labor de guerra, un sencillo sistema donde cada letra se sustituía por la que estaba tres lugares más adelante (las últimas tres se sustituían por A, B y C), de modo que la palabra "papá" se escribiría "sdsd", y el descifrado de este código se realizaría restando tres a las letras recibidas. Por supuesto, el procedimiento de cifrado, la clave, debía mantenerse en secreto o el sistema sería inútil. La salvaguarda de las claves es desde entonces uno de los problemas clave de la criptografía.

Un código es una representación, más o menos compleja, del idioma. Por ello, la criptología estuvo tan ligada a los lingüistas, ya que ellos tenían la misión de descifrar idiomas antiguos de los que únicamente quedaba la representación gráfica. Así, los jeroglíficos egipcios no pudieron ser descifrados sino hasta el hallazgo de la piedra Rosetta, que tiene el mismo pasaje escrito en jeroglíficos, en demótico y en griego antiguo, estos dos últimos idiomas conocidos. Dado que cada jeroglífico se correspondía a una letra determinada, la piedra Rosetta funcionó como clave bastante para descifrar el idioma egipcio. Mucho más compleja es la tarea de descifrar jeroglíficos que no son fonéticos, sino ideográficos, es decir, donde cada símbolo representa no una letra, sino una idea o concepto. Tal es el caso de la escritura maya antigua, que apenas ahora empieza a ser decodificada por los expertos.

El paso del tiempo, el desarrollo de las matemáticas y las crecientes necesidades industriales y militares fueron refinando los procedimientos de codificación y cifrado, demandando de los profesionales criptográficos mejores herramientas para su labor de romper los códigos y descubrir los mensajes que otros deseaban mantener en secreto. Adicionalmente, no todos los códigos se realizan mediante la sustitución de letras, ya sea de manera constante o variable, pues hay otras muchas formas de cifrado. Por ejemplo, uno en el que cada palabra conste de dos números, el primero de los cuales sería el número de una página de cierta edición de El Quijote y el segundo el número de aparición de la palabra en el texto sería muchísimo más difícil de romper, máxime cuando cada palabra podría tener numerosísimas representaciones si aparece varias veces en el libro. Todo lo cual daría un código que no se podría romper fácilmente sin la clave.

Es bastante conocida la historia de la guerra criptográfica en la Segunda Guerra Mundial, que entre otras cosas dio especial impulso al desarrollo de los ordenadores por a la necesidad que tenían los servicios de inteligencia británicos de automatizar el análisis de los códigos nazis. Por ello tuvieron entre sus especialistas al matemático Alan Turing, uno de los padres de la informática moderna, que consiguió romper los códigos del ejército alemán, generados mediante una máquina (llamada "Enigma") que, por medio de ruedas que agregaban variaciones sucesivas a cada letra, generaba un código sólido. Para descifrarlo se necesitaba no sólo la máquina, sino la posición inicial de todas las ruedas giratorias, que debía conocerse para poder descifrar los mensajes incluso disponiendo de la máquina. Aún así, desde 1941 hasta el fin de la guerra, los aliados pudieron leer todos los mensajes alemanes.

En la actualidad, la generación de códigos más común y su descifrado correspondiente se realizan por medio de algoritmos matemáticos dentro de nuestros ordenadores. Se trata de códigos que efectivamente pueden romperse por el sistema de "fuerza bruta", es decir, probando billones y billones de combinaciones hasta dar con la clave correcta. Por eso, la fortaleza de un código se mide en el número de opciones mediante las cuales puede representarse cualquier elemento del mensaje original. Así, cuando se habla de un cifrado de 40 bits, cada carácter cifrado puede tener 1.099.511.627.776 valores distintos. En el número de una tarjeta de crédito cifrado en 40 bits, cada uno de los 16 dígitos puede tener uno de esos más de mil billones de valores, de modo que si no se tiene la clave, todo es asunto de probar esos valores combinados de todas las formas posibles en los 16 dígitos hasta dar con el número correcto.

Resultó que los 40 bits no eran tan difíciles de manejar para los ordenadores modernos, de modo que actualmente se emplea un cifrado de 128 bits, con lo que cada dígito de una tarjeta de crédito, o cada letra de una palabra, puede tener 309 billones de billones de valores (309 seguido de 24 ceros). Con un cifrado de esa fortaleza, el uso de la aproximación de "fuerza bruta" estaría reservado sólo a superordenadores que puedan trabajar durante muy largo tiempo en cada labor de descifrado, lo cual los pone fuera del alcance del descifrador común que busca robar números de tarjeta de crédito, y según los expertos seguirá siendo útil unos 8 o 10 años. Los cifrados militares, por su parte, son aún más fuertes.

Códigos verdaderos como éstos hoy rigen parte de nuestra vida y posibilitan el desarrollo de transacciones comerciales grandes y pequeñas por medios electrónicos, además de proteger nuestra información de quienes no tienen derecho a disponer de ella. El cifrado, al fin y al cabo, es una búsqueda de seguridad… con una historia genuina al menos tan interesante como la de las novelas que algunos confunden con realidad histórica.

Estadística y literatura

La criptografía fue un popular interés en el siglo XIX y fue una de las disciplinas que dio origen a la estadística, como lo demuestra el relato "El escarabajo de oro" de Edgar Allan Poe, en el cual se presenta un código cifrado que el protagonista resuelve por medio de la estadística, determinando qué símbolo se repetía con más frecuencia en el código y correlacionándolo con la letra más frecuente en el idioma inglés (y, curiosamente, en el castellano), la "e". El autor, el relato y su desarrollo criptográfico fueron homenajeados seis décadas después por Arthur Conan Doyle en el cuento de Sherlock Holmes "La aventura de los danzarines".