Enigma es un sistema criptográfico que se basa en la sustitución. Es decir, en Enigma, un carácter de texto en claro (plaintext) se cambia por un carácter de texto cifrado (ciphertext). Por ejemplo, considerando el alfabeto latino estándar de 26 letras (el usado por Enigma), un alfabeto de sustitución sería:
a b c d e f g h i j k l m n o p q r s t u v w x y z plaintext
X H V N P L K A S E D Z F B G Y W O C Q M I J T R U ciphertext
Así cada letra del texto claro se cambia por la que corresponde del texto cifrado. Con el ejemplo anterior la palabra ataque se cambiaría por XQXWMP.
Lo que pasa es que un cifrado así es muy fácil de romper (incluso en 1930) ya que los distintos caracteres tienen una frecuencia distinta en cada idioma. Así, interceptando un número suficiente de mensajes, y haciendo un análisis de frecuencia, se puede descifrar sencillamente cualquier mensaje de este tipo.
Para evitar esto lo que se hace es una sustitución polialfabética. Es decir, el alfabeto de sustitución es distinto para cada carácter del texto en claro. Si el número de alfabetos de sustitución es lo bastante grande, entonces el análisis de frecuencia es imposible, ya que todas las letras, del texto cifrado, aparecerán con una frecuencia similar.
Si estamos considerando un alfabeto de 26 letras, eso quiere decir que para sustituir la primera letra (por ejemplo la a) tenemos 26 posibilidades. Una vez fijada la primera, para sustituir la segunda tendremos 25 posibilidades. Fijadas las dos primeras, tendremos 24 posibilidades para sustituir la tercera; y así sucesivamente hasta la vigesimosexta. En conclusión, el número de alfabetos totales que se pueden utilizar será:
26 x 25 x 24 x 23 x …… x 4 x 3 x 2 x 1
O como se dice en matemáticas 26 factorial, o 26! Esto representa un número enorme de alfabetos de sustitución posibles, en concreto:
26! = 403.291.461.126.605.635.584.000.000 alfabetos de sustitución.
Lo que hace Enigma es generar de forma electromecánica un alfabeto de sustitución, y lo cambia para cada nuevo carácter de texto plano; asegurando además que dicho alfabeto no se repite en periodos de tiempo suficientemente largos. De ese modo se garantiza, en teoría, la seguridad de las comunicaciones.
CÓMO FUNCIONA ENIGMA.
Enigma es una máquina electromecánica que consta de cuatro componentes principales:
- Un teclado de 26 teclas, similar al de una máquina de escribir, sin signos de puntuación, sin distinguir mayúsculas y minúsculas y sin caracteres numéricos.
- Un panel de clavijas con 26 contactos uno para cada letra del alfabeto.
- Un conjunto de rotores y un reflector dispuesto sobre un eje.
- Un panel de 26 letras que se pueden iluminar con cada pulsación del teclado.
Aquí os dejo una foto de la máquina mostrando sus diferentes partes.
Fuente: https://upload.wikimedia.org/wikipedia/ ... abeled.jpg
Cada vez que el operador pulsaba una tecla de Enigma, el rotor situado más a la derecha avanzaba una posición (un veintiseisavo de vuelta); el circuito eléctrico de la máquina, alimentado por una batería, se cerraba, y se iluminaba una de las letras del panel. Se obtenía así la letra cifrada correspondiente a la pulsada.
El conjunto de rotores constaba de tres rotores y un reflector (en algunas versiones de Enigma había cuatro rotores). Cada uno de los rotores tenía 26 contactos de entrada y otros 26 de salida representando las letras del alfabeto. Estos contactos estaban conectados mediante cables ocultos en el núcleo del rotor. Así cada rotor implementaba una determinada permutación alfabética. Los contactos de cada rotor estaban en contacto con los del rotor situado a su izquierda. El reflector era un componente que intercambiaba pares de letras, enviaba la corriente eléctrica de vuelta al conjunto de rotores y, salvo en algunas versiones de Enigma, no giraba.
Cada rotor tenía un anillo con las veintiséis letras del alfabeto grabadas (en algunos modelos de Enigma en lugar de letras había números del 1 al 26). Este anillo cumplía dos funciones; por un lado la letra situada en su parte superior, era visible a través de una ventana de la máquina, y servía para definir la posición inicial del rotor. Por otro lado, el anillo llevaba asociado el mecanismo que permitía transmitir el movimiento de giro al rotor situado a la izquierda. Así, cada vez que un rotor daba una vuelta completa, el rotor situado a su izquierda avanzaba un veintiseisavo de vuelta.
El panel de clavijas tenía como misión intercambiar pares de letras, mediante un cable con clavijas en sus extremos. En cierto modo era como un rotor adicional, con la ventaja de que se podía configurar de acuerdo a la clave del día. Cuando se pulsaba una tecla, la corriente pasaba a través del panel de clavijas donde se hacía la sustitución, luego pasaba al conjunto de rotores y reflector, volvía al panel de clavijas donde se hacía una última sustitución, y por fin pasaba al panel de luces donde se encendía la letra correspondiente.
El esquema eléctrico de la máquina sería el siguiente.
Fuente: https://avatars.mds.yandex.net/get-zen_ ... scale_1200
Como se puede ver en el esquema al pulsar la letra a, se cierra el circuito y se enciende la bombilla D.
Este diseño daba lugar a dos características de la máquina que fueron decisivas para permitir la ruptura del código Enigma. La primera de ellas es lo que se conoce como Principio de Exclusividad; es decir, una letra nunca puede ser cifrada como ella misma. Así, si M es una letra cifrada, la letra en claro podrá ser cualquiera excepto m. Si os fijais en el esquema anterior al pulsar la letra a se abre el circuito que conectaría con la bombilla A, luego es imposible que a se cifre como A.
La segunda característica importante se conoce como Principio de Reciprocidad; es decir, si en una determinada posición de la máquina la letra r (por ejemplo) se cifra como C, en la misma posición la letra c se cifra como R. Volviendo al esquema anterior se puede ver que si se pulsa la tecla d, ahora el circuito se cierra con la bombilla A (la corriente circularía en sentido contrario al anterior).
La reciprocidad de Enigma tenía la ventaja operacional de que la máquina podía cifrar y descifrar mensajes, sin necesidad de cambiar la configuración; con lo que se ganaba en sencillez de uso. Sin embargo, el precio a pagar por esa pequeña ventaja fue, sin duda, demasiado alto.
LA SEGURIDAD DE ENIGMA.
Alguien que intercepte un mensaje cifrado con Enigma y pretenda descifrarlo mediante un ataque de fuerza bruta, es decir probando todas las posibilidades, se enfrenta a un problema muy serio. Digamos que el atacante conoce el tipo de máquina usada para el cifrado, pero no sabe nada de los detalles técnicos de su construcción (esto es, en principio, lógico ya que se trata de material militar secreto).
En tal caso dicho atacante tendría que considerar lo siguiente.
Cada rotor conecta 26 letras con otras 26 letras. Esto nos da 26! Posibilidades para un rotor. El segundo rotor tendrá 26!-1 posibilidades (ya que no se podían repetir rotores) y para el tercero serían 26!-2. Eso nos da para los rotores 26! x (26!-1) x (26!-2), o sea, aproximadamente 65 10^78 (un sesentaicinco seguido de 78 ceros).
La clave de cada mensaje se define por la posición inicial de cada rotor, puesto que hay 26 posibilidades para cada uno, tenemos que las posibles claves son: 26 x 26 x 26 = 17.576.
Cada anillo de letras se puede configurar de 26 formas distintas. Puesto que el anillo de la izquierda no transmite movimiento a ningún rotor solo hay que considerar dos anillos. Eso nos da 26 x 26 = 656 posibilidades.
Por último tenemos el panel de conexiones. Este panel, que conecta pares de letras, podría tener desde cero cables (ninguna letra conectada) hasta 13 cables (todas las letras conectadas). A lo largo de la vida operativa de Enigma el número de conexiones usadas fue cambiando. Sin embargo, si no conocemos los detalles tendremos que considerar todas las posibilidades. Sin entrar en detalles del cálculo, el número de posibles configuraciones del panel de conexiones es: 532.985.208.200.576.
Además, el reflector conecta pares de letras. Así la primera letra tiene 25 posibilidades, la segunda tendrá 23 (puesto que dos ya están ocupadas), la tercera tendrá 23 En total serán: 25 × 23 × 21 × … × 1 = 7.905.853.580.625.
Multiplicando los números anteriores, tendríamos el número de configuraciones a probar para descifrar un mensaje, si lo hacemos “a la ciega”, sin ninguna otra consideración.
El número que se obtiene es: 3 10^114, un tres seguido de 114 ceros. Un número ciertamente impresionante. Tan impresionante que, incluso utilizando el ordenador más potente disponible en la actualidad, se tardaría mucho más de la edad del Universo en chequearlas todas.
Este sería el espacio de claves (número de formas distintas de configurar la máquina) teórico de Enigma. Dado lo gigantesco del número, los alemanes consideraron que Enigma era irrompible.
Y sin embargo, el desarrollo posterior de la Historia nos dice que estaban en un error.
(continuará)