2. Las máquinas de cifrado y Enigma
Ult. rev. 28-01-2023
Este artículo trata la importancia de la desencriptación de los Códigos Enigma y Lorenz alemanes por parte de los aliados gracias al trabajo analítico de multitud de matemáticos, cuyo resultado fue vital para la derrota de los nazis en la 2ª Guerra Mundial, acortando ésta al menos en dos años.
2.1. El origen de la máquina Enigma
Al final de la 1ª Guerra Mundial se produjo la aparición y proliferación de las máquinas de cifrado de rotores. Estas máquinas fueron desarrolladas de forma independiente por varios inventores de diferentes países en un lapso temporal de varios años. La inclusión de varios rotores se produjo con el fin de complicar el algoritmo de cifrado. Este tipo de máquinas daban la posibilidad además de simplificar al máximo su operatividad y funcionamiento. Algunas de estas máquinas se utilizaron ampliamente durante la Segunda Guerra Mundial, y algunos ejemplos son la Enigma alemana, la máquina púrpura japonesa, o la estadounidense M-209. Casi todas fueron crackeadas por el enemigo. Una de las que sin lugar a dudas tuvo más impacto mediático por su repercusión y todas las connotaciones que surgieron en torno a ella fue la alemana Máquina Enigma.
El americano Edward H. Hebern y su máquina de rotores de principios de los años 20
La primera máquina de cifrado de rotores fue inventada en los EE.UU por Edward Hugh Hebern (1869-1952). Entre 1912 y 1915 patentó varios dispositivos de cifrado como un teclado de cifrado y dos máquinas de escribir eléctricas conectadas con un cableado de 26 conexiones para el cifrado monoalfabético automático. Hebern construyó su primera máquina cifrado en 1917, la cual tenía únicamente un rotor que podía ser extraído y cambiar su orientación con el fin de ser utilizado para cifrar y descifrar mensajes. Hebern mejoró su máquina implementándola con nuevos rotores hacia 1921, cuando solicitó su patente y fundó la Hebern Electric Code Company. El criptoanalista estadounidense William Friedman, que conseguiría romper la japonesa máquina púrpura, mejoró el diseño original de Hebern con la invención de la SIGABA. La máquina de Hebern tenía un rotor que giraba y mantenía fijos los otros para 26 caracteres de un mensaje, haciéndola vulnerable al criptoanálisis. La SIGABA tenía una rotación irregular, lo que hizo que fuera una de las pocas máquinas de cifrado cuyo código no fue roto durante la Segunda Guerra Mundial. Hebern únicamente vendió una docena de máquinas antes de llegar a la bancarrota, lo que provocó su entrada en prisión por haber defraudado a sus inversores.
Arthur Scherbius
La segunda máquina de cifrado de rotores fue inventada en 1918. Ese año el ingeniero alemán Arthur Scherbius (1878-1929) y su íntimo amigo Richard Ritter fundaron la compañía Scherbius & Ritter(más tarde rebautizada en julio de 1923 como Chiffriermaschinen Aktien Ge- sellschaft), una innovadora empresa de ingeniería que cubría un amplio rango de invenciones. Scherbius era el encargado de lo que hoy denominamos I+D, buscando continuamente nuevas oportunidades. Uno de sus proyectos preferidos era sustituir los inadecuados sistemas manuales de criptografía empleados en la 1ª Guerra Mundial por una codificación mecánica y automática que mejorara las posibilidades de cifrado, aumentando la cifra de permutaciones posibles, y simplificando en gran medida la labor del emisor del mensaje cifrado. Scherbius había estudiado ingeniería eléctrica en Hannover y en Múnich, y desarrolló una pieza de maquinaria criptográfica que era esencialmente una versión eléctrica del disco de cifras de Alberti. Nadie podía sospechar que el invento de origen civil de Scherbius, se convertiría en el más temible sistema militar de codificación de la historia.
El 23 de Febrero de 1918, Scherbius solicitó la primera patente de la máquina comercial Enigma, con el fin de crear una máquina que mantuviera en secreto las principales transacciones de información en el mundo empresarial. La máquina Enigma de lámparas de incandescencia era relativamente fácil de transportar y muy potente, rápida y cómoda a la hora de generar mensajes cifrados. La primera versión comercial, conocida con el nombre de Enigma Die Handelsmaschine, fue puesta a la venta en 1923 y era de impresión, pesada y poco manejable. A esta primera versión le siguieron otros modelos comerciales. El modelo Enigma C vio la luz en 1925, siendo su principal característica su liviano peso de 11,8 kg frente a los 49,9 kg de sus antecesoras de impresión. El modelo Enigma D se convirtió en el más relevante, y el que tuvo verdadero éxito comercial. A pesar del origen comercial de Enigma, la armada alemana en Febrero de 1926, y posteriormente el ejército el 15 de junio de 1928, adquirieron su propia máquina Enigma, adaptándola y cambiando su fisonomía acorde a sus necesidades, como la inclusión del clavijero en 1930, o la modificación de las conexiones del cableado de los rotores con el fin de aumentar el número de posibilidades de cifrado y complicar más aún si cabe su criptoanálisis. Sin duda éste era un síntoma claro de que ambos estaban contraviniendo todas las directrices especificadas en el Tratado de Versalles ya que la intención principal de estas adquisiciones era la protección de sus comunicaciones en primera instancia y el rearme como fin último. El ejército alemán comenzó a utilizar el diseño básico de la máquina en 1929, cuyo uso se generalizó prácticamente a la totalidad de los estamentos militares alemanes y la cúpula Nazi. En la marina alemana (Kriegsmarine) se la denominó con el nombre de máquina “M”. Hasta la llegada al poder de Adolf Hitler en 1933 se habían fabricado en el mundo más de 100.000 unidades, llegando a ser utilizadas en países como Suecia, Holanda, Japón, Italia, España, EE.UU o Reino Unido entre otros.
La tercera máquina de cifrado de rotores fue desarrollada por el inventor holandés Hugo Alexander Koch. Dicha invención fue patentada el 7 de octubre de 1919 en Holanda. En vista del escaso éxito comercial que tuvo Koch (parece ser que no vendió ninguno de sus dispositivos de cifrado), éste le vendió algunos de los derechos de su máquina a Scherbius en 1927, por un valor de 600 florines holandeses. Algunos consideran que Scherbius le compró estos derechos a Koch con el fin de proteger su propia invención, ya que el alemán conocía a Koch ya que ambos habían colaborado estrechamente cuando Scherbius estaba desarrollando la Enigma.
El sueco Gerhard Damm y una de sus máquinas cifradoras de sustitución polialfabética
La invención de la última máquina de cifrado de rotores se le atribuye al sueco Arvid Gerhard Damm, que la patentó tan sólo tres días después que Koch, el 10 de octubre de 1919. Su invención utilizaba un rotor doble cuya cadencia era irregular. En 1920, Damm fundó la empresa Aktiebolaget Cryptograph con el fin de comercializar su invención, sin embargo, se trataban de máquinas tremendamente erráticas, lo que hizo que Damm no pudiera tener el éxito comercial esperado, ya que sólo vendió unas pocas unidades. Dos de sus inversores eran Karl Wilhelm Hagelin y Emanuel Nobel (sobrino de Alfred). El hijo de Hagelin, Boris, que se habíıa graduado en ingeniería mecánica en el Instituto Tecnológico de Estocolmo en 1919, se unió a la empresa en 1922 con el fin de proteger la inversión realizada. El ejército sueco encargó un gran pedido en 1926, sin embargo Damm no pudo disfrutar de su relativo éxito ya que moriría un año después. Un año antes, Boris Hagelin había tomado el control de la empresa (rebautizándola después con el nombre de Aktiebolaget Cryptoteknik en 1932), desarrollando de forma exitosa máquinas de cifrado con capacidad de imprimir (B-211) y una máquina totalmente portable (C-35). Un posterior diseño de Hagelin, la C-38, fue adquirida por el gobierno estadounidense y modificada bajo el permiso del propio Hagelin, siendo rebautizada como la M-209. Se vendieron más de 140.000 unidades de dicho modelo durante la Segunda Guerra Mundial, convirtiendo a Hagelin en el primero y posiblemente único millonario de este tipo de tecnología de máquinas de cifrado.
En el año 2003, se descubrió que la máquina de cifrado de rotores fue realmente inventada antes de los cuatro protagonistas mencionados anteriormente. Parece ser que en 1915, dos oficiales navales holandeses, Theo A. van Hengel y R.P.C. Spengler, tuvieron la idea de construir un dispositivo de estas características mientras residían en las colonias holandesas del Este. Construyeron un prototipo en el verano de 1915, pero la armada holandesa no consideró que fuera una invención necesaria como para adoptarla en sus comunicaciones, además de disuadir a Hengel y Spengler que intentaron patentar el dispositivo. Casualidades de la vida, uno de los abogados que inició el proceso de dicha patente era Huybrecht Verhagen, hermanastro de Hugo Alexander Koch. Esta coincidencia filial permitió con mucha probabilidad conocer dicha invención a Koch, dándole la idea definitiva para desarrollar su dispositivo de cifrado.
2.2. El funcionamiento de Enigma
Las Enigma de lámparas de incandescencia era muy similar a una máquina de escribir, salvo por que se alimentaba de una batería y no empleaba papel. Sus mensajes codificados se transmitían en código morse para ser descifrados por otra máquina Enigma al otro extremo de la línea. La máquina estaba formada por varias partes; un teclado de 26 caracteres, un clavijero interno o panel Stecker [10] con 6 pares de conexiones cableadas que podían conmutarse [11], un panel luminoso con 26 caracteres, varios rotores o modificadores (dependiendo de la versión de la Enigma), cada uno de los cuales contenía 26 ranuras dentadas perimetrales con las 26 letras de alfabeto, y el reflector que devolvía el impulso eléctrico hacia los rotores una vez la señal había sido codificada. Cuando el operador pulsaba una tecla, enviaba un impulso eléctrico que recorría el interior de la máquina. Dicho impulso pasaba por el clavijero, donde era redirigido hasta el cilindro de entrada al conjunto de rotores que contenían el alfabeto. En estos rotores era donde el operador llevaba a cabo los ajustes de la máquina. Unas ventanillas mostraban las letras en los rotores. Cada vez que el operador pulsaba una tecla, avanzaba una letra el rotor derecho o rápido. Una vez el rotor rápido diera toda una vuelta (que dependía de donde se situaba su muesca) entonces giraba una posición el rotor central, es decir avanzaba una letra, y del mismo modo lo hacía el de la izquierda o lento con respecto al rotor central, con la salvedad de que éstos dos últimos además de la rotación ya descrita, rotaban también cuando llegaban hasta la posición de su propia muesca. El impulso eléctrico pasaba de derecha a izquierda a través de los cables de cada rotor, y era devuelto por un reflector de izquierda a derecha. En su viaje de vuelta el impulso pasaba por el clavijero nuevamente, y su destino final era el tablero luminoso, donde se iluminaba la letra transpuesta. La letra que se iluminaba se encendía dependiendo de los ajustes de la máquina, y esto se podía hacer en la cantidad de 150 millones de millones de millones de modos. El mensaje codificado era transmitido en código morse para ser descodificado por una máquina enigma receptora ajustada en la misma clave diaria. En tiempos de guerra, estos ajustes se llegaron a realizar hasta tres veces al día.
El diagrama representa el recorrido del impulso eléctrico desde que, una vez ajustada la configuración de los rotores (5) (Walzen), el operador pulsa la tecla Q en el teclado (2), entonces el impulso eléctrico generado pasa por el clavijero o panel Stecker (3), de ahí pasa al cilindro de entrada (4), y entonces pasa por los rotores (5), y el reflector (6) que envía dicho impulso nuevamente a los rotores (5), cilindro de entrada (4), hasta que llega nuevamente al Stecker donde el impulso se direcciona con la conexión correspondiente (7 y 8), hasta que finalmente aparece iluminada la tecla codificada T (9) del tablero luminoso.
Sin duda el gran número de permutaciones posibles que la máquina era capaz de barajar, hicieron de ella que fuera considerada prácticamente inviolable. Éste fue uno de los motivos por el que pasó a formar parte del equipamiento de la armada alemana, no sin antes realizar varios cambios significativos como la introducción de un mayor número de rotores, con el fin de aumentar el número de posibilidades de cifrado. Este cambio la haría prácticamente inexpugnable a los ataques criptográficos, sin embargo, la historia probaría que los nazis estaban totalmente equivocados.
10 Stecker es la abreviatura de Steckerbrett en alemán que significa “panel de conexiones de clavija”. La versión comercial de Enigma no estaba dotada con este dispositivo que fue incluído en la versión militar con la intención de aumentar la seguridad.
Este número aumentó hasta 10 pares en sucesivas modificaciones con el fin de aumentar la seguridad de la máquina.
2.3. La operatividad de Enigma
Se trata de la Enigma I de tres rotores utilizada por el ejército alemán
El parámetro de configuración fundamental para operar con la máquina Enigma era la clave que tanto emisor como receptor debían conocer. Dicha clave estaba compuesta por:
- El orden de los rotores en los huecos de la máquina (Walzenlage).
- La posición inicial de éstos, que se configuraba colocando con la ruleta de la A a la Z (Grundstellung).
- Las conexiones del clavijero o panel Stecker.
Aunque no influía en la configuración de la clave, la distribución inicial de los anillos de los rotores (Ringstellung), que servía para variar la estructura del cableado interno de los mismos, también era un factor que podía modificarse.
Cada mes, los operadores de Enigma recibían un libro del alto mando con las claves diarias (“tageschlüssel” en alemán) a utilizar en dicho mes (A medida que avanzó la guerra, el número de claves pasó a ser de hasta tres diarias), de modo que un operador podía leer en el libro algo así como:
- Walzenlage: II-III-I.
- Ringstellung: H-J-R.
- Grundstellung: Y-B-J.
- Stecker: A/G, F/H, J/L, M/O, R/T, U/X.
La configuración anterior le indicaba al operador que debía poner el segundo rotor en el hueco 1 y girarlo hasta la posición Y, el tercer rotor en el hueco 2 y girarlo hasta la B y el primer rotor en el hueco 3 y girarlo hasta la posición J.
Así mismo debía conectar los cables en el panel Stecker con los pares de letras indicados. Una vez configurada la máquina, el operador podía comenzar a cifrar los mensajes que eran enviados mediante código morse. El receptor debía asimismo colocar la máquina en la misma disposición según el libro de códigos, y aquí es donde juega su papel el reflector. Simplemente teclearía el mensaje cifrado recibido, y el mensaje original aparecería en el panel luminoso.
Figura 13. De izq. a drcha. y de arriba a abajo:
- Rotores de la Enigma. La parte posterior del rotor izqdo. muestra una muesca en la letra H (cada rotor tenía la suya) causante del giro de una posición del siguiente rotor situado inmediatamente a la izquierda. Por ejemplo los rotores I, II y III, tenían estas muescas en las letras Y, M y D, que provocaban el giro del rotor situado inmediatamente a su izquierda en las letras Q, E y V respectivamente. Inclusive la Kriegsmarine introduciría dos nuevos rotores (el IV y el V) que tenían doble muesca (los rotores de la 1ª imagen son de este tipo), y causaban un aumento del número de giros de los mismos.
- Disposición del anillo que se podía modificar para cambiar la configuración del cableado interno y la muesca del rotor.
- Cableado interno de un rotor (diferente en cada rotor).
- Reflector.
- Interior del reflector.
- Clavija interna del reflector modificable.
Los alemanes se dieron cuenta que operando de este modo, generaban un sinfín de mensajes con la misma clave durante todo un día (ya adelantaban que en periodos de operaciones bélicas, el tráfico de comunicaciones iba a ser inmenso), y esto resultaba un filón para los criptoanalistas. Conscientes de ello, emitieron una serie de órdenes sobre cómo se debía utilizar Enigma. De lo que no fueron conscientes es que al señalar una serie de normas estrictas, aunque al principio pudieran parecer sensatas, estaban proporcionando pistas para los criptoanalistas que significaron el principio del ataque a Enigma. Dichas normas eran fundamentalmente:
- No se podía conectar una letra con su inmediatamente anterior o posterior en el panel Stecker.
- Un rotor no podía permanecer en el mismo hueco durante más de un día.
Sin embargo la norma más importante resultó ser el concepto de “clave de mensaje” (en alemán “spruchschlüssel”). Con el fin de evitar un intenso tráfico de mensajes cifrados con la misma clave, lo que en sí mismo constituiría un filón para los criptoanalistas, los alemanes consideraron que cada mensaje enviado debía tener su propia clave. Pero, ¿cómo sabría el receptor la clave que había utilizado el emisor? Para ello el emisor configuraba la Enigma con la clave del día según el libro de códigos. Con dicha configuración, escribía tres letras elegidas al azar, por ejemplo FKM, obteniendo en el panel luminoso ZBH. Después, giraba los rotores desde su posición inicial (la indicada para ese día por el libro) a la posición de esas tres letras, en este caso F-K-M, dejando el orden de rotores y el panel Stecker sin cambios, y entonces procedía a codificar el mensaje a enviar. De este modo el mensaje transmitido comenzaba ZBH, que era la codificación de FKM según la clave del día y el mensaje codificado según la disposición F-K-M de los rotores. El receptor, que tenía la máquina configurada con la clave del día, recibía la transmisión, y se fijaba en las primeras tres letras. Las tecleaba (ZBH en el ejemplo) y veía FKM. Entonces giraba los rotores a esa disposición, F-K-M, y tecleaba el resto del mensaje, obteniendo el original. Este hecho era característico de la Enigma como consecuencia de la propiedad recíproca que veremos más adelante.
Pero con el fin de evitar errores por interferencias en la transmisión o de los operadores, los alemanes obligaban a teclear dos veces seguidas las tres letras de la clave de mensaje. Así que realmente el emisor, con la clave del día, tecleaba FKMFKM, obteniendo en el panel luminoso ZBHGJI, y luego orientaba los rotores en la posición F-K-M y codificaba el mensaje. El receptor recibía el mensaje, tecleaba las seis primeras letras, ZBHGJI, y veía FKMFKM, con lo que ya reconocía la clave de mensaje. Sin embargo lejos de reforzar la seguridad de Enigma, esta norma ofrecía a los criptoanalistas un punto de partida para comenzar a romper el código. Enigma, incumplía algunos de los principios de Kerckhoffs.
Principios de Kerckhoffs
En 1883, el lingüista y criptógrafo holandés Auguste Kerckhoffs (1835-1903) enunció en sus ensayos sobre criptografía militar los seis principios fundamentales que debían cumplirse para diseñar cualquier sistema criptográfico eficiente. Sus trabajos, más que una revisión del estado del arte de esta disciplina, significaron una auténtica renovación para las técnicas criptográficas del momento. Básicamente estos principios eran:
- Si el sistema no es teóricamente irrompible, al menos debe serlo en la práctica.
- La efectividad del sistema no debe depender de que su diseño permanezca en secreto.
- La clave debe ser fácilmente memorizable de manera que sea necesario recurrir a notas escritas.
- Los criptogramas deberán mostrar resultados alfanuméricos.
- El sistema debe ser operable por una única persona.
- El sistema debe resultar fácilmente utilizable.