¿Cómo se rompió Enigma y qué matemáticas se usaron?
Nivel bachillerato11 min de lecturaPor Fernando Hernando
Los polacos rompieron Enigma antes de la guerra con permutaciones: un teorema sobre ciclos que el tablero de cables no podía ocultar. Qué hizo Turing y qué no.
cada dato lleva su fuente al final
Enigma no la rompió un genio solo ni la rompió Turing el primero. La rompieron en 1932-1933 los criptólogos polacos: Marian Rejewski reconstruyó la máquina con teoría de permutaciones, y con Jerzy Różycki y Henryk Zygalski siguió leyéndola durante años. La herramienta central cabe en una página: cambiar el nombre de las letras no cambia la estructura de ciclos de una permutación. La máquina, pensada para ser simétrica y cómoda, dejaba ver justo esa estructura.
La idea
Enigma era una máquina de escribir eléctrica. Al pulsar una letra, la corriente atravesaba un tablero de cables que intercambiaba parejas de letras, luego tres rotores (tres cilindros con el alfabeto cableado de forma irregular), después un reflector que la devolvía por otro camino, y encendía una bombilla con la letra cifrada. Con cada pulsación giraba el rotor de la derecha y el cableado cambiaba, así que una misma letra se cifraba distinto cada vez. Los cables, los rotores y su posición inicial formaban la clave del día. En la descripción de Rejewski el tablero tiene seis cables, que intercambian 12 de las 26 letras; él mismo cuenta que el número de cables fue subiendo poco a poco, y según Crypto Museum las instrucciones alemanas pedían en general diez.
Por culpa del reflector, la máquina tenía dos propiedades que parecen cómodas y son una trampa:
- Ninguna letra se cifra como ella misma. Rejewski lo dice sin adornos: se enciende una letra distinta de la pulsada.
- Si pulsar x enciende y, pulsar y enciende x. Por eso cifrar y descifrar eran la misma operación.
Había además un segundo fallo, de procedimiento. Cada operador elegía una clave propia para el mensaje, de tres letras, y la cifraba dos veces seguidas al principio, para protegerse de errores de transmisión. El resultado: la letra 1 y la letra 4 del mensaje cifrado salían de la misma letra, igual que la 2 y la 5, y la 3 y la 6. Y hasta el 15 de septiembre de 1938, todos los operadores cifraban esas seis letras desde la misma posición inicial, la del día. Los criptólogos recibían decenas de mensajes al día, todos con ese sello de repetición y cifrados desde el mismo punto de partida, y empezaron a ver un patrón.
La historia, sin mitos, va así:
- 1932-1933: los polacos. Rejewski empezó a trabajar a tiempo completo en la Oficina de Cifras de Varsovia el 1 de septiembre de 1932; ese mismo mes entraron también Różycki y Zygalski. Según el propio Rejewski, la teoría de permutaciones permitió romper la Enigma militar en 1932-1933. Para reconstruir el cableado de los rotores le sirvió el material que la oficina de cifras francesa entregó a la polaca en diciembre de 1932: tablas de claves alemanas, con las conexiones del tablero.
- Los años treinta: un catálogo. Con la máquina reconstruida, faltaba sacar la clave de cada día. Para eso Rejewski ideó el «ciclómetro», que sirvió para hacer un catálogo de la estructura de ciclos de cada posición de los rotores (lo explicamos abajo). El catálogo funcionó hasta el 15 de septiembre de 1938.
- 1938: nuevos métodos. Desde esa fecha, cada operador elegía la posición inicial de cada mensaje (y la mandaba sin cifrar), aunque seguía cifrando dos veces su clave. El catálogo dejó de servir. Zygalski ideó en el otoño de 1938 unas hojas perforadas, y Rejewski, la «bomba», una máquina eléctrica que buscaba la clave del día de forma automática. El 15 de diciembre de 1938 los alemanes pasaron de tres rotores a cinco para elegir, y el número de órdenes posibles de los rotores pasó de 6 a 60: según Rejewski, el trabajo de encontrar las claves se multiplicó por diez.
- Julio de 1939: la entrega. Con la guerra encima, los polacos explicaron sus métodos y entregaron réplicas de Enigma a los servicios británicos y franceses en una reunión en el bosque de Kabaty, cerca de Pyry, a las afueras de Varsovia, a finales de julio (Rejewski da el 25; otras fuentes, el 24 y 25 o el 25 y 26). El primero en contar en público que los polacos habían roto Enigma antes de la guerra fue Władysław Kozaczuk, en su libro Bitwa o tajemnice, de 1967.
- Bletchley Park: otro método. Turing fue uno de los que se unieron a la sección de investigación sobre Enigma que montó Dilly Knox. A partir de lo que habían explicado los polacos, diseñó la «bombe» británica, cuyo nombre viene de la «bomba» polaca, y Gordon Welchman le añadió una mejora, el «tablero diagonal», que acortaba mucho la búsqueda. La primera llegó a Bletchley Park el 18 de marzo de 1940. La diferencia es de fondo: la bomba polaca explotaba la clave cifrada dos veces; la bombe partía de un trozo de texto en claro que se conocía o se adivinaba. Y en la mayoría de las redes los alemanes dejaron de cifrar dos veces la clave el 1 de mayo de 1940, con lo que la bomba polaca dejó de servir.
Turing no lo hizo solo, y los polacos rompieron Enigma años antes de la guerra con una herramienta sorprendentemente simple.
Si quieres ver una Enigma por dentro, aquí tienes un simulador: pulsa teclas, mira girar los rotores y, en la pestaña «Cómo la rompió Rejewski», comprueba con tu configuración las permutaciones , y de las que habla la sección siguiente.
La máquina
Iizquierdo
IIcentral
IIIderecho
Pulsa una tecla, en la pantalla o en tu teclado. Antes de que se encienda la lámpara, los rotores giran.
- Tecleas
- —
- Se enciende
- —
Distribución QWERTZ, como la de la máquina. Ninguna letra se enciende como ella misma.
Configuración
Enigma I con los rotores I, II y III, reflector UKW-B, anillos y posiciones en A y sin cables. Teclea AAAAA y sale BDZGO, un resultado de referencia muy conocido.
Ejército de Tierra (Heer) y Luftwaffe. Tres rotores de I a V; UKW-A antes de la guerra, UKW-B la habitual y UKW-C solo al final.
izquierdo
central
derecho
El anillo (Ringstellung) y la posición inicial (Grundstellung) se dan con letra y número, como en las hojas de claves. El fino de la M4 no gira.
Clavijero
0 cables de 13 posibles. En la guerra se usaban 10.
El camino de la señal
Esto es lo que pasó en la última tecla. La corriente pasa por el clavijero, sube por los rotores hasta el reflector, rebota y baja por otro camino.
Pulsa una tecla y aquí verás por dónde pasa la corriente.
Cifrar un mensaje y la capa de Rejewski
Escribe un texto o pega uno cifrado. La máquina lo pasa entero con la configuración de arriba. Cifrar y descifrar es la misma operación: si pones el resultado en la caja con la misma configuración, vuelve el texto original. Solo se cifran las letras (sin tildes: Ñ pasa a N, Ä a AE…).
Resultado
IIBG HPRUM
- Ninguna de las 9 letras se ha cifrado como ella misma: el reflector no lo permite.
- Comprobado: pasar el resultado por la misma máquina devuelve tu texto.
Antes de 1938, todos los operadores del Ejército de Tierra empezaban cada mensaje desde la misma posición de los rotores (la del día), tecleaban dos veces su clave de mensaje de tres letras y enviaban las seis letras cifradas. Eso regala algo sin conocer la máquina: si la clave es xyz, la letra 1 y la 4 de ese indicador salen de la misma letra. Rejewski lo convirtió en teoría de permutaciones. Las fechas y el contexto están en el artículo; aquí lo ves funcionar con la máquina que has configurado.
Las seis permutaciones de las primeras teclas
En cada tecla la máquina es una permutación de las 26 letras que las cambia por parejas (una involución sin puntos fijos). Rejewski las llamó A, B, C, D, E y F, de la primera a la sexta tecla. Aquí están, con las ventanillas que dan, empezando en AAA (cada una escrita como las 13 parejas de letras que intercambia).
| Tecla | Ventanillas | Parejas que intercambia |
|---|---|---|
| A | AAB | AB CQ DM EF GX HI JS KW LP NY OT RV UZ |
| B | AAC | AD BJ CR EL FK GW HP IO MY NQ SX TZ UV |
| C | AAD | AZ BL CE DJ FU GI HT KM NO PS QV RX WY |
| D | AAE | AG BC DL EW FT HK IQ JZ MO NS PX RU VY |
| E | AAF | AO BS CN DI ER FG HM JP KV LU QW TX YZ |
| F | AAG | AW BY CM DV EN FQ GZ HJ IL KO PU RT SX |
Los productos AD, BE y CF y su característica
AD significa «primero A, luego D»: lleva la primera letra de cada indicador a la cuarta. Eso sí se puede ver en los mensajes interceptados, sin saber nada de los rotores. Lo mismo con BE (letras 2 y 5) y CF (3 y 6). Cada producto se descompone en ciclos, y la lista de sus longitudes es la característica.
AD
(aciketmlx)(bgpdofwhq)(jnvu)(rysz)
Característica: 9 9 4 4 ✓ pares
BE
(ceukgq)(fvlrnw)(bpmzx)(hjsty)(ai)(do)
Característica: 6 6 5 5 2 2 ✓ pares
CF
(dhrsuq)(fpxtjv)(agly)(bizw)(cnk)(emo)
Característica: 6 6 4 4 3 3 ✓ pares
Característica de esta posición: 9 9 4 4 / 6 6 5 5 2 2 / 6 6 4 4 3 3. Cada longitud sale un número par de veces porque cada producto es el de dos involuciones sin puntos fijos: es el teorema de los pares.
Cambia el clavijero: la característica no cambia
Prueba con otros cables, dejando igual rotores, anillos y posición. Los ciclos cambian de letras, pero no de longitudes. La razón: cada permutación es Aᵢ = S·Tᵢ·S, con S el clavijero y Tᵢ lo que hacen los rotores y el reflector. Al multiplicar, los S del medio se anulan y el producto con otro clavijero S′ es el original con las letras renombradas por Q = S·S′ (conjugación). Conjugar no cambia las longitudes de los ciclos.
| Con tu clavijero | Con el otro | |
|---|---|---|
| AD | (aciketmlx)(bgpdofwhq)(jnvu)(rysz) | (dylpqotks)(figxnjmwr)(avuc)(bhze) |
| BE | (ceukgq)(fvlrnw)(bpmzx)(hjsty)(ai)(do) | (aktvge)(djruwl)(bschf)(izxyp)(mn)(oq) |
| CF | (dhrsuq)(fpxtjv)(agly)(bizw)(cnk)(emo) | (cvtpxf)(dqsehu)(bnlg)(kymz)(awj)(ior) |
| Característica | 9 9 4 4 / 6 6 5 5 2 2 / 6 6 4 4 3 3 | 9 9 4 4 / 6 6 5 5 2 2 / 6 6 4 4 3 3 |
La característica es la misma, y cada producto nuevo es el antiguo con las letras renombradas por Q = S·S′ (comprobado letra a letra). El clavijero esconde las letras, no la estructura.
Reconstruir las permutaciones desde los indicadores de un día
Simulamos un día: cada mensaje lleva una clave de tres letras al azar, cifrada dos veces desde AAA. Cada indicador da una flecha en cada producto: la letra 1 va a la 4 en AD, la 2 a la 5 en BE y la 3 a la 6 en CF. Con unas decenas de mensajes las flechas se encadenan en ciclos, y los ciclos cerrados muestran la característica que hemos calculado arriba sin saber nada de la máquina.
Las matemáticas de verdad
Permutaciones y ciclos
Una permutación reordena las letras: cada letra va a parar a una letra, y dos letras distintas nunca van a parar a la misma. Se escribe por ciclos. Con ocho letras A a H, la permutación que lleva A→C, C→E, E→A, B→F, F→D, D→B y deja quietas G y H se escribe
Su tipo de ciclos es la lista de longitudes: . Para multiplicar permutaciones se lee de izquierda a derecha, como hace Rejewski: significa aplicar primero y después . Cada posición de la máquina en un instante dado es una permutación del alfabeto, y por el reflector es una involución sin puntos fijos: se compone de 13 parejas y ninguna letra queda quieta.
Las tres permutaciones que se podían ver
Llama , , , , , a las seis permutaciones de la máquina al cifrar las letras 1 a 6 del mensaje (son seis distintas porque el rotor de la derecha gira una posición con cada pulsación). Nadie las conocía. Pero la clave repetida dos veces permite reconstruir, con unos 80 mensajes del mismo día, las tres composiciones , y . Si la letra de la clave sale cifrada como en el puesto 1 y como en el puesto 4, entonces lleva a y, como es una involución, también lleva a ; después lleva a . Así que lleva a : la letra 1 cifrada a la letra 4 cifrada, sin saber . Con la 2 y la 5 sale , y con la 3 y la 6, . Por ejemplo, de los comienzos dmq vbn, von puy y puc fmq se lee que lleva d a v, v a p y p a f. Rejewski publicó el resultado completo de un día:
Mira los ciclos: dos de longitud 10, dos de longitud 2 y dos de longitud 1. Y en las otras dos permutaciones de su ejemplo, dos de longitud 9, dos de longitud 3 y dos de longitud 1 para , y dos de longitud 13 para . No es casualidad.
El teorema de los pares
Teorema (Rejewski). Si e son dos permutaciones de las mismas letras formadas solo por parejas (involuciones sin puntos fijos), entonces en el producto cada longitud de ciclo aparece un número par de veces: los ciclos van por pares de la misma longitud.
Rejewski lo demuestra siguiendo las letras una a una. Aquí va otra demostración, en cuatro pasos. Sea .
- da la vuelta a . Como y son la identidad, el inverso de es , y . Dicho letra a letra: si lleva a , entonces lleva a .
- manda ciclos a ciclos de la misma longitud. Si es un ciclo de , por el paso 1 las letras forman un ciclo de , también de longitud , recorrido al revés. Falta ver que ese ciclo no puede ser el de partida.
- Nunca es el mismo ciclo. Supón que manda el ciclo a sí mismo, con los índices contados módulo . Si , el paso 1 da , y, en general, : refleja el ciclo como un espejo. Como (se aplica primero y luego ), : otro espejo, con el número en lugar de . Un espejo deja quieta la letra cuando y se diferencian en un múltiplo de . Si es impar, eso pasa siempre para algún . Si es par, pasa cuando es par, y de los dos números y uno es par. En cualquier caso, o dejaría una letra quieta, y ninguna de las dos lo hace. Así que manda cada ciclo a otro distinto.
- Los ciclos quedan emparejados. Si manda a , también manda a , porque es la identidad. Los ciclos de se reparten, pues, en parejas de ciclos distintos y de la misma longitud, y cada longitud aparece un número par de veces.
Un ejemplo pequeño: con e , el producto es , el de arriba: dos ciclos de 3 y dos de 1, en pares. (Si e comparten una pareja, como , salen dos ciclos de longitud 1.) Lo he comprobado también por ordenador: con 8 letras, en los 11 025 pares posibles de involuciones sin puntos fijos, y con 26 letras, en 200 000 pares elegidos al azar. En todos los casos, cada longitud aparece un número par de veces.
Y hay un recíproco que Rejewski considera especialmente importante: si una permutación de un número par de letras tiene cada longitud de ciclo un número par de veces, es producto de dos de estas involuciones. Aplicado a , y , deja para cada una de , y entre una decena y unas decenas de posibilidades (y entonces , y quedan fijadas). Juntando las tres salen miles de combinaciones; para quedarse con la buena, Rejewski aprovechó las costumbres de los operadores, que repetían claves fáciles como tres letras iguales.
El teorema que más pesó: la conjugación
Aquí viene lo más importante. El tablero de cables también intercambia letras por parejas, así que . La corriente pasa por el tablero al entrar y al salir, de modo que lo que se observa no es la máquina «limpia» sino la máquina rodeada por el tablero. Si y son las permutaciones de los rotores y el reflector, sin cables, entonces y , y al multiplicar los dos del medio se anulan:
Esto se llama conjugar por , y en la práctica es cambiar el nombre de las letras: si tiene un ciclo , entonces tiene el ciclo . Los ciclos conservan su longitud y solo cambian las letras que contienen. Con el ejemplo de antes y , renombrar las letras da e , y su producto es : otra vez , con las letras cambiadas.
Esta es la clave. El tablero de cables es el que aporta casi toda la dificultad de la clave: con 10 cables hay
formas de colocarlos (más de ; con los seis cables que describe Rejewski, ). Pero no cambia el tipo de ciclos de , y . Ese tipo, llamado la característica del día, solo depende del orden de los rotores y de su posición inicial (si el rotor central no se mueve durante esas seis pulsaciones, algo que Rejewski desprecia porque pasa pocas veces). Con los tres rotores de entonces, que admitían 6 órdenes, son
casos. Es un número que se puede catalogar. Rejewski ideó un aparato eléctrico, el «ciclómetro», con el que se recorrieron todas esas posiciones anotando el tipo de ciclos de cada una. Cada día bastaba mirar la característica de los mensajes interceptados y buscarla en el catálogo para acotar qué orden y qué posición de los rotores se habían usado, sin saber nada de los cables. No siempre daba una respuesta única (Rejewski avisa de que dos posiciones distintas pueden tener la misma característica), pero dejaba muy pocas.
Así, un problema con un número astronómico de claves se partía en dos: un catálogo de unos cien mil casos y, después, el tablero. Si hay que quedarse con un solo resultado matemático de toda la historia de Enigma, es este, sin exagerar su alcance: ni este teorema ni ninguna otra cosa ganó la guerra por sí sola.
Cuántas claves, entonces
Con tres rotores elegidos entre cinco (60 órdenes), posiciones y el tablero de 10 cables, sin contar el ajuste de los anillos:
Con los 6 órdenes y los seis cables que describe Rejewski para los primeros años, eran . Son números inmensos, y aun así no bastaron. La lección es la misma que en cómo romper un cifrado sin la clave y en por qué funciona RSA: el tamaño del espacio de claves no es lo que decide la seguridad; lo decide si la estructura del cifrado deja pasar información. Aquí la dejaba pasar por dos sitios, la simetría del reflector y la clave repetida, y las permutaciones lo aprovecharon.
Fuentes
- Marian Rejewski, An application of the theory of permutations in breaking the Enigma cipher, Applicationes Mathematicae 16(4), 1980.
- Marian Rejewski, How Polish mathematicians deciphered the Enigma, Annals of the History of Computing 3(3), 1981.
- MacTutor: Rejewski, Zygalski, Turing.
- Bletchley Park, Enigma; Crypto Museum, Turing-Welchman Bombe y Enigma I.
- Wikipedia (fuente secundaria): Cipher Bureau (Poland), para el ciclómetro, la reunión de Pyry y Kozaczuk (1967), y Cryptologic bomb, para la cita de Rejewski sobre el trabajo multiplicado por diez en diciembre de 1938.
Preguntas frecuentes
¿Quién rompió Enigma primero?
Los criptólogos polacos de la Oficina de Cifras de Varsovia. Marian Rejewski reconstruyó la máquina con la teoría de permutaciones y, según él mismo, la Enigma militar alemana quedó rota en 1932-1933; con Jerzy Różycki y Henryk Zygalski la siguieron leyendo durante años. En julio de 1939 los polacos explicaron sus métodos a los servicios británicos y franceses.
¿Qué hizo Alan Turing con Enigma?
En Bletchley Park se unió a la sección de investigación sobre Enigma y, a partir de lo que habían explicado los polacos, diseñó la «bombe», cuyo nombre viene de la «bomba» polaca; Gordon Welchman le añadió el «tablero diagonal». Su método partía de un fragmento de texto en claro que se conocía o se adivinaba, no de la clave de mensaje cifrada dos veces, que los alemanes dejaron de usar en la mayoría de las redes el 1 de mayo de 1940. Fue un trabajo distinto y posterior al de los polacos, no el origen de todo.
¿Cuántas claves tenía Enigma?
Tomando tres rotores elegidos entre cinco (60 órdenes), sus 17 576 posiciones iniciales y un tablero de 10 cables (150 738 274 937 250 conexiones posibles), salen unos 1,6·10^20 casos, sin contar el ajuste de los anillos. Un número enorme, pero no era la barrera real: lo que la deshizo fue una debilidad de estructura, no la fuerza bruta.
¿Por qué no se podía cifrar una letra como ella misma?
Porque la corriente entraba por los rotores, rebotaba en el reflector y volvía por otro camino; el reflector conecta las letras por parejas y ninguna con ella misma. Eso hace que la máquina siempre cambie la letra y que cifrar y descifrar sean la misma operación, y las dos propiedades fueron debilidades que se aprovecharon.
Publicado el