LA MÁQUINA ENIGMA Por: José Manuel Quintero -2011 1. Un poco de historia Durante la segunda década del s. XX se desarrollaron varios inventos en diferentes países, los cuales revolucionarían y cambiarían definitivamente el rumbo de la criptografía y del criptoanálisis. Una de las creaciones fue realizada por el marino holandés Alexander Koch y consistía básicamente en una versión moderna y automática del invento de Alberti de 500 años atrás. Este artefacto, similar a una máquina de escribir eléctrica se convertiría a través de una empresa alemana fundada por Arthur Scherbius y Richard Ritter, quienes adquirieron la patente del ingenio, en la conocida y temida Máquina Enigma. Figura 8. Izquierda, máquina Enigma usada por la Kriegsmarine. Derecha, versión artística de la misma, fabricada por un aficionado. La Enigma era una máquina electromecánica portátil de cifrado y descifrado de texto que se comenzó a comercializar a partir de 1918 entre la empresa privada en Alemania para proteger la información comercial e industrial, sin embargo no tuvo mucho éxito en este campo debido a su elevado coste. Solo a partir 1925, cuando el ejército alemán decidió utilizarla masivamente para sus comunicaciones, debido a la evidencia sobre la fragilidad de su sistema criptográfico, ésta comenzó a fabricarse en serie. Hasta este momento los servicios secretos de los países de Europa Occidental descifraban rutinariamente las comunicaciones militares alemanas. Con la introducción de la máquina se consideró que sus mensajes serían inviolables. Aunque no es completamente correcto hablar de la máquina Enigma (Enrique, 2010), ya que con el tiempo se desarrollaron diferentes versiones de ella, el principio básico de funcionamiento es común a todas, por lo tanto en el presente documento se hará referencia a éstas como un único artefacto y se indicarán algunas de las modificaciones o adiciones introducidas. 2. Componentes y funcionamiento Los componentes básicos de la Enigma son (figura 9): -el teclado de 26 letras, - la unidad de codificación (integrada básicamente por los rotores, el reflector y el clavijero), - el tablero expositor, donde se ilumina cada una de las letras. Estos tres dispositivos están interconectados por un juego de cables, que conducen los impulsos eléctricos generados por una batería, los cuales fluyen por el circuito al pulsar las teclas y terminan con la iluminación de una letra determinada. Figura 9. Representación de los componentes principales de la máquina Enigma. El clavijero, que se encuentra en la parte frontal, hace parte de la unidad de codificación. La parte más importante de la máquina es la unidad de codificación, la cual fue evolucionando paulatinamente a medida que el Nacional Socialismo adquiría poder en Alemania y desarrollaba sus planes de dominio sobre Europa. Para hacer más comprensible el funcionamiento de la unidad codificadora se hará, inicialmente, una simplificación de la misma, sin tener en cuenta el clavijero ni el reflector y considerando un solo rotor (llamado también modificador). En la figura 10 se muestra una esquematización de esta situación con un teclado de solo 6 caracteres. Al pulsar cualquier letra, por ejemplo la b, un impulso eléctrico entra por un lado del modificador y hace un recorrido a través de éste, para salir del lado contrario e iluminar una letra del tablero expositor, diferente de la b inicialmente pulsada, en este caso la a. Esto implica que el modificador asocia, a través de un cableado interno, cada letra del alfabeto de entrada con otra diferente del alfabeto de salida, lo cual corresponde a una sustitución monoalfabética simple, que se representa por la función T: donde , es un número entero, M es el valor numérico de una letra del texto llano, m corresponde al cardinal del alfabeto. Este cifrado es fácilmente criptoanalizable por análisis de frecuencias. Figura 10. Representación esquemática de la función básica de un rotor o modificador en la máquina Enigma. En la parte derecha aparece la codificación correspondiente de cada una de las letras. En el ejemplo anterior el modificador permanece estático durante el proceso de cifrado, sin embargo, el diseño de la Enigma incluía la rotación de los modificadores alrededor de un eje común. De acuerdo con el ejemplo simplificado, el modificador girará un sexto de vuelta cada vez que se digite una letra (en realidad dará un veintiseisavo de vuelta, ya que se utilizan 26 letras). Esta innovación, permite que cada vez que se introduce un nuevo carácter se codifique según un alfabeto diferente del anterior, es decir, que si con el rotor fijo al digitar bb se obtiene aa, con el rotor móvil se obtendrá ac (ver figura 11). Por lo tanto, para seis letras se tendrán seis alfabetos de cifrado, es decir, se ha pasado a una cifra polialfabética. Figura 11. El modificador rotatorio hace que cada vez que se digite una misma letra ésta se codifique de manera diferente hasta completar las letras del alfabeto. En el esquema se pulsa tres veces la letra b, obteniéndose tres cifrados diferentes para ésta. Aunque esta solución técnica mejora considerablemente la encriptación, aún sigue siendo excesivamente vulnerable, pues luego de digitados seis caracteres el ciclo se repite, por lo tanto se tiene un cifrado Vigenère con clave de seis caracteres (o veintiséis en el caso real), que puede romperse por el método Kasiski, por ejemplo. Si para resolver este inconveniente se adiciona otro modificador, el cual dará dos giros de un sexto de vuelta por cada rotación completa del anterior, se conseguirá elevar a 6·6=36 el número de alfabetos cifrados (676 en el caso real). Aunque la mayoría de los autores comparan el funcionamiento de los rotores con el de un odómetro, éstos presentan una diferencia fundamental con este dispositivo, a saber, cada modificador adicional da dos giros de un veintiseisavo de vuelta (en vez de uno), por una rotación completa del anterior. Esta particularidad es debida al diseño del mecanismo de rotación y de los modificadores mismos, lo cual no se tratará a profundidad en este informe. Figura 12. Despiece de un modificador de la máquina enigma: 1. Anillo con muesca, 2. Marca para el ajuste de anillo en "A", 3. Anillo alfabético, 4. Contactos planos, 5. Cableado interno, 6. Contactos empujados por muelle, 7. Bloqueo del anillo de muelles, 8. Árbol de soporte, 9. Rueda de desplazamiento manual, 10. Trinquete En conclusión, la intención de Scherbius era conseguir un sistema mecanizado de sustitución que utilizase alfabetos a gran escala, generados por el movimiento discreto de ruedas contiguas (los modificadores), por lo tanto introdujo un tercer modificador. Los tres rotores en conjunto proporcionan 26·26·26=17576 posiciones diferentes, que corresponden a igual número de alfabetos cifrados. Además, los rotores pueden intercambiarse de lugar entre ellos, lo que proporciona 3!=6 permutaciones de éstos. La versión básica de la Enigma estaba equipada con cinco modificadores, para usar tres a la vez, pero además la unidad de codificación disponía de dos elementos adicionales: el reflector y el clavijero, los cuales añadieron mayor complejidad y versatilidad a la máquina. El reflector, situado frente a los modificadores, es similar en diseño a éstos, pero con dos diferencias básicas, es fijo y solo dispone de un alfabeto, por lo tanto, trece cables internos emparejan las 26 letras. Su función, como su nombre lo indica, es hacer rebotar cada impulso eléctrico proveniente de los rotores de nuevo hacia éstos, pero por un camino diferente al de llegada. En la figura 13 se ilustra esquemáticamente el papel del reflector en la unidad de codificación. Después de pasar por segunda vez a través de los modificadores, la señal llega a la correspondiente bombilla en el tablero expositor. La función del reflector parece no ser relevante, pues por el hecho de ser fijo no contribuye a aumentar el número de alfabetos cifrados, sin embargo es una pieza fundamental, ya que gracias a éste la máquina podía no solamente encriptar sino también desencriptar los mensajes. Figura 13. Representación de los tres modificadores y el reflector, el cual devuelve la señal proveniente de éstos por un camino diferente, para que ésta llegue luego al tablero expositor. El último elemento a tratar de la unidad de codificación es el clavijero, consistente en un panel con dos agujeros para cada letra del alfabeto (ver figuras 9 y 15). El propósito de éste es hacer un intercambio de letras por medio de cables, antes de que la señal entre a los modificadores, es decir, si se pulsa una b en el teclado y ésta se encuentra conectada con la r en el clavijero, entrará la señal de la r, en vez de la b, al primer modificador. La figura 14 ilustra la unidad de codificación completa, incluyendo el clavijero. Figura 14. La colocación del clavijero entre el teclado y los modificadores permite, por medio de cables, intercambiar parejas de letras. En la imagen aparecen intercambiadas la a y la b. La versión inicial de la Enigma incluía seis cables que permitían intercambiar hasta seis pares de letras, dejando las 14 restantes sin conexión; posteriormente se utilizaron hasta 13 cables. Como se indicó anteriormente, la Enigma evolucionó con el tiempo y se utilizaron diferentes versiones según la dependencia estatal o la división del ejército. Así, se introdujeron elementos adicionales, los cuales se mencionarán, pero no serán tenidos en cuenta para los análisis posteriores: - - - Los anillos de los modificadores, eran elementos con los cuales se podía cambiar la posición del cableado interno del rotor, la cual es fija, en relación con el alfabeto y con la muesca (cavidad que permite a un gatillo hacer avanzar el rotor a su izquierda). Por ejemplo, si en una posición del anillo, el rotor codifica la letra a como e, la b como k y la c como m, al desplazar el anillo un lugar hacia atrás, cada letra quedará codificada como la siguiente, es decir, la a se codifica ahora como k, la b como m y así sucesivamente. Para la máquina Enigma de la Kriegsmarine se desarrolló un modelo diferente de reflector y de rotores, más delgados que los normales, lo cual permitía trabajar con cuatro modificadores a la vez, seleccionables de entre ocho disponibles. El cuarto modificador era fijo, por lo que no proporcionaba una mejora significativa en la encriptación. En la versión G de la Enigma, utilizada por la Abwehr, se instaló un reflector rotativo. En algunos casos se utilizaron hasta 13 cables en el clavijero. Figura 15. Vista detallada de los componentes de la unidad de codificación. En la fotografía inferior se observa el clavijero 6.3. Cifrado y descifrado de mensajes con Enigma Para compartir información cifrada tanto emisor como receptor deben poseer versiones compatibles de Enigma. Cuando el emisor desea enviar un mensaje debe disponer la máquina de acuerdo con unas instrucciones preestablecidas, lo cual implica realizar las siguientes acciones: - Ubicar los modificadores en orden Fijar la posición inicial de cada uno de los modificadores Realizar las conexiones del clavijero Esta disposición determina la clave del mensaje, la cual puede estar expresada de la siguiente manera: - 1-3-2 S-L-G A/M, U/C, Z/K, B/F, L/I, T/E Puede observarse en la figura 16 la disposición correspondiente de cada elemento, según la clave anterior. Figura 16. Enigma con la clave del día. A la izquierda se observan los rotores en orden 1-3-2, en el centro la posición de cada uno de ellos: S-L-G y a la derecha las conexiones de los clavijeros Teniendo la máquina dispuesta con la clave del día, el operador debe digitar el mensaje claro letra por letra e ir anotando en orden las letras que se iluminan en el tablero. Luego, el mensaje cifrado se envía por radio al receptor, quien debe poner su Enigma en la misma disposición del emisor (la clave), y luego digitar el mensaje cifrado, que irá apareciendo en claro en el tablero expositor. En el ejército nazi se entregaba mensualmente a los operadores de Enigma un libro de claves, donde se indicaba una diferente para cada día. La posesión de la máquina y el conocimiento de la clave permitían el desciframiento del mensaje. Los alemanes desarrollaron una serie de normas de utilización de Enigma, que a la postre contribuyeron a que los criptoanalistas aliados lograran descifrar los mensajes transmitidos con ella. Algunas de estas reglas eran: - En el clavijero no se podía conectar una letra con su inmediatamente anterior o posterior Un modificador no podía ubicarse dos días seguidos en el mismo hueco Una letra no podía codificarse como sí misma (esta condición obedecía al diseño de la máquina) Para prevenir el envío de múltiples mensajes con la misma clave establecieron la llamada clave de mensaje, que consistía en que el emisor disponía la máquina con la clave del día, tecleaba tres letras al azar y disponía los modificadores según estas letras; esta era la clave de mensaje, con la cual digitaba el resto del texto. A su vez, el receptor, con la Enigma dispuesta con la clave del día, tecleaba las tres primeras letras del mensaje cifrado, así obtenía la clave de mensaje y procedía a posicionar los rotores según la misma, para luego digitar el resto del mensaje. El error cometido por los nazis consistió en que exigían a los operadores teclear dos veces la clave de mensaje, lo cual, después de descubierto por los criptoanalistas británicos fue utilizado en su provecho. 6.4. Criptoanálisis de Enigma Cuando el ejército nazi comenzó a utilizar masivamente la máquina en la transmisión de mensajes los servicios secretos de Gran Bretaña y Francia coincidieron en que ésta era indescifrable y desistieron de cualquier intento por romper su clave. Sin embargo, el gobierno de Polonia, consciente de la amenaza que para su nación implicaba la escalada armamentista alemana encargó al Biuro Szyfrów (Oficina de cifras), el estudio de Enigma. Con este propósito se adquirieron varias versiones comerciales de ella y se contrató un equipo de matemáticos de la Universidad de Poznan. El trabajo de espionaje, que permitió conseguir información sobre la Enigma militar y sus libros de claves, unido al temor por la invasión y al estudio científico de la máquina permitió a los matemáticos hacer avances significativos en el desciframiento de la misma. Dentro de los matemáticos más destacados se encontraba Marian Rejewski, quien inició el trabajo revisando los mensajes cifrados interceptados por los servicios polacos de inteligencia. Dentro de los secretos de uso de la Enigma conocidos gracias al trabajo de espionaje estaba el uso y repetición en el encabezado de cada mensaje de la clave de mensaje. Por ejemplo, diariamente se obtenían listas de encabezados de mensajes como la siguiente elaborada por un simulador de Enigma: NEZ IDL PKG CTH CLX XKK RLD AKM AXW FYN QCH JSO YXF WYT AEW FDN JCS PSX SNK HAY WPB RUZ LFT KHB Cada grupo de seis letras es el cifrado repetido de tres letras digitadas al azar. Como todas corresponden al mismo día, implica que la disposición inicial de la máquina (la clave del día), es la misma en todos. Cada letra se cifra en Enigma con una permutación diferente, pero para el caso de los encabezados, la permutación para cada orden de las seis letras es la misma. Es decir, si se toma los dos primeros encabezados de la fila uno: NEZ IDL CLX XKK, se sabe que N y C fueron digitadas en la misma permutación, E y L en otra y así sucesivamente, hasta llegar a la sexta permutación. Si se definen las permutaciones como P1, P2,…,P6, y se designa con x la letra del texto llano cifrada, puede decirse que P1 transforma x en N y que P4 transforma x en I: (1) . (2) Como Enigma codifica y decodifica con el mismo mecanismo, es decir, su cifrado es involutivo y consecuentemente sus permutaciones también, entonces, . (3) (4) Sustituyendo x en (2), se tiene, lo cual significa que la composición P4·P1 transforma la letra N en I. De la misma manera, para las permutaciones P2, P5 y P3, P6, se tendrá que y . Esto significa que cada encabezado de la lista proporciona un dato de los productos P4·P1, P5·P2 y P6·P3. Como durante el día se interceptaban suficientes mensajes, esto permitía completar una tabla de permutaciones como la siguiente: Lo que se busca es hallar las permutaciones Pi, para lo cual se debe factorizar P4·P1, P5·P2 y P6·P3, en producto de ciclos disjuntos. La permutación P4·P1 realiza las siguientes transformaciones: , con lo cual se cierra el ciclo. Tomando una letra no incluida en el ciclo anterior, se puede hallar el siguiente ciclo, que también será de doce letras. Por último quedan dos ciclos de de una letra, ya que se transforman en ella misma. Los productos resultantes de ciclos disjuntos serán: Puede observarse que en las tres factorizaciones obtenidas hay pares de ciclos de igual longitud. Esto fue demostrado por Rejewski y sucede siempre que se multiplican dos permutaciones como las que produce Enigma, consistentes ambas en trece transposiciones disjuntas (una transposición es un ciclo de longitud dos). Además se pueden recuperar las trece transposiciones de que constan los factores: para cada pareja de ciclos de igual longitud, se elige una letra en cada ciclo y se escriben los ciclos uno debajo del otro, comenzando por las letras elegidas y ordenando las letra de uno de ellos a la inversa. Por ejemplo, en los ciclos de longitud 12 de la factorización P4·P1 y eligiendo las letras F y V, se tiene: F N I Z M T B E Y W R A V U H S X C P J Q O K L Entonces, las dos letras de cada columna determinan transposiciones del segundo factor P1:(FV), (UN), (IH),…, (AL); y las diagonales ascendentes proporcionan transposiciones del primer factor P4 :(VN), (UI), (HZ),…, (LZ). Como es obvio, si se varían las letras elegidas en cada ciclo, se obtendrán emparejamientos diferentes que dan lugar a distintas transposiciones. El número de emparejamientos diferentes es precisamente la longitud de los ciclos. Por lo tanto, hay varias soluciones para cada uno de los factores buscados. En el ejemplo de P4 y P1 hay 12 soluciones, igual que para P6 y P3; sin embargo, para P5 y P2 hay 30, porque las parejas de ciclos tienen longitudes 10 y 3. La pregunta que se plantea en este punto es ¿cómo elegir las soluciones correctas? Para determinarlo fue muy útil el hecho de que entre los mensajes diarios se encontraban con frecuencia encabezamientos repetidos, los cuales corresponden a claves de mensaje repetidas. Sucedía que en ocasiones los operadores alemanes escribían las ternas con tres letras iguales o tres letras adyacentes en el teclado. Esta segunda práctica hacía que en ocasiones las claves de mensaje compartieran dos letras, con lo cual los encabezados quedan con cuatro letras en común, hecho que también permite identificar correctamente las permutaciones Pi. Un aspecto relevante de este estudio es que los ciclos obtenidos solo dependen del orden y las posiciones de los modificadores; las conexiones del clavijero no inciden en la longitud de éstos ni en su estructura, solo se modifican las letras que se encuentren interconectadas. Este número de ciclos y longitudes específico fue llamado característica. Esto permite separar el análisis de los modificadores y del clavijero, con lo cual para una máquina con tres rotores, se tienen 6·17576=105456 permutaciones a evaluar, lo que constituye un valor unas cien mil millones de veces menor que el número total de claves del día posibles. Para evaluar las más de cien mil posibilidades, el equipo de Rejewski diseñó una máquina llamada ciclómetro o bomba, que consistía en dos bancos de rotores conectados convenientemente. Variando el orden de los rotores y sus posiciones iniciales se calcularon todas las permutaciones P4·P1 existentes. Con esto se elaboró un catálogo que relacionaba las posiciones de los modificadores según el tipo de cadenas que generaban. Quedaba el problema con el clavijero, que se resolvía digitando el texto encriptado en la Enigma con el orden y las posiciones de los rotores según el catálogo, sin conexiones en el clavijero. La mayor parte del texto resultaba incoherente, sin embargo se podían distinguir partes que permitían reconocer el mensaje claro y deducir las conexiones del clavijero en la clave del día. Con esto se completaba la clave del día. A partir de 1938 los alemanes introdujeron cambios significativos en la Enigma, como la adición de 4 cables del clavijero, para un total de 10, con lo cual los procedimientos utilizados por el Biuro Szyfrów perdieron eficacia. Toda la información recopilada por el equipo de criptoanálisis polaco fue entregada a los franceses e ingleses; estos últimos retomaron el trabajo de criptoanálisis de la Enigma y gracias a una disponibilidad mayor de recursos y personal lograron romper la cifra Enigma. BIBLIOGRAFIA GÓMEZ URGELLÉS, J. (2010). Matemáticos, espías y piratas informáticos. RBA Coleccionables JUHER, David (2004). L’art de la comunicació secreta: el llenguatge de la criptografia. Llibres de l’índex. JUHER, David. Introducció a la criptografia. Servei de publicacions de la Universitat de Girona. Col·lecció: Publicacions docents 15 MALET, A., PARADÍS, J. Els orígens i l’ensenyament de l’àlgebra simbòlica: 1478-1545. Grup d’Història i Didàctica de les Matemàtiques (Barcelona, Spain) RAY MILLER, A. The cryptographic mathematics of enigma. Center of Cryptologic History SINGH, Simon. Los códigos secretos. Madrid: Editorial Debate, 2000. 382 p. DE MIGUEL García, Roberto. Criptografía clásica y moderna. Oviedo: Septem Ediciones, 2008. 92 p. CABALLERO, Pino. Introducción a la criptografía. Madrid: Rama Editorial, 1996. 137 p. ORTEGA, Jesús et al. Introducción a criptografía. Historia y actualidad. Cuenca: Ed. Universidad de Castilla- La Mancha, 2006.