Páginas

Páginas

Descifrando Enigma

 

Introducción

En este documento se aborda la explicación de una máquina criptográfica desarrollada en el siglo XX, la máquina Enigma, una máquina de rotores utilizada para el cifrado de mensajes, que poseía la mayor tecnología de cifrado de la época, por lo que fue utilizada por numerosos ejércitos del mundo.

Debido a que Enigma fue utilizada durante la Segunda Guerra Mundial, una máquina derivada, Bombe, fue desarrollada por Alan Turing en 1936, con objeto de descifrar el método de codificación de la anteriormente mencionada Enigma.

El descifrado de Enigma y sentó una de las bases de la computación moderna, al estar relacionada con las máquinas de Turing, predecesoras de las computadoras modernas.

Vista general de Enigma. Fuente: Wikimedia

Contexto histórico

La máquina Enigma fue patentada en 1918 por la empresa alemana Scherbius & Ritter, siendo comercializada por primera vez en 1923 (el primer modelo, ya que existieron varios modelos derivados). Tres años después, en 1926, primero la Armada alemana, y después el resto del ejército, la incorporaron para uso militar, gozando de gran relevancia durante la Segunda Guerra Mundial.

Sin embargo, en 1939, los servicios secretos de Polonia interceptaron un ejemplar de Enigma, que, aunque no era una versión militar, arrojó pistas sobre el tipo de máquina con el que los alemanes podrían comunicarse durante la nueva guerra.

El método de cifrado de Enigma fue descubierto, tal y como se explica en el apartado 4, por los servicios secretos británicos, siendo la figura de Alan Turing una de las más relevantes en este descubrimiento, que se calcula, pudo acortar la Segunda Guerra Mundial unos dos años.

Logo de Enigma. Fuente: Wikimedia

La Máquina Enigma, encriptación “infalible”

La máquina Enigma es una máquina electromecánica de rotores dedicada al cifrado y descifrado de códigos, especialmente, de uso militar.

Las razones de su uso por parte del ejército alemán fueron debido a su sencilla utilización por parte de las tropas y su cifrado infalible, si bien con el transcurso de la guerra, los criptógrafos del bando de los aliados descubrieron su sistema de cifrado.

Componentes de Enigma. Elaboración propia

Componentes

La máquina constaba de una caja de unas dimensiones aproximadas de 15x28x30 cm y contaba con los siguientes componentes:

  • Fuente de alimentación: Al tener partes eléctricas, era necesario proveer de una pequeña fuente de alimentación.
  • Teclado (input): El teclado contaba con 26 teclas, una para cada una de las letras, y su aspecto era similar al de una máquina de escribir.
  • Rotores: Ubicados en la parte superior de la máquina, se encargan de cifrar cada una de las letras, y también contienen 26 secciones. Cada máquina tenía tres rotores colocados en paralelo que se podían combinar entre sí, si bien en algunas máquinas militares el número era de cinco rotores. En todo caso la configuración de los rotores venía estipulada por los manuales, especificando la configuración para cada día, tal como se explica en el apartado 3.3.
  • Reflector: Tras haber pasado la señal por los tres rotores, el reflector se encargaba de redirigirla otra vez hacia los rotores. Este componente era lo que diferenciaba a Enigma de otras máquinas de rotores, ya que hacía posible el descifrado con el mismo método.
  • Stecker: Con objeto de aumentar aún más la seguridad, las máquinas destinadas a uso militar añadieron un stecker o tablero de interconexión para realizar las permutaciones de las diferentes letras (en parejas de dos) que estableciese el manual para cada fecha, que se explica detalladamente en el apartado 3.3.
  • Panel luminoso (output): Para recibir las correspondientes letras cifradas o descifradas, se disponía en la parte superior del teclado de un panel cuyas letras se iluminaban dependiendo del mensaje (des)encriptado.

Teclado y panel (output) de Enigma. Fuente: CIA

Funcionamiento

Para conocer el funcionamiento de Enigma, hay que tener en cuenta que la máquina permitía tanto el cifrado como el descifrado, que se realizaban mediante el mismo procedimiento, gracias al reflector que se ha comentado anteriormente.

La primera acción que se debía realizar para cifrar y descifrar un código era configurar la máquina acorde a los parámetros que establecía el manual para ese día, tal y como se explica detalladamente en el apartado 3.3.

Las teclas debían apretarse con decisión para que se produjese el cifrado correctamente. Fuente: Wikimedia

A continuación, se procedía al cifrado/descifrado, letra por letra, pudiendo procesar unas 20 letras por minuto:

Cifrado

Al ser pulsada con precisión una letra, ésta viaja hacia el stecker, donde es permutada con la otra letra de su pareja. De ahí pasa a los rotores, de derecha a izquierda. En cada rotor, la letra es cambiada debido a que, en el interior de éstos, existen cables que cambian la salida de éste hacia otra posición. Tras repetir tres veces este procedimiento (con los tres rotores), la letra pasa al reflector, donde vuelve a cambiar el apuntador hacia el tercer rotor, repitiendo el proceso de los rotores a la inversa. Tras haber pasado por los tres rotores por segunda vez, el rotor de la derecha gira una posición (*ver giro de los rotores), y la letra, tras haber cambiado otras tres veces, viaja de nuevo hacia el stecker, donde vuelve a ser permutada con la otra letra de su pareja, y finalmente, la letra cifrada se ilumina en el panel.

Descifrado

El descifrado se realiza de igual forma que el cifrado, introduciendo las letras cifradas y obteniendo las descifradas, siempre y cuando inicialmente los rotores deben tener la posición que marca el manual.

(*) Giro de los rotores

Como ya se ha especificado anteriormente, tras haber pasado por los tres rotores por segunda vez, el rotor de la derecha gira una posición, y tras haber completado una vuelta el rotor derecho, gira una posición el rotor central. De igual forma, cuando el rotor central haya dado una vuelta, el rotor izquierdo gira una posición, tal y como haría en un reloj con la aguja del segundero, minutero y horas.

El diagrama de flujo del cifrado y descifrado de cada una de las letras quedaría de la siguiente forma:

Funcionamineto del algoritmo de Enigma. Elaboración propia

Nivel de seguridad

Combinaciones

De acuerdo con el modelo K de Enigma, ésta contaba con tres rotores con 26 posiciones cada uno, por lo que se obtienen un total de  combinaciones, pero, debido a que los rotores pueden cambiarse de posición, se obtienen , y además, cada rotor tiene 26 posiciones (letras) para situar la letra de inicio, por lo que quedaría: , es decir, casi 2 mil millones de combinaciones.

Y si esto fuera poco, si se le añadía el stecker inferior, la anterior cifra se multiplicaría, y en algunas máquinas militares, que llegaron a poseer hasta 5 rotores, el número de combinaciones podía llegar hasta cifras astronómicas como .

Ejemplo de cifrado (alemán)

Para ilustrar mejor el procedimiento de cifrado de Enigma, se va a exponer un caso real de un mensaje enviado durante la Segunda Guerra Mundial entre militares del bando nazi:

 

Antes de descifrar el mensaje, se debe configurar la máquina con los parámetros indicados en el manual de códigos alemanes para ese mes. Para el 7 de julio de 1941 (fecha del mensaje) era el siguiente:



 

Que se interpreta de la siguiente forma:

  • Tag (día): 7
  • Walzenlage (rotores): Colocarlos en disposición 2 – 4 – 5
  • Ringstellung (posiciones iniciales): Indicaban la posición inicial de cada uno de los rotores, en este caso: 2, 21 y 12, respectivamente.
  • Steckerverbindungen (stecker): Indicaba las permutaciones de letras en el stecker: A con V, B con S, C con G, etc.

El mensaje se envió en dos partes, ya que era demasiado largo. En la cabecera, la única parte sin encriptar, se observaba lo siguiente:




 

 

En el mensaje de la izquierda se observaba la hora (1840 -> 18:40), informaba de que se componía de dos partes (2TLE), y que esa era la 1ª parte (1TL). El siguiente número indicaba el tamaño del mensaje, y los dos siguientes grupos de letras eran la configuración inicial y la clave cifrada del mensaje, respectivamente.

El operador debía poner los rotores en la posición WCX, y teclear KCH, de lo que obtenía BLA. A continuación, ponía los rotores en la posición otorgada (BLA), y comenzaba a descifrar. Lo mismo se había de hacer con la segunda cabecera. El mensaje descifrado era el siguiente:

 


Uniendo los mensajes, y tomando las X como espacios, quedaría de la siguiente forma:



Algunos nombres propios, como Kurtinowa, se repetían dos veces, y algunos pares de letras se sustituían por una letra (CH por Q, por ejemplo), por lo que traducido al español quedaría de la siguiente manera:

Máquina Bombe, descifrando Enigma

Como ya se ha comentado, los servicios secretos polacos interceptaron un ejemplar de Enigma en 1939, y cuando los alemanes comenzaron a utilizarlas, los polacos intentaron descifrarla buscando el cableado de los rotores, para recuperar la configuración usada por los nazis.

Uno de los avances se produjo en 1932, cuando el matemático polaco Marian Rejewski logró descifrar el código de Enigma, pero al no tener acceso a las máquinas (hasta 1939 no la interceptaron), no pudieron descifrarla.

En 1939 estalló la guerra, y los alemanes añadieron dos rotores más a la máquina. Polonia, al ver muy cerca la posible invasión por parte de los nazis, decidió compartir sus investigaciones con los servicios franceses y británicos.

El equipo británico se instaló en Bletchley Park, y con ayuda polaca, numerosos criptógrafos, matemáticos, desarrollaron el plan “Ultra”, encargado de quebrar el tráfico de mensajes entre las tropas del ejército nazi.

Sin embargo, uno de los matemáticos de Bletchley Park llamado Alan Turing, desarrolló la máquina Bombe, una máquina destinada a descifrar la configuración de los rotores de Enigma en el bando alemán. Para ello Bombe replicaba la acción de varias máquinas Enigma cableadas unas con otras, con lo que se pudo obtener algunos de los ajustes diarios de las máquinas alemanas. Gracias a esta intervención, los ejércitos del bando aliado pudieron monitorizar bastantes de las estrategias y movimientos de las potencias del Eje, tomando las decisiones militares oportunas.

Este plan secreto no fue desclasificado y dado a conocer hasta 50 años después de la guerra, y se atribuye a Alan Turing y su método el acortamiento de la Segunda Guerra Mundial unos dos años, salvando así unas 14 millones de personas aproximadamente

Referencias

Otras máquinas de rotores de la Segunda Guerra Mundial

Durante la Segunda Guerra Mundial se utilizaron, aparte de Enigma, otras máquinas de cifrado por rotores, siendo las siguientes algunas de ellas:

  • Sigaba: Fue una máquina estadounidense utilizada hasta la década de 1950, cuyo funcionamiento era similar a Enigma, salvo que no tenía reflector y contaba con 15 rotores, que se agrupaban en tres bancos de rotores. Así mismo, tampoco existen indicios de haber sufrido ataques o haber sido testigo de descifrados masivos del bando enemigo.
  • Purple: Fue una máquina de cifrado japonesa, la cual los americanos consiguieron descifrar antes de que empezara la Segunda Guerra Mundial, lo que permitió derribar el avión japonés que pilotaba el Almirante Yamamoto. Cabe destacar que esta máquina es una evolución de Enigma, ya que los japoneses crearon una máquina similar con modificaciones, y así utilizar una máquina distinta a la de los alemanes, ya que en un futuro éstos podrían ser enemigos de Japón.
  • TypeX: Fue una máquina británica utilizada entre 1937 y la década de 1950, concebida como una adaptación comercial y más segura de la máquina Enigma. A diferencia de Enigma, contaba con un reflector y 5 rotores, de los cuales dos eran estacionarios, y en uno de los rotores se duplicó cada contacto eléctrico para mejorar la fiabilidad.
  • Hagelin B-21: Fue desarrollada por Boris Hagelin en 1925, y tuvo muchas versiones diferentes. Hagelin propuso esta máquina cuando el ejército sueco mostró interés por las máquinas Enigma; por lo que a partir de una máquina previa (B-18), realizó mejoras como agregar dos ruedas de pasador para controlar el paso de cada una de las ruedas de codificación. Con el paso de los años se sucedieron modificaciones posteriores de B-21.
  • Kryha: Fue desarrollada por Alexander von Kryha y utilizada entre las décadas de 1920 y 1950. La máquina era totalmente mecánica, si bien hubo varias versiones, una de ellas, eléctrica. Su funcionamiento se basaba en dos anillos con un alfabeto en cada uno, similar al cifrado de Alberti.

Referencias:

2. Cifrado Lorenz

Las máquinas Lorenz (SZ40 y SZ42) fueron unas máquinas alemanas de cifrado de teletipo utilizadas durante la Segunda Guerra Mundial desde 1941 para las comunicaciones de alto nivel, mientras que Enigma se reservaba para el resto de comunicaciones. Durante el transcurso de la guerra, los criptógrafos británicos de Bletchley Park consiguieron romper el cifrado en enero de 1942.

La máquina Lorenz cifraban cada carácter mediante 5 bits paralelos, por lo general, en código Baudot, y que acababan XOReados en texto plano. Los 5 bits se generaban mediante 10 rodillos de los cuales 5 de ellos eran rodillos motor.

Referencias:

3. Max Newman y Colossus

Las Colossus fueron unas máquinas británicas destinadas a descifrar las comunicaciones cifradas alemanas durante la Segunda Guerra Mundial, especialmente de las máquinas de Lorenz (SZ40 y SZ42), explicadas en el anterior punto.

La máquina original fue diseñada por Tommy Flowers, y su primer prototipo, la Colossus I entró en servicio en 1944 en las instalaciones de Bletchley Park, si bien posteriormente se llegaron a construir más máquinas, hasta unas diez máquinas más.

Para el descifrado, Colossus comparaba dos flujos de datos provenientes de las comunicaciones interceptadas cifradas con Lorenz, y contaba cada coincidencia basada en una función booleana programable.

Por otra parte, Max Newman era el encargado de la sala Newmanry, la sección de Bletchley Park donde se encontaba la máquina Colossus.

Referencias:

4. Cifrados alfabéticos (monoalfabéticos y polialfabéticos)

Dentro de los cifrados clásicos, existen los cifrados por sustitución, en los que se sustituye cada carácter por otro, con objeto de cifrar y ocultar el mensaje original.

Dentro de los cifrados por sustitución, existen los cifrados monoalfabéticos y los cifrados polialfabéticos.

En los cifrados monoalfabéticos cada carácter se sustituye siempre por otro mismo carácter del alfabeto de sustitución. Algunos alfabetos de sustitución más conocidos son los siguientes:

  • Cifrado César: Para el cifrado basta con rotar tres posiciones el alfabeto, por lo que la A sería la D, la B se sustituiría por la E, la Z por la C, etc.
  • ROT-13: De similares características que el Cifrado César, pero con una rotación de 13 posiciones.
  • Cifrado francmasón: Consiste en sustituir los caracteres por un conjunto de símbolos de un alfabeto de sustitución.

Por el contrario, en los cifrados polialfabéticos no siempre se sustituye cada carácter por el mismo, debido a que en el sistema existen varios alfabetos que se aplicarán según conveniencia. Los más conocidos son los siguientes:

  • Cifrado de Alberti: Consiste en un anillo con un alfabeto (real) en la parte exterior y un alfabeto (de sustitución) en la parte inferior, de tal forma que un caracter de la parte exterior corresponde a uno de la parte inferior. El cifrado se establece mediante la posición inicial y los criterios de movimiento del disco.
  • Cifrado de Trithemius: Este cifrado utiliza una tabula recta, un diagrama cuadrado de alfabetos donde cada fila se construye desplazando la anterior un espacio hacia la izquierda.

Referencias:

5. Submarino alemán U110 y su relación con Enigma

El submarino U110 fue un submarino alemán que participó en la Segunda Guerra Mundial, que fue capturado por soldados de la Royal Navy británica el 9 de mayo de 1941, dentro de la llamada Operación Primrose.

El U110 debía atacar un buque británico, pero debido a una serie de fallos en las armas, el ataque falló y el submarino quedó al descubierto, por lo que los barcos británicos procedieron a atacarlo, hasta que los soldados alemanes del U110 recibieron orden de abandonar el submarino, ya que parecía hundirse, por lo que algunos de los soldados alemanes fueron rescatados por barcos británicos.

Por otra parte, y desde otro barco británico, se expidió con rapidez una lancha para abordar el U110, ya que se estaba hundiendo, y debían rescatar material del bando enemigo para analizarlo.

Cuando los soldados alemanes que habían huido del U110 observaron que el submarino no se estaba hundiendo, algunos intentaron volver para destruir el material criptográfico y otros documentos de alto valor, ya que los habían dejado en el submarino puesto que éste se iba a pique, y con él, los documentos.

Pero los soldados británicos de la lancha llegaron antes y consiguieron rescatar una máquina Enigma, junto con varios documentos y los manuales de configuración. Por otra parte, los soldados alemanes que fueron rescatados (capturados) por el buque británico, también proporcionaron información acerca de sus métodos criptográficos.

Referencias:

 Pablogg

 

 

 

 

No hay comentarios:

Publicar un comentario