viernes, 10 de abril de 2015

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. 

No hay comentarios:

Publicar un comentario