Ir al contenido principal

Criptografía (VIII): la máquina Enigma (VII)

En el anterior post nos habíamos quedado en que, antes del inicio de la II Guerra Mundial y gracias a las labores de criptoanálisis realizadas por Rejewski y sus colegas, podían ya descifrarse los mensajes de la máquina Enigma utilizada por el ejército alemán.

Pero los alemanes no tardaron en incorporar modificaciones, tanto a las características de la propia máquina como a la forma de operar con ella, que dificultaban la obtención de la clave y más tarde, como veremos en este post, la imposibilitaron.

Así, a finales de 1937, los alemanes sustituyeron el reflector que venían utilizando por otro con un cableado diferente, lo que obligó a los polacos a volver a deducir éste y, peor aún, a volver a elaborar el catálogo, pero esto no dejó de ser un "inconveniente", eso sí, muy molesto, pero sin mayores implicaciones. En poco tiempo consiguieron tener funcionando las réplicas de la máquina Enigma con el nuevo reflector y, aunque tardaron algo más de tiempo, habían elaborado el nuevo catálogo.

Creo que es importante recordar aquí el principio de Kerckhoffs, por el cual:

"La seguridad del sistema debe recaer en la seguridad de la clave, debiéndose suponer conocidos el resto de los parámetros del sistema criptográfico".

Es decir, mientras los alemanes se limitaran a incluir modificaciones en las características propias de la máquina sin que afectaran a la seguridad de la clave esto sólo supondría poner escollos más o menos difíciles de superar por los criptoanalistas polacos, pero al fin y al cabo se trataba de obstáculos salvables. Cosa diferente sería si las modificaciones incidieran en la seguridad de la clave, como ocurrió poco después y veremos a continuación.

En 1938, a menos de un año del inicio de la II Guerra Mundial, los alemanes hicieron un cambio importante en la operativa de la máquina al establecer un nuevo procedimiento que en esta ocasión sí incidía en la seguridad de la clave y que hizo que el criptoanálisis polaco hasta la fecha no fuera ya eficaz.


Hasta ese momento, como sabemos, el operador para cifrar un mensaje actuaba de la siguiente manera:

1.- Configuraba la máquina con la clave del día que figuraba en el libro mensual que había recibido. Ésta estaba compuesta por: orden de los rotores en las ranuras que los alojaban, posición inicial de cada uno de ellos y conexiones a establecer en el tablero de clavijas.

2.- Elegía tres caracteres que indicaban la posición inicial de los rotores con los que iba a cifrar ese mensaje concreto ("clave de sesión") y los tecleaba dos veces de forma consecutiva. Por tanto, esos seis primeros caracteres del mensaje a transmitir se cifraban durante todo un día con la clave que figuraba en el libro y, por consiguiente, también con la posición inicial de los rotores que formaba parte de la misma.

3.- Giraba los rotores hasta la posición inicial que él había seleccionado y tecleaba el mensaje a cifrar. Por tanto, el mensaje se cifraba con el orden de los rotores y conexiones del tablero de la clave del día que figuraban en el libro y con la posición inicial de los rotores que él había elegido ("clave de sesión").

4.- Finalmente, transmitía los seis caracteres cifrados correspondientes a la "clave de sesión" obtenidos en el paso 2 y los caracteres cifrados del mensaje obtenidos en el paso anterior.

Pero a partir de ese momento la posición inicial de cada uno de los rotores, que como digo era parte de la clave del día, dejó de formar parte de ella y era el operador quien también la elegía, además de elegir la "clave de sesión". Pero, ¿cómo sabría entonces el operador que recibía el mensaje la posición inicial con la que tenía que configurar la máquina para poder descifrar la "clave de sesión" con la que a su vez descifrar el mensaje?.


Para contar esto tengo que explicar otra de las características de la máquina Enigma que no había introducido hasta ahora para no dificultar la comprensión de su funcionamiento. Los rotores disponían de un anillo externo con las letras del alfabeto que rodeaba al núcleo del rotor que contenía el cableado interno de los contactos. Pues bien, ese anillo externo podía ser girado para variar su posición con respecto a los contactos y fijarlo en la posición deseada, era lo que se conocía como el ajuste del anillo.

Es decir, supongamos que el anillo externo de un rotor está en su posición inicial, se gira una posición y se fija ahí de forma que la letra "A" se sitúa ahora sobre los contactos sobre los que antes estaba la "B", la "B" sobre los que estaba la "C", la "C" sobre los que estaba la "D" y así sucesivamente. Así, ahora cada letra se cifrará con el cableado interno que antes le correspondía a la siguiente.

Pero, tras esta breve explicación, volvamos al cambio introducido por los alemanes en la operativa. A partir de ese momento la clave del día que figuraba en el libro que los operadores recibían mensualmente estaba compuesta por:

- El orden de alojamiento de los rotores en las ranuras.
- El ajuste del anillo de cada uno de los rotores.
- Las conexiones a realizar en el tablero de clavijas (pares de letras a intercambiar).


Y para cifrar un mensaje el operador actuaba de la siguiente manera:


1.- Configuraba la máquina con la clave del día que figura en el libro mensual (de la que había desaparecido la posición inicial de los rotores y para cada uno de los cuales debía realizar el ajuste del anillo a la posición indicada).


2.- Elegía tres caracteres para la posición inicial de los rotores con los que iba a cifrar la "clave de sesión" y los giraba hasta la posición seleccionada.

3.- Elegía tres caracteres que indicaban la posición inicial de los rotores con los que iba a cifrar el mensaje ("clave de sesión") y los tecleaba dos veces de forma consecutiva. Por tanto, esos seis caracteres correspondientes a la "clave de sesión" no se cifraban ahora durante todo un día con la misma posición inicial de los rotores, sino que se cifraban con la posición inicial que el propio operador había seleccionado en el paso anterior.

4.- Giraba los rotores hasta la posición inicial que él había seleccionado para la "clave de sesión" y tecleaba el mensaje a cifrar. Por tanto, el mensaje se cifraba con el orden de los rotores y conexiones del tablero de la clave del día que figuraban en el libro y con la posición inicial de los rotores que él mismo había elegido en el paso anterior para la "clave de sesión".

5.- Transmitía en claro (sin cifrar) los tres caracteres por él elegidos para cifrar la "clave de sesión", después los seis caracteres cifrados correspondientes a la "clave de sesión" y, finalmente, los caracteres cifrados del mensaje obtenidos en el paso anterior.


Pero, ¿si se interceptaba el mensaje, no se podía situar los rotores en la posición inicial que se había transmitido en claro y así descifrar la "clave de sesión" y después el mensaje?. Pues no, porque con esos tres caracteres transmitidos sin cifrar, sin conocerse el ajuste de los anillos de los rotores, no podía averiguarse cuál era realmente la posición del cableado interno de los rotores que se estaba utilizando.



Con este cambio los alemanes invalidaron el método de criptoanálisis polaco hasta la fecha, basado en el cifrado de la "clave de sesión" de todos los mensajes de un día con la clave que figuraba para éste en el libro mensual de claves (incluida la posicición inicial de los rotores) y en su repetición dos veces de forma consecutiva. Ahora, el catálogo de características elaborado no valía para nada.

Y, a partir de aquí, ¿qué?, ¿se dieron por vencidos?... pues no. Un poco de paciencia, insisto en que "romper" el código de la máquina Enigma fue un proceso complejo y que llevó mucho tiempo (los alemanes no se estaban "quietos" e introducían novedades de forma constante para hacer al sistema invulnerable a los métodos de criptoanálisis), pero, tal y como digo, la situación a menos de un año vista del inicio de la II Guerra Mundial era desoladora; las comunicaciones alemanes eran ahora otra vez opacas. En un post posterior contaré cómo siguió esta "carrera", la de unos para descifrar los mensajes y la de los otros para evitarlo. 

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