Los anillos
Boletín Enigma nº 7 ? Noviembre 2002
Ult. rev. 05-01-2023
EDITORIAL
Bienvenidos al séptimo Boletín ENIGMA. Como en las anteriores ediciones, el número de "enigmáticos" lectores crece sin parar. Me complace anunciar que, hasta la fecha, ningún lector se ha borrado de la lista de suscripción. Esto me hace pensar que, a fin de cuentas, estoy haciendo algo que vale la pena. Y ustedes que lo disfruten.
Este boletín es el más extenso hasta la fecha. Las circunstancias obligan a ello. Durante el mes de Octubre, la LSSI (Ley de Servicios de la Sociedad de la Información) ha entrado en vigor. Hacer siquiera un resumen de sus consecuencias -entre webs cerradas, páginas autocensuradas y acciones en contra- hubiese extendido este boletín aún más, y con pesar he decidido no incluirlo; sí adjunto el "Manifiesto 12 de Octubre", impulsado por este que escribe, y que paulatinamente se está convirtiendo en una referencia en la lucha contra la LSSI.
Paralelamente, mi compañero en Libertad Digital Nacho García Mostazo, ha desvelado algunas de las conexiones más oscuras entre algunas iniciativas legislativas recientes (como la LSSI con su obligación de retención de datos) y las agencias de inteligencia norteamericanas FBI y NSA. Y por lo que sé, les aseguro que lo mejor está aún por venir. Sigan atentos.
No solamente eso, sino que el primer certamen BBA (Big Brother Awards) Spain 2002, en el que participé como organizador y presentador, tuvo lugar también en Octubre. Las fotos que les prometí están disponibles en http://villanos.net/makypress, cortesía de mi amigo y compañero de fatigas William González (Maky).
No solamente eso, sino que el primer certamen BBA (Big Brother Awards) Spain 2002, en el que participé como organizador y presentador, tuvo lugar también en Octubre. Las fotos que les prometí están disponibles en http://villanos.net/makypress, cortesía de mi amigo y compañero de fatigas William González (Maky).
Tanta noticia me aleja de mi objetivo favorito: el estudio de la criptografía histórica. ¿Qué pasa con aquellas historias tan divertidas sobre la máquina Enigma, los polacos, los ingleses, los rotores y demás añadidos? Lejos de mi mente el olvidarlas. Así que, engordando un poco más el boletín, han vuelto. Dos mejor que una: una continuación de las lecciones sobre los rotores Enigma, y una primera semblanza de mi visital a Bletchley Park, el legendario centro criptoanalítico de la Segunda Guerra Mundial. Pronto habrá más, incluyendo fotos y testimonios de primera mano.
Por cierto, el cúmulo de informaciones sobre Bletchley Park, Enigma y similares me ha planteado la posibilidad de abrir una nueva sección en mi Taller de Criptografía. Fotos, documentos, explicaciones, enlaces ... todo a disposición de las mentes interesadas. Lo que le falta a este proyecto es a) tiempo y b) un nombre. De la parte a) me encargo yo; para la b), apelo a su imaginación. Piense en un nombre para la sección de Criptografía Histórica y envíemelo. Vamos, no sea tímido. Y sigo esperando sus colaboraciones: cartas al director, recomendación de enlaces, libros que haya usted leído... sea bueno y compártalo con sus compañeros de boletín.
Pero no lo haga ahora. Antes tiene todo un Boletín ENIGMA que devorar. Que comience el banquete. Primera parada: Enigma y sus rotores.
ENIGMA: los anillos
[Apuntes para el libro "ENIGMA: la batalla oculta", en preparación]
Continuemos el estudio de nuestra máquina de cifrado favorita. En el Boletín ENIGMA 4 vimos el efecto de los rotores, reflector y cilindro de entrada. Con la ayuda de un atento lector (Boletín 6), fuimos reconstruyendo los entresijos de la señal eléctrica a través del sistema de rotores. Ahora veremos el efecto de los anillos.
Un rotor se compone básicamente de dos partes: anillo y núcleo. Imagínenselo como una rueda de automóvil. En el núcleo reside el cableado por el que irá viajando la señal de la forma relatada hasta ahora. Hemos presupuesto que una posición determinada de un rotor fijaba la permutación. En el caso del rotor I, la letra A se convertía en la E, la B en la K, y así sucesivamente. Esto quiere decir lo siguiente. Imagínese el anillo exterior del rotor, rotulado con las letras del alfabeto A-Z dispuestas en el sentido de las agujas del reloj. Es decir, si mirásemos a la cara derecha del rotor, las letras irían dispuestas en sentido horario (en algunos modelos de Enigma, los anillos de los rotores llevaban números en lugar de letras, pero eso no afecta el presente razonamiento).
En lo que sigue, y salvo indicación en contrario, vamos a suponer que el anillo se fija a una posición determinada. Supongamos que miramos el rotor desde la derecha, e imaginemos que fuese un reloj. Cuando la señal eléctrica, proveniente del cilindro de entrada, entra por el contacto indicado por la A, saldrá por detrás por la E. Significa eso que, si el rotor fuese un reloj, la señal llegaría a la cara anterior en la posición de las 12, y saldría por la posición de las 3, aproximadamente. Análogamente, la señal correspondiente a la letra B (que estaría en la posición de la manecilla horaria a las 12:28) saldría por la K (la posición de la manecilla horaria a las 16:37). Es algo muy sencillo de explicar si se hace un dibujo, pero aquí he decidido mantener la versión texto.
En cualquier caso, cada señal entra por un lado y sale por otro distinto, merced al cableado interno del rotor. En el ejemplo anterior, hemos supuesto que el rotor está en la posición A, es decir, la letra A del anillo está en posición vertical; es la letra que el operador de la máquina Enigma verá en la ventanita correspondiente de su máquina.
Ahora bien, supongamos que giramos el rotor hasta que sea la letra H la que resulta visible por la ventana. Esto complica algo las cosas. Para empezar, la posición del núcleo del rotor respecto al exterior ha variado. Ahora, una señal que provenga de la posición de "las doce" en el reloj se encontrará con la H, de forma que el núcleo del rotor I lo transformará en la Q. Eso muestra algo evidente: el cifrado dependerá de la posición inicial de los rotores. De hecho, la posición de los rotores era parte de la "clave", esto es, del conjunto de instrucciones que el operador necesita para cifrar, o descifrar, un mensaje.
La complicación aparece cuando recordamos que, a fin de cuentas, el anillo no está soldado al núcleo. Sujetando el anillo con la mano izquierda y el núcleo con la derecha, se desengarza un gancho que mantiene ambos unidos. Una vez desengarzado, el anillo se puede deslizar respecto al núcleo. Así pues, una orientación dada del núcleo no vendrá dado por una sola posición del anillo, ya que como hemos visto el anillo puede moverse. El operador necesitará saber dos cosas: la posición del anillo, y la posición del núcleo respecto al anillo.
Puesto que lo que determina la permutación es la posición absoluta del núcleo, el lector avispado podría pensar ¿qué importa la posición del anillo? Tanto da que la letra que aparezca en la ventanita de la máquina Enigma sea la A, la C o la V. Lo que importa realmente es la orientación del núcleo, ya que es éste el que determina el cifrado.
Si eso es lo que usted piensa, enhorabuena, significa que ha entendido el intríngulis de los rotores sin perderse. Efectivamente, la orientación del núcleo es lo que cuenta, al menos hasta aquí. El operador que prepara la máquina para cifrar no necesitaría en principio más que ese dato para ajustar bien los rotores (junto con la disposición de los rotores y su orden, naturalmente; necesitamos saber qué rotores vamos a usar). En su lugar, usamos dos parámetros para cada rotor: la posición del anillo respecto al núcleo, y la posición del rotor (esto es, del conjunto anillo+núcleo). La posición del anillo (respecto al núcleo) se daba indicando qué letra del anillo debe corresponder a un punto prefijado de la cara exterior del núcleo; la orientación del rotor completo viene dado por la letra que aparece en la ventana de la Enigma.
¿Por qué? Hay varias razones. Una de ellas es de conveniencia operativa. Si mantenemos secreta la posición de anillo -de forma que solamente los interlocutores la conozcan-, podemos indicar a los cuatro vientos la orientación del rotor. De hecho, podemos ir variando la orientación del rotor para cada mensaje, aunque usemos la misma posición de anillo. O viceversa. Otro día trataremos de la forma en que estos datos eran transmitidos por los operarios de cifrado entre ellos.
Imaginemos ahora que un atacante intentase romper un mensaje mediante "fuerza bruta", es decir, probando todas las combinaciones posibles. Supongamos, para simplificar, que nos olvidamos del tablero de conexiones, y que sabemos o suponemos la disposición de los rotores a emplear. Por ejemplo, tomemos la disposición III II I (rotor III a la izquierda, II en el centro y I a la derecha). ¿Cuántas posibles variaciones tendría que probar un atacante? En principio, tendría que probar a descifrar el mensaje para cada una de las 26*26*26=17.576 posibles posiciones de anillo; y para cada una de ellas, habría que probar otras 17.576 orientaciones del rotor. Esto daría la cifra de 308.915.776 posibles combinaciones de núcleo y anillo. Demasiadas para ir probando al tuntún.
Ya oigo al avispado lector: ¿pero no habíamos quedado en que lo importante es la orientación del núcleo? ¿Por qué no probar las 17.576 posibles orientaciones de los tres núcleos, y listo? De hecho, ¿por qué molestarnos con los anillos? O más aún, ¿de qué sirven los anillos?
Bien, hasta cierto punto tiene razón. Un ataque por fuerza bruta no tendría que preocuparse más que por las orientaciones de los núcleos correspondientes a los tres rotores. Parece incluso que si quitásemos los anillos exteriores, no perderíamos nada. Concedido.
Pero hay un detalle del que no hemos hablado todavía. Recuerden que, cuando un rotor alcance la posición de acarreo, el rotor a su izquierda girará una posición. Es como el cuentakilómetros: cuando tenemos 5.189 y hacemos otro kilómetro, pasamos a 5.190. En ese caso, el punto de acarreo está en el paso de 9 a 0; en lenguaje Enigma, diríamos que su "posición de acarreo" es el 0.
¿Cuál es la posición de acarreo de los rotores? Los cinco rotores estándar I a IV tenían diferentes posiciones: R F W K A. Es decir, cuando el rotor I se encuentra con el anillo en la posición superior R (apareciendo por la ventana), arrastra al rotor que se halle a su izquierda. Pero vean la sutileza: las muescas que determinan el acarreo se hallan en el anillo exterior. Esto cambia las cosas. Ahora un atacante no debe preocuparse solamente de la orientación de los núcleos sino también de la de los anillos, ya que esta última indicará cuándo girarán los rotores izquierdo y central.
Ahora el atacante lo tiene crudo. De acuerdo, la posición inicial de los tres núcleos será una de entre 17.576; pero lo que suceda después dependerá de la posición de los anillos, que son los que gobiernan los acarreos. Imagine una disposición dada de anillos y núcleos. Escribimos el mensaje, y sale el texto cifrado. Ahora giremos 1/26 de vuelta (una posición) el anillo del rotor central. El núcleo no ha cambiado de posición. Pero el cambio en el anillo puede suponer, por ejemplo, que el acarreo del rotor central actúe antes; de repente, tras digamos cinco letras cifradas, el rotor central gira una posición, arrastrando consigo al rotor izquierdo.
Es decir, la posición inicial de los núcleos es la determinante del cifrado, pero la relación de los núcleos de los rotores a lo largo del cifrado del mensaje dependerán de la posición de los puntos de acarreo, que dependen a su vez de la posición de los anillos. El atacante ya no puede limitarse a probar las 17.576 posibles disposiciones de los núcleos, sino que tiene que tener en cuenta la orientación de los anillos. Tengamos en cuenta que en un mensaje de 200 letras, el rotor derecho dará casi siete vueltas, el central girará unos 106 grados, y en primedio el rotor izquierdo se moverá una posición una vez de cada tres.
Lamento, mi querido criptoanalista, que las cosas se pongan tan cuesta arriba. Hay que tener en cuenta la orientación de los núcleos de los rotores para establecer los circuitos de cifrado, y además hay que considerar los anillos para el mecanismo de acarreo. Y del tablero de conexión aún no hemos hablado.
Ahora comenzará a comprender la magnitud del problema a que se vieron enfrentados polacos e ingleses. Pero si ellos lo consiguieron, también lo lograremos nosotros. Cuando terminemos nuestra descripción de la Enigma, nos pondremos los zapatos de criptoanalista y veremos qué tal nos sienta el calzado. Pero de momento tomése un pequeño descanso, que se lo ha ganado. Pronto comenzaremos a estudiar la máquina como si fuésemos auténticos rompecódigos.