viernes, 9 de mayo de 2014

El “Enigma” del U-110

Máquina Enigma
Entre las muchas ventajas técnicas de las que disfrutaban los alemanes al comenzar la Segunda Guerra Mundial la máquina de cifrar “Enigma”, considerada indescifrable, ocupaba una posición privilegiada. Había sido inventada en 1918 y mejorada posteriormente. Se trataba de una máquina de escribir portátil a la que se añadían varios rotores. La clave dependí a de los rotores usados y del orden y posición en que se colocaban. Los operadores de la máquina disponían de instrucciones, variables cada pocos días, sobre cómo debían colocarse los rotores. 

Los británicos, empeñados en lograr descifrar los mensajes de los alemanes, establecieron en Bletchley Park, una mansión reconvertida en instalación militar. la supersecreta GC&CS (Escuela de Códigos y Cifrados del Gobierno). Dirigiendola se encontraba uno de los mas brillantes matemáticos del siglo XX: Alan Turing. Con paciencia, ecuaciones e intuición para aprovechar ocasionales fallos de seguridad, el equipo capitaneado por Turing encontró pautas en los mensajes que permitieron entender detalles del funcionamiento de “Enigma”, pero el entendimiento de su núcleo funcional permanecía impenetrable. Pronto resultó evidente que, para conseguir avances significativos, era necesario contar con los elementos físicos de “Enigma”.

Al finalizar la Primera Guerra Mundial se estableció en el Tratado de Versalles que Alemania no podría disponer de submarinos. Sin embargo a partir de 1935 los nazis construyeron casi 1200 “U boote” que durante la Segunda guerra mundial causaron enormes pérdidas a las flotas aliadas

U 110 durante su captura
Centrémonos en uno de estos U boot: el U-110. Fue construido el 1940 en los astilleros de Bremen, entrando en servicio a finales de ese mismo año bajo las órdenes del Capitán Fritz-Julius Lemp. Este submarino llevo a cabo dos salidas en las que hundió 3 buques aliados y alcanzó, sin hundirlos, otros dos. El 9 de mayo de 1941, junto con el U 201, atacó un convoy aliado al sur de Islandia. Al fallar el lanzamiento de uno de sus torpedos fue descubierto y atacado con cargas de profundidad por una corbeta británica. Obligado a salir a la superficie, el Capitán Lemp, seguro de que el submarino se hundiría, ordenó a la tripulación su abandono.

Los marinos británicos de los buques de escolta del convoy atacado por  el U 110, que habían sido convenientemente aleccionados, vieron la oportunidad de contribuir al trabajo del grupo de Turing y abordaron el submarino. Grande fue su sorpresa al encontrar una gran cantidad de documentos secretos y, sobre todo, una máquina “Enigma” intacta y en funcionamiento.

Alan Turing 
Gracias a esta captura el método de cifrado de los germanos fue totalmente penetrado. Pronto todo el ejército alemán fue transparente para unos ingleses que leían los comunicados al poco de ser emitidos. Las consecuencias no se hicieron esperar: los ataques a los convoyes fueron fácilmente esquivados y los submarinos atacantes cazados. Rommel fue derrotado al conocerse sus problemas de combustible. Los soviéticos vencieron en la batalla de Kursk al disponer de toda la información sobre los blindados alemanes a los que se enfrentaban facilitada por los británicos.

La ruptura del sistema de cifrado “Enigma” fue una contribución decisiva a la victoria aliada. Existe un consenso generalizado entre los historiadores: sin ella, el curso de la guerra habría sido muy diferente, alargándose varios años o incluso alterando su desenlace. 

jueves, 1 de mayo de 2014

BASIC cumple 50 años

Tom Kurtz and John Kemeny.
(Photo courtesy of Rauner Special Collections Library, Dartmouth College)
Hace 50 años los ordenadores estaban en su primera infancia. Nadie soñaba con la ubicuidad de los mismos que ahora experimentamos. Pero ya había visionarios que comprendían la importancia que para los hombres del futuro tendrían los ordenadores. Y decidieron poner a disposición de las escuelas y universidades las herramientas para formar a profesores y alumnos en su comprensión y uso.

En la Universidad de Dartmouth un par de profesores de matemáticas, John George Kemeny y Thomas Kurtz, se ocuparon primero de dotar a la universidad de un ordenador y de lograr poner en marcha lo que entonces se llamaba un sistema de tiempo compartido, de manera que toda la comunidad universitaria pudiera utilizarlo simultáneamente.  La culminación de su esfuerzo fue la definición de un lenguaje de programación que, apoyado en el correspondiente compilador para traducir sus instrucciones al lenguaje máquina, y unos cuantos comandos para sustentar un entorno operativo; permitieran que cualquiera fuera capaz de programar aquel único ordenador compartido por todos. Este lenguaje al que nos referimos se llamó BASIC (Beginner's All-purpose Symbolic Instruction Code) y hoy cumple 50 años ya que el 1 de mayo de 1964 por la mañana el profesor Kemeny y un estudiante teclearon el comando RUN en sus terminales y ejecutaron por primera vez programas escritos en BASIC.

Aunque en aquel momento ya existían algunos otros lenguajes de programación, como el FORTRAN, el lenguaje BASIC era mucho más sencillo y fácil de aprender y utilizar. Con este sistema lograron que estudiantes y profesores pudieran interactuar con el ordenador y compartirlo de manera sencilla, usando un lenguaje de programación apto hasta para los no especialistas. Gracias a este desarrollo, tras Dartmouth, su uso se extendió rápidamente por muchas universidades y escuelas del mundo.

En la década de los 70, tras la invención del microprocesador, se produjo la aparición acelerada de pequeños ordenadores que atrajeron la atención de muchos aficionados domésticos. No había entonces software disponible y cada uno de los entusiastas usuarios desarrollaba, o copiaba, programas escritos en BASIC para divertirse o para ayudarse en sus tareas escolares o profesionales. Entre estos primeros “expertos” del BASIC estaba un estudiante de la Universidad de Harvard llamado Bill Gates. Junto con su amigo Paul Allen desarrolló una versión de BASIC para el microordenador Altair 8800 y poco después ambos fundaron una pequeña compañía llamada Microsoft cuyo primer producto fue el Microsoft BASIC. Tras el éxito arrollador de Microsoft aportando el sistema operativo MS-DOS, y posteriormente Windows, al entorno de los ordenadores personales, Microsoft BASIC siguió existiendo e incluso experimentó un nuevo resurgimiento en la década de los 90 cuando apareció Visual BASIC para soportar interfaces graficas de usuario.

Aún en la actualidad existen descendientes del lenguaje creado por Kemeny y Kurtz hace 50 años. La compañía que ambos fundaron, True BASIC sigue comercializando y dando soporte a versiones actualizadas del lenguaje. Otros dos ejemplos notables son una versión gratis de Visual Basic dentro de la plataforma Visual Studio Express, y un  entorno para ayudar a los principiantes en el mundo de la programación llamado Small BASIC.

Para todos los que hemos disfrutado programando en BASIC este 50 aniversario y la pervivencia del lenguaje, aunque en versiones alejadas de las primitivas, son una gran noticia. He de reconocer que me he emocionado al ver la retrospectiva que en esta efemérides ha montado la Universidad de Dartmouth y los muchos actos organizados incluyendo una interesantísima mesa redonda sobre los próximos 50 años en el mundo de la computación. Es importante pensar que en la actualidad tenemos a nuestro alcance una enorme capacidad de proceso en nuestros ordenadores, tabletas y teléfonos inteligentes. Muchos de ellos están diseñados para propiciar nuestro consumo, pero también deberíamos utilizarlos para desarrollar ideas y crear proyectos en consonancia con la intención de los creadores de BASIC: conseguir el acceso de todos a los ordenadores para potenciar la creatividad y el desarrollo humano.