En criptografía , el reloj era un método ideado por el matemático y criptólogo polaco Jerzy Różycki , en la Oficina de Cifrado del Estado Mayor Polaco , para facilitar el descifrado de los códigos Enigma alemanes . El método determinaba el rotor más a la derecha en la Enigma alemana explotando las diferentes posiciones de rotación. Para los polacos, aprender el rotor más a la derecha reducía el espacio de búsqueda de orden de rotor en un factor de 3 (el número de rotores). Los británicos mejoraron el método y les permitió usar su número limitado de bombas de manera más efectiva (los británicos se enfrentaban a entre 5 y 8 rotores).
Este método permitía en ocasiones determinar cuál de los rotores de la máquina Enigma se encontraba en el extremo derecho, es decir, en la posición en la que el rotor giraba siempre con cada pulsación de una tecla. [1] El método del reloj fue desarrollado por Jerzy Różycki entre 1933 y 1935. [2]
El método de la parrilla de Marian Rejewski podía determinar el rotor de la derecha, pero eso implicaba probar cada permutación posible del rotor (había tres rotores en ese momento) en cada una de sus 26 posibles rotaciones iniciales. Las pruebas del método de la parrilla también se complicaban por los ajustes del tablero de conexiones. En contraste, el método del reloj implicaba pruebas simples que no se veían afectadas por el tablero de conexiones. [3]
A principios de la década de 1930, determinar el orden de los rotores no era una carga importante porque los alemanes utilizaban el mismo orden de rotores durante tres meses seguidos. El orden de los rotores se podía determinar una vez y luego ese orden se podía utilizar durante los siguientes tres meses. El 1 de febrero de 1936, los alemanes cambiaron el orden de los rotores todos los meses. El 1 de noviembre de 1936, los alemanes cambiaron el orden de los rotores todos los días. [4]
El método del "reloj" de Różycki fue elaborado posteriormente por el criptólogo británico Alan Turing en Bletchley Park en el desarrollo de una técnica criptológica llamada " Banburismus ". [5]
La Oficina de Cifrado recibió interceptaciones de radio alemanas cifradas por la máquina Enigma. Con unos 60 mensajes, la Oficina pudo determinar la estructura característica de Marian Rejewski para la codificación de la clave del mensaje. [6] Al explotar claves de mensajes deficientes, la Oficina pudo determinar la codificación de la clave del mensaje. En ese punto, los criptoanalistas pueden conocer solo las claves del mensaje y su texto cifrado. Es posible que no conozcan los otros secretos de la clave diaria, como la configuración del tablero de conexiones, la configuración de los anillos, el orden del rotor o la configuración inicial. Con tan poca información y algo de suerte, los polacos aún podrían determinar qué rotor era el más correcto.
En el tráfico diario, puede haber alrededor de una docena de pares de mensajes cuya clave de mensaje comience con las mismas dos letras. [7] Eso significa que los rotores izquierdo y medio están en la misma posición.
Existen dos formas de alinear los textos cifrados del par de mensajes. [8] Se prueban ambas alineaciones; una de las alineaciones utilizará una sustitución polialfabética idéntica. A partir de eso, el criptoanalista puede determinar que el giro del rotor se produjo dentro de un rango particular de letras.
Los rotores tenían distintas posiciones de giro. Los británicos utilizaban la regla mnemotécnica "Las banderas reales ondean a los reyes en lo alto", que significaba que el rotor I giraba en la R, el rotor II en la F, el rotor III en la W, el rotor IV en la K y todos los demás rotores en la A.
Si los pares de mensajes cooperaran, los polacos podrían reducir la ventana en la que se produce el recambio para incluir solo un rotor. Un par de mensajes podría decir que el recambio se produjo en la ventana de B a U; eso significaba que los rotores I (R), II (F) y IV (K) eran viables. Un segundo par de mensajes podría producir una ventana de M a C; eso significaba que los rotores I (R), III (W), V+ (A) eran viables. Solo el rotor I satisface ambos pares de mensajes, por lo que el rotor I es el rotor de la derecha.
La máquina de cifrado Enigma dependía de que los usuarios compartieran algunos secretos. A continuación, se muestran las configuraciones diarias secretas de un manual de Enigma de 1930: [9] [10]
Configuración diaria (secreto compartido): Orden del rotor: II I III Fecha de emisión: 24 13 22 (XMV) Reflector: A Tablero de conexiones: AM, FI, NV, PS, TU, WZ Fecha de inicio: 06 15 12 (FOL)
Los ajustes diarios indicaban a los empleados del código cómo configurar la máquina para que se pudieran intercambiar mensajes. Inicialmente, la máquina tenía tres rotores que podían disponerse en cualquier orden (orden de las ruedas u orden de los rotores). [11] Cada rotor tenía un anillo con números o letras, y ese anillo podía estar en cualquiera de las 26 posiciones. Un tablero de conexiones intercambiaba caracteres adicionales.
Para cada mensaje, el operador elegía una clave de mensaje de tres letras para cifrar el cuerpo del mensaje. La intención era que esta clave fuera aleatoria, y utilizar una clave aleatoria para cada mensaje era una buena práctica de seguridad. La clave del mensaje debía comunicarse al destinatario para que este pudiera descifrar el mensaje.
En lugar de enviar las claves de los mensajes sin cifrar, se cifraban con la Grundstellung (configuración básica). En un grave error de procedimiento, los alemanes cifraron la clave del mensaje dos veces. Si la clave del mensaje era "ABL", los alemanes cifraban la clave duplicada "ABLABL" y enviaban el resultado ("PKPJXI"). El envío de la clave del mensaje dos veces permitía recuperar las claves distorsionadas durante la transmisión, pero el error criptográfico consistía en cifrar la clave duplicada en lugar de enviar la clave cifrada dos veces (por ejemplo, "PKPPKP"). La clave duplicada suponía un ataque para los polacos. Si había suficiente tráfico de mensajes utilizando la misma clave diaria (unos 70 mensajes) y los encargados de codificar utilizaban claves débiles (como "CCC" o "WER"), los polacos podían utilizar el método de características de Rejewski para determinar todas las claves de los mensajes del día. Sorprendentemente, los polacos descifraron las claves de los mensajes sin aprender los secretos sustanciales de los ajustes diarios de la máquina: los ajustes del tablero de conexiones, el orden del rotor, las posiciones del rotor o los ajustes de los anillos.
Los polacos tuvieron que utilizar otras técnicas para conseguir los secretos restantes; el método del reloj ayudó a determinar el orden del rotor.
El método del reloj explotó los tres rotores (I, II, III) que tenían diferentes posiciones de rotación . El rotor más a la derecha se movía a medida que se codificaba cada carácter. En una cierta posición en el anillo, cifrar el carácter también haría que el siguiente rotor a la izquierda se moviera una posición (una rotación). La posición del anillo que hizo que el siguiente rotor se moviera fue diferente para cada rotor: el rotor I avanzó en la transición QR ("real"); el rotor II avanzó en EF ("banderas"); el rotor III avanzó en VW ("onda"). [12] Si se pudiera detectar la rotación, entonces se podría identificar el rotor más a la derecha.
Los polacos, debido a que descifraron la clave del mensaje, conocían las posiciones del anillo para cada mensaje porque las posiciones del anillo eran la clave del mensaje. [13]
Con suficiente tráfico, los polacos encontrarían claves de mensajes que comenzaran con los mismos dos caracteres. Digamos que los polacos recibieron mensajes con claves "AAA" y "AAT".
Clave de mensaje AAA: BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKGClave de mensaje AAT: SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMX
Utilizando el índice de coincidencia de un mensaje lo suficientemente largo, los polacos podrían determinar dónde coinciden los ajustes del rotor. Esa determinación es estadística, pero también sutil. Explota la frecuencia no uniforme de las letras en un idioma. Consideremos dos oraciones con sus letras alineadas. Si las letras tuvieran la misma frecuencia, entonces una letra en la primera oración coincidiría con la letra en la misma posición de la segunda oración con una probabilidad de 1/26 (0,038). Para los idiomas naturales, los caracteres como "e" son mucho más probables, por lo que la probabilidad de coincidencia es mucho mayor. He aquí un caso en el que hay seis coincidencias en los primeros 28 caracteres (mucho más que las 1,73 coincidencias esperadas por cada 26 caracteres):
CONSIDERAMOS QUE ESTAS VERDADES SON EVIDENTESCUANDO EN EL CURSO DE LOS ACONTECIMIENTOS HUMANOS* *** * *
El índice de coincidencia también es válido si las dos cadenas que se comparan están cifradas con la misma clave polialfabética; si los caracteres son iguales, sus cifrados también lo son. Por el contrario, si las cadenas están cifradas con una clave polialfabética diferente, las cadenas se aleatorizarán y el índice de coincidencia mostrará solo coincidencias aleatorias (1 de 26 caracteres coincidirá).
Si las dos cadenas son lo suficientemente largas (digamos 260 caracteres), entonces el índice de coincidencia dará una indicación de si las cadenas fueron cifradas bajo la misma clave polialfabética (es decir, la misma configuración de rotor).
Para enfatizar el índice de coincidencia hasta un nivel absurdo, los dos mensajes de ejemplo anteriores consisten completamente en la letra "A", por lo que las coincidencias ocurren en cada posición que comparte las mismas posiciones del rotor (algo que no sucedería en los mensajes normales). Eso permite que la coincidencia sea absolutamente obvia incluso en un mensaje corto. En la práctica, se necesitan mensajes largos para obtener una buena indicación estadística.
Los polacos buscaron en el tráfico diario un par de mensajes cuyas claves comenzaran con las mismas dos letras. Algunos pares de claves de ejemplo serían ("UIB", "UIW") o ("GCE", "GCX"). La probabilidad de que las dos primeras letras de la clave de un mensaje coincidan con la clave de otro mensaje es pequeña ( 1/(26×26)=1/576 ), pero encontrar un par de estas características en un conjunto de mensajes puede ser probable; encontrar una coincidencia de este tipo es un ejemplo del problema del cumpleaños .
Los polacos querían que las dos primeras letras coincidieran porque eso significaba que los rotores izquierdo y medio tenían rotaciones idénticas y producirían la misma permutación. Los polacos también podían alinear los dos mensajes para tener en cuenta la diferencia entre la tercera letra de la clave. Dado el par de ejemplos ("AAA", "AAT") de arriba, los polacos sabían que había dos formas posibles de alinear los mensajes para que compartieran una clave común (rotaciones de rotor comunes). Los dos casos reflejan si el giro (movimiento del rotor medio) ocurre entre "A" y "T" o entre "T" y "A".
ENposición del rotor derecho: ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZClave de mensaje AAA: BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKGClave de mensaje AAT: SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMXCoincidencia: ===============================Conclusión: misma clave, por lo que no hay rotación en AT.
ejército de reservaposición del rotor derecho: TUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSClave de mensaje AAT: SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMXClave de mensaje AAA: BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKGCoincidencia: Conclusión: claves diferentes, por lo que hay rotación en TA
El rotor central girará en diferentes posiciones según cuál de los rotores esté en la posición más a la derecha (rápida). Los puntos de cambio de los rotores I, II y III se indican con 1, 2 y 3. La posición del rotor central se indica suponiendo que el rotor derecho es I, II o III.
Clave de mensaje AAA: BQWBOCKUQFPQDJTMFTYSRDDQEQJWLPTNMHJENUTPYULNPRTCKGVolumen de negocios 2 1 3 2 1 3Derecha ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYMedio(I) AAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCMedio(II) AAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCMedio(III) AAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBCCCClave de mensaje AAT: SRDDQEQJWLPTNMHJENUTPYULNPRTCKGFHWQJTVQROVULGDMNMXVolumen de negocios 3 2 1 3Derecha TUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYMedio(I) AAAAAAAAAAAAAAAAAAAAAAABBBBBBBBMedio(II) AAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBMedio(III) AAABBBBBBBBBBBBBBBBBBBBBBBBBBCCC
Para que se produzcan las coincidencias basadas en el lenguaje, los tres rotores deben estar sincronizados. Si no lo están, el texto sin formato se mezclaría aleatoriamente y las propiedades del lenguaje no se verían. Si se observa la región donde se produce la coincidencia, se pueden hacer algunas observaciones. Si el rotor I estuviera a la derecha, el rotor del medio nunca coincidiría y el índice de coincidencia no indicaría una coincidencia. Si el rotor II estuviera a la derecha, el rotor del medio tampoco coincidiría nunca. El rotor III muestra una coincidencia completa. En consecuencia, el rotor más a la derecha sería el rotor III.
En este punto, los polacos sabrían que el rotor derecho es III y que el orden de los rotores es (I, II, III) o (II, I, III). Aunque conocían la clave del mensaje, no sabían la configuración de los anillos, por lo que no sabían las posiciones absolutas de los rotores. Tampoco sabían la configuración del tablero de conexiones. Los polacos podrían usar otros métodos para obtener esa información, pero esos métodos se simplificarían si conocieran el rotor correcto.
Al principio, el método del reloj no era muy importante. En 1932, los alemanes mantuvieron el mismo orden de rotores durante tres meses seguidos. El 1 de febrero de 1936, los alemanes cambiaron el orden de rotores cada mes. Los cambios diarios en el orden de las ruedas comenzaron el 1 de noviembre de 1936. [14]
En octubre de 1936, los alemanes aumentaron el número de conectores de seis a ocho, lo que complicó el método de la parrilla. Los polacos desarrollaron el ciclómetro y el catálogo de tarjetas. Aunque el nuevo método no estuvo listo hasta un año después, identificó todo el orden del rotor (no solo el rotor correcto) con poco trabajo. [15] Desafortunadamente, el catálogo quedó inutilizable el 2 de noviembre de 1937 cuando los alemanes cambiaron el reflector; fue necesario hacer un nuevo catálogo.
El 15 de septiembre de 1938, los alemanes cambiaron sus procedimientos para que los mensajes en una red no utilizaran el mismo Grundstellung . [16] El cambio complicaría el método del reloj porque la clave del mensaje ya no era fácil de conocer.
Los descifradores de códigos británicos ampliaron el método del reloj; véase Banburismus . Los mensajes Enigma navales alemanes usaban el mismo Grundstellung , y los descifradores de códigos británicos podían determinar las claves de los mensajes cifrados. Si todas las letras de las claves cifradas, excepto la última, coincidían, entonces tendrían las mismas posiciones de rotor excepto por el rotor derecho. El problema era que los británicos no estaban haciendo coincidir las claves de los mensajes de texto simple (como los polacos), sino las claves de los mensajes cifrados, por lo que la última letra de la clave del mensaje cifrado no tenía un orden natural "ABCDE...WXYZ", sino un orden arbitrario. En lugar de mirar solo dos desplazamientos, los británicos tuvieron que mirar todos los desplazamientos posibles e inferir lo suficiente del orden de la tercera rueda antes de poder determinar el rotor correcto. Adivinar correctamente el último rotor podría ahorrarles a los británicos mucho tiempo valioso de Bombe.