Ir al contenido principal

Criptografía (IV): la máquina Enigma (III)

Decía en el post anterior que la segunda versión de mi propia máquina Enigma ya se acerca bastante a las utilizadas por el ejército alemán en la II Guerra Mundial, pero que todavía le faltan ciertas características de funcionamiento adicionales y otros componentes que le fueron incluyendo.

Para avanzar un paso más, en la tercera versión de mi máquina Enigma los rotores son intercambiables (pueden permutarse), es decir, cada uno de ellos puede encajarse en cualquiera de las tres ranuras que los alojan. De esta manera y considerando las 6 posibilidades diferentes (3! = 3 x 2) de encajar los rotores en las ranuras, los alfabetos de sustitución que es posible utilizar son: 26 x 26 x 26 x 6 = 105.456.

Ahora la clave para cifrar y descifrar los mensajes viene dada por: el orden del alojamiento de los rotores en la ranuras (por ejemplo: 2-3-1) y la posición inicial de cada uno de los rotores (por ejemplo: 5-26-1).

En el ejemplo de clave que he puesto, recordar que los rotores se identificaban en las máquinas Enigma con números romanos (I, II y III)  y las letras se identificaban en cada rotor con un número (A=1, B=2,...Z=26), esto significa que el operador debe encajar el rotor II en la ranura 1, el rotor III en la ranura 2 y el rotor I en la ranura 3, y después girar el primero de los rotores así alojados hasta hacer coincidir el número 5 (carácter "E") con su indicador de posición, el número 26 (letra "Z") del segundo rotor con su indicador de posición y el número 1 (carácter "A") del tercer rotor con su respectivo indicador de posición.

Pero para hacer aún más difícil el criptoanálisis añado un nuevo componente a esta tercera versión de mi máquina: el tablero de conexiones.

Este tablero de conexiones, que tiene representadas las 26 letras y está situado en la parte frontal de la máquina, sirve para puentear letras del teclado, de tal forma que sin ninguna clavija insertada la corriente pasa directamente desde el teclado hasta el rotor de entrada, mientras que si, por ejemplo, conectamos en el tablero la letra "A" con la "B" y pulsamos la tecla correspondiente a cualquiera de ellas la corriente se dirige hasta el rotor de entrada por el "camino" correspondiente a la otra, es decir, las letras del teclado intercambian sus "caminos" hacia el rotor de entrada.

Para conseguir esto cada letra en el tablero de conexiones tiene dos conectores (el superior con el teclado - representado en la siguiente figura a la derecha de cada letra del tablero - y el inferior con el rotor de entrada - representado a la izquierda de cada letra del tablero), de tal forma que al insertar una clavija en una letra se desconectan ambos, de la siguiente manera:


Incorporando el tablero de conexiones, el esquema de funcionamiento de la tercera versión de mi máquina Enigma podría ser el siguiente:


Con los rotores intercambiables y el tablero de conexiones, ahora la clave para cifrar y descifrar los mensajes está formada por:

- El orden de alojamiento de los rotores en las ranuras.
- La posición inicial de cada uno de los rotores.
- Las conexiones a realizar en el tablero de clavijas (pares de letras para las que se intercambiarán sus "caminos" hacia el rotor de entrada).

Veamos un ejemplo de cifrado. Supongamos que queremos cifrar el mensaje "PRUEBA" con la clave:

- 1-2-3.
1-1-1.
- A/B, P/S.

Para ello el operador debe encajar el rotor I en la ranura 1, el rotor II en la ranura 2 y el rotor III en la ranura 3, después girar cada uno de los rotores así alojados hasta hacer coincidir el número 1 (carácter "A") con sus respectivos indicadores de posición, posteriormente conectar en el tablero de conexiones la letra "A" con la "B" y la "P" con la "S", y ahora ya teclear cada uno de los caracteres del texto en claro:



Y para descifrar, como siempre, otro operador con una máquina igual debería establecer esa misma configuración (clave) y después teclear cada uno de los caracteres del texto cifrado:



Esta tercera versión de mi máquina Enigma, salvo algún detalle que me falta de contar, es ya muy parecida a algunas de las utilizadas por el ejército alemán en la II Guerra mundial, y digo algunas porque tal y como ya he dicho en esta serie de posts se utilizaron diferentes modelos.

El tablero de conexiones hacía que el cifrado de la máquina Enigma fuera "casi" invulnerable para su época, ya que incrementaba de manera muy significativa las posibilidades.

La fórmula para calcular el número de posibilidades de conectar pares de letras de un total de 26 con 'n' cables (con cada uno de ellos se conecta un par de letras) es la siguiente:


Aplicando esta formula se obtiene el siguiente número de posibilidades en función del número de cables que utilicemos:


Considerando los 3 rotores intercambiables y que la máquina Enigma estándar del ejercito alemán disponía de 10 cables para conectar pares de letras en el tablero de conexiones, el número de posibilidades que a mí me salen (si lo he entendido bien y no me equivoco) es aproximadamente (lo he hecho en Excel, que tiene 15 dígitos de precisión) de:

26 x 26 x 26 x 6 x 150.738.274.937.250 = 15.896.255.521.782.600.000

Pero, aunque el modelo original de la máquina tenía 3 rotores, poco antes del inicio de la II Guerra Mundial la Wehrmacht y la Luftwaffe (las fuerzas de tierra y aéreas del ejército alemán, respectivamente) ampliaron el juego de rotores de 3 a 5 (identificados con los números romanos I, II, III, IV y V) que eran utilizables de 3 en 3 en las tres ranuras dispuestas para alojarlos, mientras que posteriormente la Kriegsmarine (armada o marina de guerra alemana) amplió a 8 el juego de rotores (identificados con los números romanos I, II, III, IV, V, VI,VII y VIII) y los modelos que utilizaba le permitían utilizarlos de 4 en 4.

Por lo que teniendo en cuenta sólo la ampliación del juego de rotores realizada tanto por la Wehrmacht como por la Luftwaffe (5 rotores utilizables de 3 en 3) y los 10 cables ya comentados para conectar pares de letras en el tablero de conexiones, me sale que el número de posibilidades asciende a:

26 x 26 x 26 x 60 x 150.738.274.937.250 = 158.962.555.217.826.000.000

Es decir, con los 15 dígitos de precisión que tiene Excel y si no me equivoco, aproximadamente 159 trillonesciento cincuenta y ocho trillones novecientos sesenta y dos mil quinientos cincuenta y cinco billones doscientos diecisiete mil ochocientos veintiséis millones.

Con este número de posibilidades (las utilizadas por la Kriegsmarine aún tenían másno me extraña que los alemanes pensaran que la máquina Enigma era invulnerable, pero... se equivocaban, aunque esto es ya otra historia que, en todo caso, será objeto de algún post posterior sobre este tema.  

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