El ciclómetro fue un dispositivo criptológico diseñado, "probablemente en 1934 o 1935", por Marian Rejewski de la sección alemana de la Oficina de Cifrado Polaca (BS-4), para catalogar la estructura cíclica de las permutaciones de Enigma , facilitando así el descifrado del texto cifrado de Enigma alemán . [1]
Junto con la posterior bomba criptológica de Rejewski , se la puede considerar como un predecesor de la bomba que ayudaría a descifrar los códigos Enigma más tarde en la guerra en Bletchley Park , en Inglaterra.
Utilizando dibujos realizados por Rejewski, Hal Evans y Tim Flack en el Departamento de Ingeniería de la Universidad de Cambridge , en 2019 se construyó una versión funcional del ciclómetro. [2]
Fede Weierud proporciona el procedimiento, la configuración secreta y los resultados que se utilizaron en un manual técnico alemán de 1950. [3] [4]
Clave diaria (secreto compartido): Orden de ruedas: II I III Fecha de emisión: 24 18 22 (XMV) Reflector: A Tablero de conexiones: AM, FI, NV, PS, TU, WZ Fundamento: FOLClave de mensaje elegida por el operador: ABLCifrado que comienza con FOL: PKPJXIMensaje de texto claro a enviar y texto claro resultante: Feindliche Infanteriekolonne beobachtet. Entrada sur de Bärwalde. Ende drei km ostwärts Neustadt. FÁCIL LLENADO DE ERIEK OLONN EBEOB AQTET XANFA NGSUE DAUSG ANGBA ERWAL DEXEN DEDRE IKMOS TWAER Ciudad de TSNEUMensaje resultante: 1035 – 90 – 341 – PKPJX IGCDS EAHUG WTQGR KVLFG XUCAL XVYMI GMMNM FDXTG NVHVR MMEVO UYFZS LRHDR RXFJW CFHUH MUNZE FRDIS IKBGP MYVXU Z
La primera línea del mensaje no está cifrada. El "1035" es la hora, "90" es el número de caracteres cifrados con la clave del mensaje y "341" es un indicador del sistema que le dice al destinatario cómo se cifró el mensaje (es decir, utilizando Enigma con una determinada clave diaria). Las primeras seis letras del cuerpo ("PKPJXI") son la clave duplicada ("ABLABL") cifrada utilizando la configuración de la clave diaria y comenzando el cifrado en la configuración básica/Grundstellung "FOL". El destinatario descifraría las primeras seis letras para recuperar la clave del mensaje ("ABL"); luego establecería los rotores de la máquina en "ABL" y descifraría los 90 caracteres restantes. Observe que la Enigma no tiene números, puntuación ni diéresis. Los números se deletreaban con todas las letras. La mayoría de los espacios se ignoraban; se utilizaba una "X" para un punto. Las diéresis utilizaban su ortografía alternativa con una "e" al final. Se utilizaban algunas abreviaturas: se utilizaba una "Q" para "CH".
Durante los estudios de matemáticas de Marian Rejewski en la Universidad de Poznań , la Oficina de Cifrado de Polonia lo reclutó a él y a otros estudiantes de matemáticas, entre ellos Jerzy Różycki y Henryk Zygalski , para realizar un curso patrocinado por la Oficina sobre criptología. Posteriormente, la Oficina contrató a algunos de los estudiantes para que trabajaran a tiempo parcial en una oficina local temporal de la Oficina. Después de graduarse en la Universidad de Poznań, en la Universidad de Göttingen, Rejewski completó el primer año de un curso de estadística actuarial de dos años y luego regresó a Poznań. En septiembre de 1932, él, Różycki y Zygalski fueron a Varsovia para trabajar a tiempo completo para la Oficina de Cifrado.
En diciembre de 1932, la Oficina de Cifrado encargó a Rejewski que trabajara en la máquina de cifrado alemana Enigma. La Oficina había intentado, sin éxito, descifrarla. En pocas semanas, Rejewski logró reconstruir la máquina. Los procedimientos de mensajes de la Enigma alemana utilizaban configuraciones diarias comunes y secretas de la máquina, pero también requerían que un empleado de cifrado eligiera una clave de mensaje individual de tres letras. Por lo tanto, un empleado podía elegir "ABL" como clave de mensaje. La clave de mensaje se utilizaba para establecer la posición inicial de los rotores al cifrar o descifrar el mensaje.
La elección de una clave de mensaje individual era una medida de seguridad: evitaba que todos los mensajes del día se enviaran utilizando la misma clave polialfabética, lo que habría hecho que los mensajes fueran vulnerables a un ataque polialfabético. Sin embargo, el remitente necesitaba comunicar la clave del mensaje al destinatario para que este último pudiera descifrar el mensaje. La clave del mensaje se cifraba primero utilizando la Grundstellung del día (una posición inicial secreta de los rotores de la Enigma, por ejemplo, "FOL").
Las comunicaciones a veces eran confusas y, si la clave del mensaje estaba confusa, el destinatario no podía descifrar el mensaje. En consecuencia, los alemanes tomaron la precaución de enviar la clave del mensaje dos veces; si había una confusa, el destinatario debería poder encontrar la clave del mensaje. Aquí los alemanes cometieron un error crucial. En lugar de enviar la clave del mensaje encriptada (por ejemplo, "PKP") dos veces para obtener "PKP PKP", duplicaron la clave del mensaje (por ejemplo, "ABL ABL"), encriptaron la clave duplicada para obtener ("PKP JXI") y enviaron la clave duplicada encriptada. Ese error le permitió a Rejewski identificar seis permutaciones secuenciales de la Enigma y aprovechar el conocimiento de que encriptaban la misma clave del mensaje.
Con la ayuda de una máquina Enigma comercial, materiales alemanes obtenidos por el espía francés Hans-Thilo Schmidt y empleados de cifrado alemanes que eligieron claves débiles, Rejewski pudo realizar ingeniería inversa del cableado de los rotores y el reflector de la Enigma. La Oficina de Cifrado construyó luego varias máquinas Enigma polacas dobles que podían utilizarse para descifrar mensajes alemanes.
El procedimiento alemán que enviaba una clave duplicada encriptada fue el error que le dio a Rejewski una vía de entrada. Rejewski consideraba que la Enigma permutaba las letras del texto simple en texto cifrado. Para cada posición de carácter en un mensaje, la máquina utilizaba una permutación diferente. [5] Sea ABCDEF las permutaciones respectivas para las letras primera a sexta. Rejewski sabía que la primera y la cuarta letras eran las mismas, la segunda y la quinta letras eran las mismas, y la tercera y la sexta letras eran las mismas. Rejewski podía entonces examinar el tráfico de mensajes del día; con suficiente tráfico podía reconstruir las permutaciones compuestas.
Por ejemplo, para la clave diaria de un manual técnico de 1930, entonces (con suficientes mensajes) Rejewski podría encontrar las siguientes características:
La notación es la notación cíclica de Cauchy . Al examinar el tráfico del día, Rejewski se daría cuenta de que si "p" fuera la primera letra del indicador, entonces "j" sería la cuarta letra. En otro indicador, "j" sería la primera letra y "x" sería la cuarta letra. Rejewski continuaría siguiendo las letras. Finalmente, habría un mensaje cuya primera letra sería "y" y la cuarta letra volvería a ser "p". Se harían las mismas observaciones para la segunda y la quinta letra; por lo general, habría varios ciclos.
Rejewski podría usar esta información del ciclo y algunos hábitos descuidados de los empleados de código para averiguar las permutaciones individuales ABCDEF utilizando el método de la parrilla , pero ese método era tedioso. Después de usar la parrilla, los polacos sabrían el rotor más a la derecha y su posición, las conexiones del tablero de conexiones y Q (la permutación del reflector y los otros dos rotores). Para obtener la clave diaria, los polacos todavía tendrían mucho trabajo por hacer, y ese trabajo podría implicar probar todos los órdenes y posiciones posibles para los dos rotores izquierdos para encontrar la posición para el Grundstellung. Los polacos comenzaron a usar un catálogo Q para facilitar parte del método de la parrilla; ese catálogo tenía 4.056 entradas (26 × 26 × 6). Para encontrar las configuraciones del anillo, el método de la parrilla podría requerir probar 17.576 posibilidades.
El método de la parrilla funcionó bien hasta el 1 de octubre de 1936, día en que los alemanes dejaron de utilizar seis steckers (conexiones de tablero de conexiones) y comenzaron a utilizar de cinco a ocho steckers. [6] Más steckers podrían frustrar el método de la parrilla.
En lugar de indexar el catálogo según los ciclos reales, los polacos optaron por indexarlo según la duración de los ciclos. Aunque el tablero de conexiones cambiaba la identidad de las letras en la permutación, no cambiaba la duración de los ciclos.
Resulta que hay 101 patrones posibles para las longitudes de ciclo de una permutación de indicador. [7] Con las tres permutaciones en la característica, hay alrededor de un millón de posibles combinaciones de longitud de ciclo ( 101 3 =1,030,301 ). En consecuencia, las longitudes de ciclo podrían usarse como una función hash en una tabla hash de las 105,456 combinaciones posibles. Los polacos observarían el tráfico del día, recuperarían la característica del indicador y luego buscarían en el catálogo de tarjetas. Las probabilidades serían buenas de que solo una (o tal vez unas pocas) tarjetas tuvieran esas longitudes de ciclo.
El resultado sería el orden de rotores adecuado y las posiciones de todos los rotores sin mucho trabajo. El método era más simple que el método de la parrilla y funcionaba cuando había muchos steckers.
El catálogo no revelaba la configuración del tablero de conexiones. Para seis conectores ( steckers ), hay alrededor de 100 mil millones de posibles configuraciones. [8] Probarlos todos es inviable. Sin embargo, el criptógrafo podría encontrar la característica para ese orden de rotor sin un tablero de conexiones, usar esa característica simple en un ataque de texto simple conocido y luego determinar la configuración del tablero de conexiones comparándola con la característica diaria. [9]
A partir de algún tráfico diario, el criptoanalista calcularía la característica.
En el método de la parrilla, la característica anterior se resolvería para las permutaciones individuales ABCDEF y luego se realizaría una búsqueda laboriosa. En su lugar, se calcularían las longitudes de ciclo pareadas de la característica:
d.C.: 13SER: 10 3Cf: 10 2 1
Esas longitudes se buscarían en el catálogo de tarjetas y se encontraría una entrada que indicaría el orden de las ruedas (II, I, III) y la posición inicial de cada rueda.
El catálogo de tarjetas no incluía la característica real: el ciclómetro solo indicaba la pertenencia a un ciclo; no especificaba el orden de las letras en un ciclo. Después de encontrar una entrada en el catálogo, el criptoanalista calculaba la característica sin steckers (solo los ajustes del catálogo). El criptoanalista puede determinar cada una de las permutaciones individuales A* B* C* D* E* F* configurando una Enigma en el orden de rueda y las posiciones iniciales dadas. El criptoanalista luego la presiona a
y la mantiene presionada; la lámpara correspondiente se enciende y se escribe; sin soltar la primera letra, el criptoanalista presiona b
y luego suelta la primera letra; eso evita que la máquina avance los rotores y enciende la lámpara correspondiente a b
. Después de mapear todo A , el criptoanalista puede pasar a B y las otras permutaciones. El criptoanalista recupera la característica sin steckers:
Las dos características se utilizan luego para resolver la permutación de Stecker S.
En este ejemplo, hay seis steckers y afectarían a 12 caracteres. Si nos fijamos en los ciclos CF , los ciclos del tablero de conexiones (un)(fa) deben transponerse con los ciclos no steckerizados (vt)(mi) . Ninguna de las letras es igual, por lo que todas esas ocho letras están steckerizadas. Si nos fijamos en los ciclos singleton de CF y C*F*, no solo se ve que "e" no está steckerizada, sino que también "w" y "z" están steckerizadas juntas. [10] Por lo tanto, diez de las doce letras steckerizadas se identifican rápidamente. La mayoría de las otras 16 letras, como "b", "d", "g" y "l", probablemente no estén steckerizadas. La notación de ciclo de A*D* , B*E* y C*F* se puede reorganizar para que coincida con los caracteres probablemente no steckerizados. (La letra inicial de la notación de un ciclo no es significativa: dentro de un ciclo, las letras deben mantener la misma secuencia, pero pueden rotarse. Por ejemplo, (dtj) es lo mismo que (tjd) que es lo mismo que jdt .)
En este punto, los posibles steckers pueden leerse a partir de las diferencias en las dos primeras líneas; también se puede comprobar su coherencia de intercambio. El resultado es
PS TU WZ NV AM FI
Estos steckers coinciden con el ejemplar Enigma de 1930.
El único secreto que queda es la posición de los anillos ( Ringstellung ).
El ciclómetro se utilizó para preparar un catálogo de la longitud y el número de ciclos en las "características" de las 17.576 posiciones de los rotores para una secuencia dada de rotores. Como había seis posibles secuencias de este tipo, el "catálogo de características" resultante, o " catálogo de tarjetas ", comprendía un total de (6) (17.576) = 105.456 entradas. [11]
La utilidad del catálogo de tarjetas , escribe Rejewski, era independiente del número de conexiones que utilizaban los alemanes en sus máquinas Enigma (y de la reconstrucción de las claves de los mensajes). La preparación del catálogo "era laboriosa y llevaba más de un año, pero cuando estaba listo... las claves diarias [se podían obtener] en unos quince minutos". [12]
Sin embargo, el 1 de noviembre de 1937, los alemanes cambiaron el "tambor inversor" o " reflector ". [13] Esto obligó a la Oficina de Cifrado a empezar de nuevo con un nuevo catálogo de tarjetas, "una tarea", escribe Rejewski, "que consumió, debido a nuestra mayor experiencia, probablemente algo menos de un año". [14]
Pero el 15 de septiembre de 1938, los alemanes cambiaron por completo el procedimiento de cifrado de claves de mensajes y, como resultado, el método del catálogo de tarjetas se volvió completamente inútil. [14] Esto estimuló la invención de la bomba criptológica de Rejewski y las hojas perforadas de Zygalski . [15]