Saltar al contenido
El bit perdido
Newsletter

¿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í:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 ADAD, BEBE y CFCF de las que habla la sección siguiente.

La máquina

UKW-B reflector

Iizquierdo

IIcentral

IIIderecho

Pulsa una tecla, en la pantalla o en tu teclado. Antes de que se encienda la lámpara, los rotores giran.

QWERTZUIO
ASDFGHJK
PYXCVBNML
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.

Abrir la herramienta a pantalla completa

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

(A C E)(B F D)(G)(H).(A\,C\,E)(B\,F\,D)(G)(H).

Su tipo de ciclos es la lista de longitudes: 3,3,1,13,3,1,1. Para multiplicar permutaciones se lee de izquierda a derecha, como hace Rejewski: XYXY significa aplicar primero XX y después YY. 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 (x y)(x\,y) y ninguna letra queda quieta.

Las tres permutaciones que se podían ver

Llama AA, BB, CC, DD, EE, FF 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 ADAD, BEBE y CFCF. Si la letra xx de la clave sale cifrada como aa en el puesto 1 y como bb en el puesto 4, entonces AA lleva xx a aa y, como AA es una involución, también lleva aa a xx; después DD lleva xx a bb. Así que ADAD lleva aa a bb: la letra 1 cifrada a la letra 4 cifrada, sin saber xx. Con la 2 y la 5 sale BEBE, y con la 3 y la 6, CFCF. Por ejemplo, de los comienzos dmq vbn, von puy y puc fmq se lee que ADAD lleva d a v, v a p y p a f. Rejewski publicó el resultado completo de un día:

AD=(dvpfkxgzyo)(eijmunqlht)(bc)(rw)(a)(s).AD=(dvpfkxgzyo)(eijmunqlht)(bc)(rw)(a)(s).

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 BEBE, y dos de longitud 13 para CFCF. No es casualidad.

El teorema de los pares

Teorema (Rejewski). Si XX e YY son dos permutaciones de las mismas 2n2n letras formadas solo por parejas (involuciones sin puntos fijos), entonces en el producto XYXY 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 P=XYP = XY.

  1. XX da la vuelta a PP. Como XXXX y YYYY son la identidad, el inverso de PP es YXYX, y XPX=XXYX=YX=P−1XPX = XXYX = YX = P^{-1}. Dicho letra a letra: si PP lleva uu a vv, entonces PP lleva X(v)X(v) a X(u)X(u).
  2. XX manda ciclos a ciclos de la misma longitud. Si (a1 a2 … ak)(a_1\,a_2\,\dots\,a_k) es un ciclo de PP, por el paso 1 las letras X(ak),…,X(a2),X(a1)X(a_k),\dots,X(a_2),X(a_1) forman un ciclo de PP, también de longitud kk, recorrido al revés. Falta ver que ese ciclo no puede ser el de partida.
  3. Nunca es el mismo ciclo. Supón que XX manda el ciclo C=(a1 … ak)C=(a_1\,\dots\,a_k) a sí mismo, con los índices contados módulo kk. Si X(a1)=amX(a_1) = a_m, el paso 1 da X(a2)=am−1X(a_2) = a_{m-1}, X(a3)=am−2X(a_3) = a_{m-2} y, en general, X(ai)=am+1−iX(a_i) = a_{m+1-i}: XX refleja el ciclo como un espejo. Como Y=XPY = XP (se aplica primero XX y luego PP), Y(ai)=P(am+1−i)=am+2−iY(a_i) = P(a_{m+1-i}) = a_{m+2-i}: otro espejo, con el número m+2m+2 en lugar de m+1m+1. Un espejo ai↦as−ia_i \mapsto a_{s-i} deja quieta la letra aia_i cuando 2i2i y ss se diferencian en un múltiplo de kk. Si kk es impar, eso pasa siempre para algún ii. Si kk es par, pasa cuando ss es par, y de los dos números m+1m+1 y m+2m+2 uno es par. En cualquier caso, XX o YY dejaría una letra quieta, y ninguna de las dos lo hace. Así que XX manda cada ciclo a otro distinto.
  4. Los ciclos quedan emparejados. Si XX manda CC a C′C', también manda C′C' a CC, porque XXXX es la identidad. Los ciclos de PP se reparten, pues, en parejas {C,C′}\{C, C'\} de ciclos distintos y de la misma longitud, y cada longitud aparece un número par de veces.

Un ejemplo pequeño: con X=(A B)(C D)(E F)(G H)X=(A\,B)(C\,D)(E\,F)(G\,H) e Y=(A F)(B C)(D E)(G H)Y=(A\,F)(B\,C)(D\,E)(G\,H), el producto XYXY es (A C E)(B F D)(G)(H)(A\,C\,E)(B\,F\,D)(G)(H), el de arriba: dos ciclos de 3 y dos de 1, en pares. (Si XX e YY comparten una pareja, como (G H)(G\,H), 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 ADAD, BEBE y CFCF, deja para cada una de AA, BB y CC entre una decena y unas decenas de posibilidades (y entonces DD, EE y FF 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 SS también intercambia letras por parejas, así que S−1=SS^{-1}=S. 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 A′A' y D′D' son las permutaciones de los rotores y el reflector, sin cables, entonces A=S A′ S−1A = S\,A'\,S^{-1} y D=S D′ S−1D = S\,D'\,S^{-1}, y al multiplicar los dos S−1SS^{-1}S del medio se anulan:

AD=S A′ S−1 S D′ S−1=S (A′D′) S−1.AD = S\,A'\,S^{-1}\,S\,D'\,S^{-1} = S\,(A'D')\,S^{-1}.

Esto se llama conjugar A′D′A'D' por SS, y en la práctica es cambiar el nombre de las letras: si A′D′A'D' tiene un ciclo (a1 a2 … ak)(a_1\,a_2\,\dots\,a_k), entonces ADAD tiene el ciclo (S(a1) S(a2) … S(ak))(S(a_1)\,S(a_2)\,\dots\,S(a_k)). Los ciclos conservan su longitud y solo cambian las letras que contienen. Con el ejemplo de antes y S=(A C)(B G)(D H)S=(A\,C)(B\,G)(D\,H), renombrar las letras da X′=(A H)(B D)(C G)(E F)X'=(A\,H)(B\,D)(C\,G)(E\,F) e Y′=(A G)(B D)(C F)(E H)Y'=(A\,G)(B\,D)(C\,F)(E\,H), y su producto es (A E C)(F H G)(B)(D)(A\,E\,C)(F\,H\,G)(B)(D): otra vez 3,3,1,13,3,1,1, 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

26!6! 10! 210=150 738 274 937 250\frac{26!}{6!\,10!\,2^{10}} = 150\,738\,274\,937\,250

formas de colocarlos (más de 101410^{14}; con los seis cables que describe Rejewski, 100 391 791 500100\,391\,791\,500). Pero no cambia el tipo de ciclos de ADAD, BEBE y CFCF. 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

6⋅263=6⋅17 576=105 4566\cdot 26^3 = 6\cdot 17\,576 = 105\,456

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), 263=17 57626^3 = 17\,576 posiciones y el tablero de 10 cables, sin contar el ajuste de los anillos:

60⋅17 576⋅150 738 274 937 250=158 962 555 217 826 360 000≈1,6⋅1020.60\cdot 17\,576\cdot 150\,738\,274\,937\,250 = 158\,962\,555\,217\,826\,360\,000 \approx 1{,}6\cdot 10^{20}.

Con los 6 órdenes y los seis cables que describe Rejewski para los primeros años, eran 6⋅17 576⋅100 391 791 500≈1,1⋅10166\cdot 17\,576\cdot 100\,391\,791\,500 \approx 1{,}1\cdot 10^{16}. 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

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

Para saber más

  1. ¿Cómo se rompe un cifrado sin la clave?

    De César a Vigenère: cómo las frecuencias de las letras y las ideas de Kasiski y Friedman rompieron «el cifrado indescifrable», con el ataque completo paso a paso.

    10 min de lectura
  2. ¿Por qué funciona RSA? Explicado paso a paso

    Multiplicar dos primos es fácil y deshacerlo no. Con un ejemplo completo y la demostración del teorema de Euler, por qué RSA cifra y descifra sin compartir claves.

    7 min de lectura