Ir al contenido principal

Criptografía (CXCIV): Solución Reto 40

Solución al último reto de criptografía que he puesto y en el que se ve involucrada la máquina de cifrado más famosa de la historia; la utilizada por el ejército alemán durante la Segunda Guerra Mundial, la máquina EnigmaEn este blog ya he escrito muchas entradas sobre dicha máquina, incluso he puesto algunos retos sobre ella, pero siempre haciendo referencia al modelo M3 de la misma. En este reto, además del mencionado modelo, aparece también el modelo empleado por la sección de submarinos (U-boat) de la armada alemana (Kriegsmarine), el modelo M4 o la llamada Enigma Naval.


El enunciado del reto decía lo siguiente: Las diferencias fundamentales entre el modelo M3 de la máquina Enigma utilizado por la Wehrmacht y la Luftwaffe (las fuerzas de tierra y aéreas del ejército alemán, respectivamente) y el modelo M4 empleado en exclusiva en la sección de submarinos (U-boat) de la Armada alemana (Kriegsmarine) eran:

1.- El modelo M3 utilizado por la Wehrmacht y la Luftwaffe disponía de 5 rotores (identificados con los números romanos I, II, III, IV y V) y que eran utilizables de tres en tres en las ranuras dispuestas para alojarlos, mientras que el modelo M4 disponía de 3 rotores adicionales, es decir, de un total de 8 rotores (identificados con los números romanos I, II, III, IV, V, VI, VII y VIII) y que igualmente eran utilizables de tres en tres en las ranuras dispuestas para alojar los rotores "normales".

2.- El tamaño de la máquina (de su carcasa) era el mismo para los dos modelos, pero en el modelo M4 se deseaba utilizar un rotor más y, por tanto, el problema era que dicho rotor tenía que caber en el mismo espacio que el que había en el modelo M3. Para resolver ésto, los dos reflectores existentes en el modelo M3 ("B" y "C") fueron estrechados, dando origen a los reflectores "B fino o estrecho" (en inglés, 'B Thin') y "C fino o estrecho" (en inglés, 'C Thin') del modelo M4.

3.- Consecuencia de lo anterior, el modelo M4 podía utilizar un rotor adicional de entre dos rotores también "finos o estrechos" (en inglés, 'Thin Rotors'), de menor grosor que los "normales" y que no giraban, pero que al igual que estos últimos y los reflectores podían ser configurados en 26 posiciones diferentes, y que se identificaban con las letras griegas Beta y Gamma. Para alojar este rotor adicional el modelo M4 disponía de 1 ranura más para alojar uno de estos dos rotores "finos o estrechos".

Pues bien, supón que el día 8 de marzo de 1942 un U-boat de la Kriegsmarine que se encuentra en pleno Atlántico Norte recibe el mensaje cifrado desde un acorazado alemán (recordar que la M4 se usaba sólo en la sección de submarinos; en el resto de la Kriegsmarine se utilizaba el modelo M3, aunque con 8 rotores utilizables de tres en tres) que se muestra en los recursos asociados al reto. Además, imagina que eres el operador de la máquina Enigma destinado en ese U-boat, por lo que dispones de la hoja de configuración (en inglés, 'Setting Sheet') de ese mes (la configuración inicial correspondiente al día 8 figura en los recursos asociados al reto) y sabes que el mensaje se cifró utilizando el reflector "B". ¿Puedes descifrar el mensaje recibido, que ha sido cifrado con una máquina de modelo M3, utilizando tu máquina de modelo M4?

Se recomienda utilizar el simulador que se indica en los recursos asociados al reto, aunque este desafío se puede resolver también utilizando cualquier otro de los muchos simuladores existentes en Internet e incluso mediante scripts implementados en diversos lenguajes de programación.

Y como recursos asociados al reto se proporcionaban los siguientes:

- Rotores y orden de los mismos, ajuste de los anillos y pares de letras a conectar entre sí para el día 8 de marzo de 1942:
Datum  Walzenlage  Ringstellung  ---- Steckerverbindungen ----
 08.    V II III      A  K  E    CI OK PV ZL HX NB AW DJ FE ST
- Mensaje (cabecera sin cifrar y texto cifrado):
Cabecera del mensaje:

1425 - 1TLE 109 - ZYX DPP

Significado de la información en la cabecera del mensaje:
1425 Hora en la que se envía el mensaje (14:25).
1TLE: Número de partes de las que se compone el mensaje (1 parte. TLE, del alemán ‘Teile’ o “Partes”).
Tamaño del texto cifrado: 109.
Posición inicial de los rotores: ZYX
Clave de sesión cifrada: DPP.

Texto cifrado:
CDCLQ CXNQI YSMXU AFBJC DUBMR MKVDD XQDXZ KILKC EYTHE TNEZC ZVMYS LLOCA UQRNN GUHYE ORNCX HUSRF NHRHN OCVJZ FEUYE ORWFR RSSAO JNYX
- Simulador máquina Enigma:
https://summersidemakerspace.ca/projects/enigma-machine/.

Solución: tal y como dije en la pista que puse para ayudar a resolver este reto, para aquellos casos en los que había que intercambiar mensajes cifrados en los que el emisor y el receptor utilizaban modelos diferentes de la máquina (uno de ellos el M3 y el otro el M4), los alemanes idearon una configuración por cada reflector utilizado que hacía compatibles ambos modelos, es decir, en la que un mensaje cifrado utilizando un modelo M3 podía descifrarse empleando un modelo M4 y viceversa. Si se investiga un poco por Internet enseguida se encuentra de qué configuraciones se trata. Después, basta con probar la correspondiente al reflector "B" y se ve que se descifra el mensaje sin problemas :).

En primer lugar, como en los recursos asociados al reto se da toda la información necesaria para configurar una máquina del modelo M3, aquel con el que se cifró el texto en claro, voy a utilizar el simulador que también se indica entre los recursos asociados al reto para descifrar el mensaje utilizando una máquina M3. Tal y como sabemos (ver solución al reto anterior), con la máquina configurada con la información inicial que venía para ese día en la hoja de configuración (en inglés, 'Setting Sheet'), lo primero que hacía el operador era establecer la posición inicial de los rotores indicada para cada uno de ellos en la cabecera del mensaje recibido y descifrar la clave de sesión que aparecía justo después:
Como se observa en la figura anterior, la clave de sesión descifrada es "MGL". Además, nótese que el  rotor rápido (el situado más a la derecha) ha girado tres veces, una por cada tecla pulsada correspondiente a la clave de sesión cifrada ("DPP"), pasando de la posición "X" a "A".

Y, finalmente, el operador cambiaba la posición de los rotores a los tres caracteres correspondientes de la clave de sesión descifrada ("MGL") y tecleaba los caracteres del mensaje cifrado que había recibido. Tras pulsar cada tecla se iluminaba en el panel de luces el carácter correspondiente al texto en claro:
Es decir, el texto en claro es el siguiente (nótese que el  rotor rápido, el situado más a la derecha, ha girado 109 veces, una por cada tecla pulsada correspondiente al texto cifrado, y el roto medio, el situado en el centro, ha girado una vez por cada 26 giros o por cada giro completo del rotor rápido, pasando de la posición "L" a "Q" y de "G" a "K", respectivamente):

MENSAJEXDEXPRUEBAXPARAXEXPLICARXLAXCOMPATIBILIDADXDELXMODELOXMTRESXCONXELXMODELOXMCUATROXDEXLAXMAQUINAXENIGMA

Quitando los caracteres "X" que no tienen sentido, que se utilizaban como espacios, quedaría el siguiente texto en claro:

MENSAJE DE PRUEBA PARA EXPLICAR LA COMPATIBILIDAD DEL MODELO MTRES CON EL MODELO MCUATRO DE LA MAQUINA ENIGMA

Y ahora para resolver este reto sólo tengo que dar con la configuración del modelo M4 que lo haría compatible con el modelo M3. Para ello, utilizando el mismo simulador, cambio el modelo de la máquina a M4. Entiendo que ahora en lugar de utilizar el reflector "B" tengo que utilizar el "B fino o estrecho" (en inglés, 'B Thin'), pero ¿qué rotor empleo como rotor "fino o estrecho" (en inglés, 'Thin Rotor'), el Beta o el Gamma, y cómo lo configuro?


Investigando un poco por Internet enseguida doy con una interesante página en la que, entre otra mucha información, veo las dos configuraciones, una por cada reflector, que hacen que el modelo M4 sea compatible con el modelo M3 y viceversa. Si no lo entiendo mal, cuando se configura el modelo M4 con el reflector "B fino o estrecho" (en inglés, 'B Thin') y el rotor "fino o estrecho" Beta con el ajuste del anillo en "A" y posición del rotor en "A" es igual (compatible) a un modelo M3 con el reflector "B", y lo mismo ocurre cuando se configura el modelo M4 con el reflector "C fino o estrecho" (en inglés, 'C Thin') y el rotor "fino o estrecho" Gamma con el ajuste del anillo en "A" y posición del rotor en "A".

Por tanto, en el reto para descifrar el mensaje secreto cifrado con el modelo M3 sólo tengo que utilizar el modelo M4 con el reflector "B fino o estrecho" y el rotor "fino o estrecho" Beta puesto en la posición "A", y repetir los dos pasos anteriores:
Y ya puedo ver el texto en claro.

******** PRÓXIMO RETO
Reto 41:  "eL CóDigo".

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema de

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat

¿Qué significa el emblema de la profesión informática? (I)

Todas o muchas profesiones tienen un emblema que las representa simbólicamente y en el caso de la  informática: " es el establecido en la resolución de 11 de noviembre de 1977  para las titulaciones universitarias superiores de informática, y  está constituido por una figura representando en su parte central  un  núcleo toroidal de ferrita , atravesado por  hilos de lectura,  escritura e inhibición . El núcleo está rodeado por  dos ramas : una  de  laurel , como símbolo de recompensa, y la otra, de  olivo , como  símbolo de sabiduría. La  corona  será la  de la casa real  española,  y bajo el escudo se inscribirá el acrónimo de la organización. ". Veamos los diferentes elementos tomando como ejemplo el emblema del COIIE/EIIEO (Colegio Oficial de Ingenieros en Informática del País Vasco/ Euskadiko Informatikako Ingeniarien Elkargo Ofiziala ) . Pero no sólo el COIIE/EIIEO adopta el emblema establecido en dicha resolución, sino que éste se adopta también como im