Enigma (máquina)

Una máquina electromecánica de cifrado rotativo; la versión mostrada es posiblemente la militar, pero es similar a la comercial Enigma-D.

Enigma era el nombre de una máquina que disponía de un mecanismo de cifrado rotatorio, que permitía usarla tanto para cifrar como para descifrar mensajes. Varios de sus modelos fueron muy utilizados en Europa desde inicios de los años 1920.

Su fama se debe a haber sido adoptada por las fuerzas militares de Alemania desde 1930. Su facilidad de manejo y supuesta inviolabilidad fueron las principales razones para su amplio uso. Su sistema de cifrado fue finalmente descubierto y la lectura de la información que contenían los mensajes supuestamente protegidos es considerado, a veces, como la causa de haber podido concluir la Segunda Guerra Mundial al menos dos años antes de lo que hubiera acaecido sin su descifrado.

La máquina equivalente británica, Typex, y varias estadounidenses, como la SIGABA (o M-135-C en el ejército), eran similares a Enigma. La primera máquina moderna de cifrado rotatorio, de Edward Hebern, era considerablemente menos segura, hecho constatado por William F. Friedman cuando fue ofrecida al gobierno de Estados Unidos.

La máquina

Funcionamiento

La máquina Enigma fue un dispositivo electromecánico, lo que significa que usaba una combinación de partes mecánicas y eléctricas. El mecanismo estaba constituido fundamentalmente por un teclado similar al de las máquinas de escribir cuyas teclas eran interruptores eléctricos, un engranaje mecánico y un panel de luces con las letras del alfabeto.

La parte eléctrica consistía en una batería que encendía una lámpara de una serie de ellas, que representan cada una de las diferentes letras del alfabeto. Se puede observar en la parte inferior de la imagen adjunta el teclado, y las lámparas son los circulitos que aparecen encima de éste.

El corazón de la máquina Enigma era mecánico y constaba de varios rotores conectados entre sí. Cada rotor es un disco circular plano con 26 contactos eléctricos en cada cara, uno por cada letra del alfabeto. Cada contacto de una cara está conectado o cableado a un contacto diferente de la cara contraria. Por ejemplo, en un rotor en particular, el contacto número 1 de una cara puede estar conectado con el contacto número 14 en la otra cara y el contacto número 5 de una cara con el número 22 de la otra. Cada uno de los cinco rotores proporcionados con la máquina Enigma estaba cableado de una forma diferente y los rotores utilizados por el ejército alemán poseían un cableado distinto al de los modelos comerciales.

Dentro de la máquina había, en la mayoría de las versiones, tres ranuras para alojar los rotores. Cada uno de los rotores se encajaba en la ranura correspondiente de forma que sus contactos de salida se conectaban con los contactos de entrada del rotor siguiente. El tercer y último rotor se conectaba, en la mayoría de los casos, a un reflector que conectaba el contacto de salida del tercer rotor con otro contacto del mismo rotor para realizar el mismo proceso pero en sentido contrario y por una ruta diferente. La existencia del reflector diferencia a la máquina Enigma de otras máquinas de cifrado de la época basadas en rotores. Este elemento, que no se incluía en las primeras versiones de la máquina, posibilitaba que la clave utilizada para el cifrado se pudiera emplear en el descifrado del mensaje. Se pueden observar en la parte superior de la imagen los tres rotores con sus correspondientes protuberancias dentadas que permitían girarlos a mano, colocándolos en una posición determinada.

Cuando se pulsaba una tecla en el teclado, por ejemplo la correspondiente a la letra A, la corriente eléctrica procedente de la batería se dirigía hasta el contacto correspondiente a la letra A del primer rotor. La corriente atravesaba el cableado interno del primer rotor y se situaba, por ejemplo, en el contacto correspondiente a la letra J en el lado contrario. Supongamos que este contacto del primer rotor estaba alineado con el contacto correspondiente a la letra X del segundo rotor. La corriente llegaba al segundo rotor y seguía su camino a través del segundo y tercer rotor, el reflector y de nuevo a través de los tres rotores en el camino de vuelta. Al final del trayecto, la salida del primer rotor se conectaba a la lámpara correspondiente a una letra, distinta de la A, en el panel de luces. El mensaje de cifrado se obtenía por tanto sustituyendo las letras del texto original por las proporcionadas por la máquina.

Cada vez que se introducía una letra del mensaje original, pulsando la tecla correspondiente en el teclado, la posición de los rotores variaba. Debido a esta variación, a dos letras idénticas en el mensaje original, por ejemplo AA, les correspondían dos letras diferentes en el mensaje cifrado, por ejemplo QL. En la mayoría de las versiones de la máquina, el primer rotor avanzaba una posición con cada letra. Cuando se habían introducido 26 letras y por tanto el primer rotor había completado una vuelta completa, se avanzaba en una muesca la posición del segundo rotor, y cuando éste terminaba su vuelta, se variaba la posición del tercer rotor. El número de pasos que provocaba el avance de cada uno de los rotores, era un parámetro configurable por el operario.

Debido a que el cableado de cada rotor era diferente, la secuencia exacta de los alfabetos de sustitución variaba en función de qué rotores estaban instalados en las ranuras (cada máquina disponía de cinco), su orden de instalación y la posición inicial de cada uno. A estos datos se les conocía con el nombre de configuración inicial, y eran distribuidos, mensualmente al principio y con mayor frecuencia a medida que avanzaba la guerra, en libros a los usuarios de las máquinas.

El funcionamiento de las versiones más comunes de la máquina Enigma era simétrico en el sentido de que el proceso de descifrado era análogo al proceso de cifrado. Para obtener el mensaje original sólo había que introducir las letras del mensaje cifrado en la máquina, y ésta devolvía una a una las letras del mensaje original, siempre y cuando la configuración inicial de la máquina fuera idéntica a la utilizada al cifrar la información.

Criptoanálisis básico

Los cifrados, por supuesto, pueden ser descifrados, y la forma más efectiva de enfocarlo depende del método de cifrado. Al principio de la Primera Guerra Mundial, los departamentos de descifrado eran lo bastante avanzados como para poder descubrir la mayoría de los cifrados, si se dedicaban suficientes esfuerzos. Sin embargo, la mayoría de estas técnicas se basaban en conseguir cantidades suficientes de texto cifrado con una clave particular. A partir de estos textos, con suficiente análisis estadístico, se podían reconocer patrones e inducir la clave.

En la técnica del análisis de frecuencia, las letras y los patrones de las letras son la pista. Puesto que en cada lengua aparecen ciertas letras con mucha más frecuencia que otras, contar el número de veces que aparece cada letra en el texto cifrado generalmente desvela información sobre probables sustituciones en los cifrados usados de manera frecuente en la sustitución.

Máquina Enigma a bordo de un Sd.KFz 251 de Heinz Guderian.

Los analistas buscan normalmente algunas letras y combinaciones frecuentes. Por ejemplo, en inglés, E, T, A, O, I, N y S son generalmente fáciles de identificar, por ser muy frecuentes (véase ETAOIN SHRDLU y EAOSR NIDLC en análisis de frecuencias); también NG, ST y otras combinaciones, muy frecuentes en inglés. Una vez que se identifican algunos (o todos) estos elementos, el mensaje se descifra parcialmente, revelando más información sobre otras sustituciones probables. El análisis de frecuencia simple confía en que una letra es sustituida siempre por otra letra del texto original en el texto cifrado; si éste no es el caso, la situación es más difícil.

Durante mucho tiempo, los criptógrafos procuraron ocultar las frecuencias usando varias sustituciones diferentes para las letras comunes, pero esto no puede ocultar completamente los patrones en las sustituciones para las letras del texto original. Tales códigos fueron utilizados extensamente hacia el año 1500.

Una técnica para hacer más difícil el análisis de frecuencia es utilizar una sustitución diferente para cada letra, no sólo las comunes. Éste proceso sería normalmente muy costoso en tiempo y requería que ambas partes intercambiaran sus patrones de sustitución antes de enviar mensajes cifrados. A mitad del siglo XV, una nueva técnica fue inventada por Alberti, ahora conocida generalmente como cifrado polialfabético, que proporcionó una técnica simple para crear una multiplicidad de patrones de sustitución. Las dos partes intercambiarían una cantidad de información pequeña (referida como la clave) y seguirían una técnica simple que produce muchos alfabetos de sustitución, y muchas sustituciones diferentes para cada letra del texto original. La idea es sencilla y eficaz, pero resultó ser más difícil de lo esperado. Muchos cifrados fueron implantaciones parciales del concepto, y eran más fáciles de romperse que los anteriores (p.ej. el cifrado de Vigenère).

Costó centenares de años hallar métodos fiables para romper los cifrados polialfabéticos. Las nuevas técnicas confiaron en estadística (p.ej. análisis de frecuencias) para descubrir información sobre la clave usada para un mensaje. Estas técnicas buscan la repetición de los patrones en el texto cifrado, que proporcionarán pistas sobre la longitud de la clave. Una vez que se sabe esto, el mensaje, esencialmente, se convierte en una serie de mensajes, cada uno con la longitud de la clave, a los cuales se puede aplicar el análisis de frecuencia normal. Charles Babbage, Friedrich Kasiski y William F. Friedman están entre los que aportaron la mayor parte del trabajo para desarrollar estas técnicas.

Se recomendó a los usuarios de los cifrados emplear no sólo una sustitución diferente para cada letra, sino también una clave muy larga, de manera que las nuevas técnicas de descifrado fallaran (o que por lo menos fueran mucho más complicadas). Sin embargo, esto es muy difícil de lograr; llevar a las partes que intercambian mensajes una clave larga requiere más tiempo, y los errores son más probables. El cifrado ideal de esta clase sería uno en el que una clave tan larga se pudiese generar de un patrón simple, produciendo un cifrado en que hay tantos alfabetos de substitución que la cuenta de ocurrencias y los ataques estadísticos fueran imposibles.

El uso de rotores múltiples en Enigma brindó un modo simple de determinar qué alfabeto de sustitución usar para un mensaje en particular (en el proceso de cifrado) y para un texto cifrado (en el de descifrado). A este respecto fue similar al cifrado polialfabético. Sin embargo, a diferencia de la mayoría de las variantes del sistema polialfabético, Enigma no tenía una longitud de clave obvia, debido a que los rotores generaban una nueva sustitución alfabética en cada pulsación, y toda la secuencia de alfabetos de sustitución podía cambiarse haciendo girar uno o más rotores, cambiando el orden de los rotores, etc., antes de comenzar una nueva codificación. En el sentido más simple, Enigma tuvo un repertorio de 26 x 26 x 26 = 17.576 alfabetos de sustitución para cualquier combinación y orden de rotores dada. Mientras el mensaje original no fuera de más de 17.576 pulsaciones, no habría un uso repetido de un alfabeto de sustitución. Pero las máquinas Enigma agregaron otras posibilidades. La secuencia de los alfabetos utilizados era diferente si los rotores fueran colocados en la posición ABC, en comparación con ACB; había un anillo que rotaba en cada rotor que se podría fijar en una posición diferente, y la posición inicial de cada rotor era también variable. Y la mayoría de los Enigmas de uso militar añadieron un stecker (tablero de interconexión) que cambió varias asignaciones de clave (8 o más dependiendo de modelo). Así pues, esta clave se puede comunicar fácilmente a otro usuario. Son apenas algunos valores simples: rotores que utilizar, orden del rotor, posiciones de los anillos, posición inicial y ajustes del tablero de interconexión.

El método de cifrado

Por supuesto, si la configuración estuviera disponible, un criptoanalista podría simplemente poner un equipo Enigma con la misma configuración y descifrar el mensaje. Uno podría mandar libros de configuración que usar, pero podrían interceptarse. En cambio, los alemanes establecieron un sistema astuto que mezcló los dos diseños.

Al principio de cada mes, se daba a los operadores de la Enigma un nuevo libro que contenía las configuraciones iniciales para la máquina. Por ejemplo, en un día particular las configuraciones podrían ser poner el rotor n.° 1 en la hendidura 7, el n.° 2 en la 4 y el n.° 3 en la 6. Están entonces rotados, para que la hendidura 1 esté en la letra X, la hendidura 2 en la letra J y la hendidura 3 en la A. Como los rotores podían permutarse en la máquina, con tres rotores en tres hendiduras se obtienen otras 3 x 2 x 1 = 6 combinaciones para considerar, para dar un total de 105.456 posibles alfabetos.

A estas alturas, el operador seleccionaría algunas otras configuraciones para los rotores, esta vez definiendo sólo las posiciones o "giros" de los rotores. Un operador en particular podría seleccionar ABC, y éstos se convierten en la configuración del 'mensaje para esa sesión de cifrado'. Entonces teclearon la configuración del mensaje en la máquina que aún está con la configuración inicial. Los alemanes, creyendo que le otorgaban más seguridad al proceso, lo tecleaban dos veces, pero esto se desveló como una de las brechas de seguridad con la que "romper" el secreto de Enigma. Los resultados serían codificados para que la secuencia ABC tecleada dos veces podría convertirse en XHTLOA. El operador entonces gira los rotores a la configuración del mensaje, ABC. Entonces se teclea el resto del mensaje y lo envía por la radio.

En el extremo receptor, el funcionamiento se invierte. El operador pone la máquina en la configuración inicial e introduce las primeras seis letras del mensaje. Al hacer esto él verá ABCABC en la máquina. Entonces gira los rotores a ABC e introduce el resto del mensaje cifrado, descifrándolo.

Este sistema era excelente porque el criptoánalis se basa en algún tipo de análisis de frecuencias. Aunque se enviaran muchos mensajes en cualquier día con seis letras a partir de la configuración inicial, se asumía que esas letras eran al azar. Mientras que un ataque en el propio cifrado era posible, en cada mensaje se usó un cifrado diferente, lo que hace que el análisis de frecuencia sea inútil en la práctica.

La Enigma fue muy segura. Tanto que los alemanes se confiaron mucho en ella. El tráfico cifrado con Enigma incluyó de todo, desde mensajes de alto nivel sobre las tácticas y planes, a trivialidades como informes del tiempo e incluso las felicitaciones de cumpleaños.

Ejemplo de cifrado

El siguiente es un mensaje auténtico enviado el 7 de julio de 1941 por la División SS-Totenkopf sobre la campaña contra Rusia, en la Operación Barbarroja. El mensaje (enviado en dos partes) fue descifrado por Geoff Sullivan y Frode Weierud, dos miembros del Crypto Simulation Group (CSG).

1840 - 2TLE 1TL 179 - WXC KCH
RFUGZ EDPUD NRGYS ZRCXN
UYTPO MRMBO FKTBZ REZKM
LXLVE FGUEY SIOZV EQMIK
UBPMM YLKLT TDEIS MDICA
GYKUA CTCDO MOHWX MUUIA
UBSTS LRNBZ SZWNR FXWFY
SSXJZ VIJHI DISHP RKLKA
YUPAD TXQSP INQMA TLPIF
SVKDA SCTAC DPBOP VHJK
2TL 155 - CRS YPJ
FNJAU SFBWD NJUSE GQOBH
KRTAR EEZMW KPPRB XOHDR
OEQGB BGTQV PGVKB VVGBI
MHUSZ YDAJQ IROAX SSSNR
EHYGG RPISE ZBOVM QIEMM
ZCYSG QDGRE RVBIL EKXYQ
IRGIR QNRDN VRXCY YTNJR
SBDPJ BFFKY QWFUS

El mensaje fue cifrado para el modelo de 3 rotores con el reflector B (habrá que usar el mismo modelo para descifrarlo, o uno compatible). Para descifrar el mensaje, primero hay que configurar la máquina con la información diaria especificada en los libros de códigos alemanes para ese mes. Para el día 7 de julio de 1941 era:

Tag  Walzenlage  Ringstellung  ---- Steckerverbindungen ----
  7  II  IV  V     02 21 12    AV BS CG DL FU HZ IN KM OW RX

El operador de la máquina debía colocar esa configuración antes de enviar o recibir el primer mensaje del día. Cogería los rotores (Walzenlage) 2, 4 y 5 (en ese orden), y moverían el anillo de cada rotor a las posiciones 2, 21 y 12 respectivamente, como se indica en Ringstellung (a veces la configuración se puede ver en las letras correspondientes a la posición del anillo, en este caso serían B U L), y los insertaría en la máquina. También debía colocar los cables conectores uniendo en parte baja de la máquina las posiciones que se indican en Steckerverbindungen, uniendo A con V, B con S, C con G, etc. Esta configuración se mantendrá en todos los mensajes del día, y con ella ya se pueden empezar a descifrar mensajes.

El mensaje original se envió en 2 partes (ya que el tamaño máximo por cada mensaje eran 250 letras). Cada mensaje tiene una cabecera, que se enviaba sin cifrar (y es la única parte del mensaje que podía tener números), en este caso:

1840 - 2TLE 1TL 179 - WXC KCH
2TL 155 - CRS YPJ

En la cabecera se indicaba la hora a la que se mandaba el mensaje (en este caso 1840 representa las 18:40), cuantas partes componían el mensaje (seguido de TLE, de Teile) y qué parte era (seguido de TL, de Teil) si había más de una, el tamaño del texto cifrado y dos grupos de tres letras (que eran diferentes y aleatorios en cada mensaje), el primer grupo era la configuración inicial, y el segundo la clave cifrada del mensaje. El operador moverá los 3 rotores a la letra indicada por el primer grupo (W X C), y tecleará el otro grupo, la clave cifrada (K C H), que le dará al operador la clave sin cifrar, en este caso B L A). A continuación pondrá los 3 rotores en las posiciones B L A. y tecleará el resto del mensaje cifrado, teniendo en cuenta que las 5 primeras letras corresponden al Kenngruppe, que indicará quiénes pueden leer el mensaje (en este caso se puede ignorar).

AUFKL XABTE ILUNG XVONX
KURTI NOWAX KURTI NOWAX
NORDW ESTLX SEBEZ XSEBE
ZXUAF FLIEG ERSTR ASZER
IQTUN GXDUB ROWKI XDUBR
OWKIX OPOTS CHKAX OPOTS
CHKAX UMXEI NSAQT DREIN
ULLXU HRANG ETRET ENXAN
GRIFF XINFX RGTX

Haciendo el mismo proceso con la otra parte del mensaje, el resultado es:

DREIG EHTLA NGSAM ABERS
IQERV ORWAE RTSXE INSSI
EBENN ULLSE QSXUH RXROE
MXEIN SXINF RGTXD REIXA
UFFLI EGERS TRASZ EMITA
NFANG XEINS SEQSX KMXKM
XOSTW XKAME NECXK

Uniendo los mensajes, y usando las X como espacios (algunos espacios faltan en el mensaje original), y algunas abreviaturas (entre corchetes) queda:

AUFKL[AERUNG] ABTEILUNG VON KURTINOWA KURTINOWA
NORDWESTL[ICH] SEBEZ SEBEZ UAF FLIEGERSTRASZE
RIQTUNG DUBROWKI DUBROWKI OPOTSCHKA OPOTSCHKA UM
EINS AQT DREI NULL UHR ANGETRETEN ANGRIFF INF RGT
DREI GEHT LANGSAM ABER SIQER VORWAERTS EINS SIEBEN NULL
SEQS UHR ROEM[ISCHEN ZIFFER] EINS INF RGT DREI
AUF FLIEGERSTRASZE MIT ANFANG EINS SEQS KM KM
OSTW[EST] KAMENEC K

Los nombres propios se ponían dos veces seguidas (por ejemplo, KURTINOWA), y algunas combinaciones de letras se sustituían, por ejemplo, CH por Q (en SIQER, que es sicher), y los números debían escribirse con letras. El texto traducido sería:

Unidad de reconocimiento de Kurtinowa, noroeste de Sebez en el corredor de vuelo en dirección a Dubrowki, Opotschka. Empezó a moverse a las 18:30. Ataque. Regimiento de infantería 3 avanza despacio pero seguro. Hora 17:06, I (número romano) Regimiento de infantería 3 en el corredor de vuelo comenzando a 16 Km este-oeste de Kamenec. Comandante de División.
Other Languages
العربية: آلة إنجما
azərbaycanca: Eniqma maşını
български: Енигма (машина)
کوردیی ناوەندی: ماشێنی ئێنیگما
čeština: Enigma
dansk: Enigma
Ελληνικά: Enigma (συσκευή)
Esperanto: Enigma
eesti: Enigma
français: Enigma (machine)
עברית: אניגמה
hrvatski: Enigma (stroj)
Հայերեն: Էնիգմա
Bahasa Indonesia: Mesin Enigma
íslenska: Enigma
한국어: 에니그마
Lëtzebuergesch: Enigma
Bahasa Melayu: Mesin Enigma
polski: Enigma
português: Enigma (máquina)
română: Mașina Enigma
русский: Энигма
Simple English: Enigma (machine)
slovenščina: Enigma (naprava)
српски / srpski: Енигма
Türkçe: Enigma makinesi
українська: Енігма (автомат)
Tiếng Việt: Máy Enigma