-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 _____________________________________________________________________ | | | ======= == === === ==== == == === | | = == = = = = == == = | | = = = = = = = = = = = = | | xxxxx x x x x xxxxxx x x x x x | | x x x x x x x x x xxxxxxx | | x x xx x x x x x x x | | xxxxxxx xxx xx xxx xxxxx xxx xxx xxx xxx | |_____________________________________________________________________| Boletín del Taller de Criptografía de Arturo Quirantes http://www.cripto.es Número 68 1 de Mayo de 2009 ======================================================================== EDITORIAL TEMAS DE ACTUALIDAD - De todo un poco, sección primaveral CRIPTOGRAFÍA HISTÓRICA - El funcionamiento de la bomba polaca - Enigma A: la conexión argentina ======================================================================== <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> EDITORIAL <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> Hace unos días recibí un par de e-mails de un coleguilla de Internet (llamémosle X), persona seria y responsable, que sabe un montón sobre seguridad informática y criptografía. Me incluía un adjunto con información confidencial, que no debe hacerse pública todavía, y el mensaje venía firmado digitalmente con GnuPG. Todo correcto y bien hecho. Salvo por un pequeño detalle: yo no era el destinatario. Seleccionó mi nombre por error de su agenda de direcciones. Poco puede reprochársele. Yo mismo envié al menos un ejemplar de este vuestro Boletín poniendo los nombres de los destinatarios en el campo Copia en lugar de en el Copia Oculta. En otra ocasión, mi base de datos de destinatarios se fue al garete, y más de una persona recibió copia del Boletín sin estar suscrito. Uno de ellos me puso verde por enviarle correo no solicitado, y la verdad es que no puedo culparle. ¿Somos X y yo unos zotes en seguridad informática? Espero que no, al menos por la parte que a mí me toca. Pero ilustra perfectamente la visión que tenemos de la seguridad informática como una cadena, donde la ruptura se efectúa por el eslabón más débil. Sistemas, algoritmos, cifras y claves son inútiles en la práctica si la gente escoge claves fáciles y predecibles, o sencillamente si los humanos que nos encontramos al lado del teclado pulsamos la tecla equivocada. Para ilustrar este problema, hemos seleccionado algunos fallos de seguridad relacionados con criptografía pero que no tienen que ver precisamente con criptoanálisis. Luego saltaremos a los años treinta, donde un grupo de esforzados matemáticos polacos inventaron una máquina para reventar las claves Enigma, para lo cual aprovecharon sutiles pero letales fallos de uso por parte de los operadores alemanes. El artículo es largo y algo árido, pero creo que muy ilustrativo. En próximas entregas, nos lanzaremos a estudiar la Bomba inglesa, que esa es para nota, y después de eso comprenderemos por qué el parecido entre las bombas polaca y anglosajona acaba en el nombre. Cuando acabéis con él, os espera una primicia: un corresponsal argentino nos habla de las Enigmas compradas por el ejército argentino, incluída una del modelo A, la primera de todas. Tengo algunas fotografías estupendas, que por desgracia no puedo incluir en el Taller ahora, pero estarán disponibles para el próximo boletín, o antes aún. Prometido. Hablando de fotos, gracias a los que me enviaron fotos de la Bomba, en respuesta a mi petición del mes pasado. Pronto irán al Taller. Pero os animo a que enviéis más, especialmente las hechas por vosotros. Así iremos enriqueciendo más la Web. Y, por descontado, muchas gracias a todos los que me escribieron con motivo de mi reciente operación. <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> TEMAS DE ACTUALIDAD <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> =----------------------------------------------------------------------= De todo un poco, sección primaveral =----------------------------------------------------------------------= Si no quieres que el enemigo lea tus mensajes, no te dejes la contraseña encima del piano. O, alternativamente, ni se te ocurra escoger una contraseña sencilla. Y no creas que la criptografía resolverá todos tus problemas de seguridad. Quien eso cree no entiende la criptografía y tampoco entiende el problema. En las últimas semanas hemos sido testigos de diversos fallos de seguridad que, por sus características, ilustran estos axiomas. Comencemos por la criptografía. El programa de procesamiento de textos Word tiene una opción de contraseña. De hecho, si miramos en Herramientas - Opciones - Seguridad - Avanzadas podremos ver un abanico de posibilidades, algunas de las cuales (Diffie-Hellman, RSA+AES) suenan como la solución definitiva. Seguro que eso le sonó estupendamente al redactor del documento "NATO en Afganistán: Narración Maestra." No se sabe quién lo escribió, aunque sí que se encontraba nada menos que en la web del Mando Central del Pentágono. Redactado en octubre de 2008, es una especie de "manual de estilo" para tratar con la prensa acerca de las operaciones militares en Afganistán. Entre otros puntos que NO hay que decir, el documento indica que Jordania mantiene una presencia secreta en ese país; aunque es miembro de la coalición internacional, ha solicitado que no se la nombre. En general, el documento no tiene gran valor militar, de modo que no debemos culpar a Wikileaks de ayudar a Al-Qaeda; pero resultaría interesante que el ciudadano medio tuviese acceso a cierta información. Por ejemplo, ¿sabían ustedes que el transporte aéreo de material militar en Afganistán está "externalizado"? Es decir, cualquier día puede caer otro Yak-42 (o similar) con personal español a bordo, y a ver cómo nos lo explican. Para que ese tipo de información no llegue a oídos de quien no debe (los propios periodistas, para empezar), el documento estaba encriptado. Sin embargo, la web Wikileaks, especializada en revelar lo oculto, publicó el documento descifrado. ¿Cómo lo consiguió? Muy probablemente, intentando un desciframiento mediante ataque de diccionario. Es decir, es toma un archivo-diccionario y se van probando todo tipo de contraseñas hasta dar con la correcta. En el caso que nos ocupa, dicha contraseña era "progress" (progreso). Wikileaks ha encontrado otros tres documentos cifrados con la misma contraseña. Los cuatro documentos son accesibles (https://secure.wikileaks.org/wiki/N1) gracias a que alguien escogió una contraseña débil. Pasemos a Skype, el popular programa de telefonía IP. Ya hablamos de su criptografía hace un par de meses ("La seguridad de Skype", Boletín ENIGMA 66). Hace poco, se reveló un ataque contra ciertos servicios de Skype. Se trata de engañar al usuario para que haga clic en un enlace malicioso. Si lo hace menos de media hora después de conectarse a una sesión de Skype, el atacante puede obtener suficiente información para acceder al buzón de voz o bien para hacer llamadas a través de la cuenta de Skype del atacado. En este caso, usar AES o RSA sirve de bien poco, ya que la seguridad se rompe por el eslabón más débil. Más detalles en http://www.securitybydefault.com (entrada 16 Abril 2009). ¿Más ejemplos? Bueno, ahí va otro. Los fabricantes de consolas han hecho todo lo posible para evitar que los usuarios puedan operar con ellas de forma no estándar. Los discos de la Wii, por ejemplo, no son legibles en una unidad DVD de ordenador, y tampoco podemos enganchar a una consola aparatos como discos duros alegremente. Hace poco, un hacker español afirmó haber reventado el cifrado de los discos duros que llevan las consolas PlayStation 3. No se han revelado datos, salvo la afirmación hecha por el propio hacker de que lo había conseguido, y de que la clave (según su afirmación) es un tipo de xor con clave de 512 bytes. Sí, yo tampoco lo pillo. Algunos lo han calificado de rumor, otros dicen que es una noticia cierta calificada de rumor para despistar a los fabricantes, y otros dicen que es un hackeo auténtico pero solamente a la capa de encriptación del disco duro. Cualquiera que sea la verdad, tardaremos en saberla. Pero sí es cierto que hay gente que no se conforma con las cosas tal y como son. Lo que sí es cierto es que la Wii se puede "piratear", entendiendo como tal una modificación que permite jugar con juegos copiados. Lo curioso es que, por lo que tengo entendido, es legal en España. Curiosamente, la Wii está protegida con todo tipo de algoritmos criptográficos: AES, RSA, curvas elípticas ... pero volvemos a lo de siempre: no sirven de nada si se puede atacar un eslabón más débil. El mes que viene hablaremos de ello. Si es que los de Nintendo no me fulminan antes, claro. Pero antes de cerrar este cajón de sastre, un último caso, que aunque sucedió en 2006 solamente se ha hecho público ahora. Según parece, una agente británica del SOCA (Serious Organized Crime Agency, una especie de FBI británico) puso en peligro todas las operaciones antidroga en Sudamérica. Dicha agente, que debía hacer de enlace en Bogotá con agencias tales como el MI5, MI6 y la DEA norteamericana, descargó información altamente sensible (entre la que se incluían nombres de agentes e informantes, información sobre el tráfico de cocaína, detalles de operaciones en curso), lo guardó en un lápiz de memoria, metió éste en un bolso ... y tontamente se olvidó el bolso en el autobús. Este error, que no lo superan Anacleto y el Superagente 86 juntos, ha costado, según algunas estimaciones, más de 100 millones de libras al erario británico, ya que ha habido que abortar misiones, poner a agentes fuera de peligro, borrar huellas, etc. Sorprendentemente, la agente (apodada "Agente T") ni siquiera ha sido despedida. De las pérdidas humanas mejor ni hablar. Claro que lo mismo han tenido suerte y el lápiz de memoria ha acabado en la basura, o reutilizado y su información borrada. ¿Pero tan difícil les resulta a los profesionales usar algo de cifrado? Y esos son los herederos de 007 y de Bletchley Park. Q debe estar revolviéndose en su tumba. <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> CRIPTOGRAFÍA HISTÓRICA <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> =----------------------------------------------------------------------= El funcionamiento de la bomba polaca =----------------------------------------------------------------------= En boletines pasados (18, 24, 28) explicamos los principales procedimientos que los polacos desarrollaron y utilizaron en los años 30 para penetrar en los mensaje cifrados mediante máquina Enigma. Con diversas variantes, se dedicaron a establecer relaciones matemáticas entre los indicadores de clave. Una de sus armas más eficaces fue un invento denominado bomba. Veamos aquí su funcionamiento. Antes, unas cuantas nociones previas. Para poder cifrar, o descifrar, un mensaje determinado, la Enigma tenía que ser configurada. Esta configuración (llamada "stellung" en alemán, o "settings" en inglés, constaba de varios elementos. En primer lugar, había que escoger qué rotores iban a utilizarse, y en qué orden. A continuación, debemos recordar que un rotor Enigma constaba de un núcleo donde iba el cableado, y alrededor de él un anillo que contenía las letras. Dicho anillo podía ajustarse, es decir, podía girar respecto al núcleo. La posición del anillo respecto al núcleo se denominaba "configuración de anillo" (ringstellung). En tercer lugar, el operador tenía que insertar los rotores en la máquina. Dichos rotores mostraban una letra en una ventanilla. En la imagen http://cripto.es/museo/enigma-esp/enesp04.jpg, por ejemplo, puede verse cómo la disposición de los rotores venía dada por la configuración XJDQ (X corresponde al reflector, que en algunos modelos comerciales también era ajustable). A esto se le denominaba "configuración básica" (grundstellung). Finalmente, un tablero de conexiones permitía conectar algunas letras, de forma que sus señales podían intercambiarse. Dicho tablero, existente únicamente en las versiones militares, aumentaba el número de configuraciones posibles hasta niveles astronómicos. Uno de los éxitos del grupo de polacos fue desarrollar métodos para poder averiguar los tres primeros elementos (orden de rotores, anillo y orientación) al margen de cómo estuviese conectado el tablero. La idea crucial consistió en aprovechar la forma en que los alemanes intercambiaban sus claves. Para entenderlo, recordemos que los sistemas de clave simétrica tienen el eterno problema de cómo intercambiar la clave. En equipos como la Enigma, podía simplemente enviarse a todas las unidades un manual con las claves que debían utilizarse cada día. Sin embargo, eso conlleva una enorme debilidad. En efecto, de hacerse así todos los mensajes enviados por todas las Enigmas usarían la misma clave, lo que da al criptoanalista una cantidad enorme de material con el que trabajar. El problema puede aliviarse utilizando más de una clave a lo largo del día, así como creando sub-redes para zonas o propósitos específicos. Estos métodos se usaron, de hecho, durante la Segunda Guerra Mundial. Pero incluso en ese caso, el problema no se alivia. Para que el sistema fuese seguro, tendríamos que utilizar tantas claves diferentes que cada operador de radio tendría que usar un libro de claves del tamaño de la enciclopedia Espasa ... !y rezar para que el enemigo no se haga con una copia! No, hay que inventar algo mejor. La solución que utilizaron los alemanes es proporcionar a todas sus unidades una clave diaria, y dejar que los operadores se inventen sus propias "claves de sesión", diferentes para cada mensaje. El procedimiento es el siguiente. Digamos que nuestro operador, al que llamaremos Fritz, ha de enviar un mensaje al Estado Mayor. Toma el manual, y allí aparecen la "clave maestra" del día, es decir, la orientación del anillo, la disposición de los rotores y el cableado del tablero de conexiones. Todas las unidades de su red comparten esos datos. Bien, ahora imaginemos que la máquina ya está configurada, y que las letras SET son las que aparecen en la ventanilla de la Enigma. Ahora, Fritz piensa en una "clave de sesión", escogida al azar. Fritz piensa en su novia, Uli, y decide usar su nombre como clave. El problema es cómo enviar esa información al destinatario sin que la capte el enemigo. La solución es fácil: Fritz se limita a teclear las letras ULI en su Enigma. Digamos que la solución es SFX. Bien, pues a continuación Fritz ajusta los rotores en la posición ULI y a continuación cifra el mensaje, y lo envía todo. En el otro extremo de la línea, su interlocutor (llamémosle Hans) ajusta la máquina de igual forma. Escribe las tres primeras letras del texto cifrado (SFX) y obtiene ULI. Ajusta los rotores a la posición ULI, introduce el mensaje cifrado y recupera el texto llano. Fíjense cómo el esquema se repite en muchos sistemas de cifrado: se usa una clave "maestra" para todo el mundo, y una segunda clave "de sesión" para cada mensaje particular. Si el procedimiento fuese ese, y sólo ese, la máquina Enigma habría resultado invulnerable para los investigadores polacos. Sin embargo, los alemanes introdujeron una modificación fatal. Conscientes de que una sola letra puede recibirse mal por mil y un problemas (mala transmisión, error humano, interferencias meteorológicas), y ansiosos de evitar los típicos problemas de "clave mal recibida, repita", decidieron cifrar la clave de sesión una vez, lo hicieron por partida doble. Es decir, Fritz, en lugar de cifrar ULI para obtener SFX, lo que hace al comienzo es cifrar ULIULI. Así se obtiene, digamos, SFXUQP. Cuando Hans lo reciba, tecleará SFXUQP y, si todo va bien, obtendrá ULIULI. Puede que un error de transmisión le haga recibir SFXUOP, en cuyo caso puede que obtenga ULIULS, pero incluso así tendrá sólo dos claves de sesión por probar. Es decir, la clave de sesión se cifra dos veces para evitar errores. Esta modificación, que parece razonable para poder usar una cifradora en un ambiente real, resulta que introdujo un error fatal, porque Rejewski comenzó enseguida a diseñar métodos de recuperar información a partir de ahí. La idea es la siguiente. El atacante ignora cuál es la disposición de los rotores. Lo que sí sabe es que, si introduce un conjunto de tres letras, aparece SFX; y si lo vuelve a introducir, aparece UQP. O dicho de otro modo: en una configuración dada de la máquina, una letra se cifra como S, y tres pulsaciones más tarde la misma letra se cifra como U. También sucede algo similar con las letras segunda y quinta (F,Q), y con la tercera y sexta (X, P). A partir de ahí, los polacos consiguieron desarrollar un método de permutaciones para obtener la orientación de los rotores, lo que antes denominamos configuración básica. El número de configuraciones básicas era grande: 26*26*26, multiplicado por el número de posibles ordenaciones de los rotores. Para tres rotores, hay seis formas de colocarlos, así que el número total sería 6*26*26*26, más de cien mil. Para automatizar la tarea, los polacos diseñaron un instrumento mecánico llamado ciclómetro, así como diversas hojas que les ayudaban en la tarea. También quedaba por averiguar la configuración de anillo y el cableado del tablero de conexiones, pero había formas de hacerlo (ver Boletín ENIGMA 28 para más información). Como verán, todavía no hemos hablado para nada de la bomba. Quería antes refrescarle al lector la memoria. Vamos a ello. Mientras se mantuvo el sistema de indicadores descrito antes, todo fue bien para los polacos. Los alemanes introdujeron modificaciones en su sistema de claves, pero los polacos consiguieron ponerse a la altura rápidamente. De repente, llegó la crisis de los Sudetes en Checoslovaquia, y todo cambió. El 25 de Septiembre de 1938, dos semanas antes de la conferencia de Munich, los alemanes decidieron cambiar el modo en que se gestionaban las claves. En lugar de comenzar con las mismas posiciones de los rotores, ahora cada operador las escoge a su antojo. Es decir, antes Fritz ponía su máquina en la posición SET, tecleaba ULIULI y obtenía SFXUQP; luego ponía su máquina en la posición SFX y escribía el mensaje. Ahora lo que hace Fritz es echar mano del manual de claves, que sigue indicándole el cableado del tablero de conexiones y la configuración de anillo, pero NO le dice cómo orientar los rotores para empezar. Eso queda para Fritz. Éste escoge su propio indicador, digamos FRI. Pone su máquina con los rotores mostrando FRI, y escribe dos veces su "clave de sesión" ULIULI. Luego ajusta su máquina a ULI y escribe el mensaje. Lo que transmite es la clave que él ha escogido (FRI), seguido por el mensaje cifrado. Quizá al lector le extrañe lo que acabo de indicar: ¿cómo es posible que enviemos FRI en texto llano? ¿Acaso no puede el enemigo leer las tres primeras letras y poner su propia máquina en la posición FRI para descifrarlo todo? No, no puede. Es decir, sí puede poner los rotores en FRI, pero ¿cuál es la configuración de anillo? El "truco" consiste en que el enemigo no sabe cuál es la orientación del anillo respecto del núcleo, es decir, sabe cómo está colocado el exterior del rotor pero no el interior. En apariencia, no parece haber merma en la seguridad. Más al contrario, ahora los mensajes no tienen una configuración básica común. Y ese es el detalle. Antes, las seis primera letras de TODOS los mensajes de un período determinado estaban cifrados con la misma configuración, la que antes llamamos SET. Fritz puso su máquina en SET, tecleó ULIULI y obtuvo SFXUQP. Hans teclea YYUYYU y obtiene SLQKJS; Volker teclea AQWAQW y obtiene LLKMHO. Pero todos ellos han comenzado poniendo su máquina en la posición de rotor SET, lo que significa que todas esas ristras de seis letras están relacionadas. El método Rejewski usaba esas relaciones para dar en el blanco (ver Boletín ENIGMA 24 para más información). De repente, esa relación desaparece. Como cada operador comienza ajustando la máquina con la configuración básica que a cada cual le da la gana, ya no hay relación matemática entre ellos. De repente, los métodos desarrollados por los polacos resultan inútiles. Solamente pudieron seguir leyendo los mensajes emitidos por una red de radio del Sicherheitdienst (SD), el servicio de seguridad del partido nazi, quienes por motivos que desconozco continuó utilizando el sistema de indicadores antiguo. Todas las demás redes alemanas, civiles y militares, quedaron cerradas a cal y canto. Pero incluso en ese caso, los polacos encontraron una forma de burlar el sistema. La solución alemana a los problemas derivados de errores de transmisión volvió a ser su gran debilidad. Los alemanes seguían cifrando su clave de sesión dos veces; y de nuevo resultó ser el camino hacia su perdición. El método criptoanalítico fue descrito brevemente en el Boletín ENIGMA 28, pero vamos a intentar explicarlo aquí con algo más de detalle. Dos son los elementos que permiten el ataque. El primero, el ya comentado de cifrar dos veces la misma ristra de tres letras. El segundo se basa en que, aunque no conocemos la posición absoluta de los rotores (ya que la "ringstellung", es decir, la relación entre el núcleo y el anillo de rotor era desconocida), sí se sabían las posiciones relativas. Es decir, cuando Fritz comienza su mensaje con SET, no sé cómo van orientados los núcleos de los rotores, pero sí sé que el compañero que comience su mensaje con SEU tiene los rotores igual que Fritz, salvo que el rotor derecho está avanzado una posición respecto al de Fritz. La idea de partida es la siguiente. Recordemos que Fritz tomó SET, cifró ULIULI y obtuvo SFXUQP. Yo, el criptoanalista, he captado el mensaje, cuyo encabezamiento comienza con SETSFXUQP. Yo sé que hay una disposición de anillo para los tres rotores tales que, cuando yo pongo dicho rotor en la posición SET y tecleo dos veces la misma secuencia de letras, obtengo SFXUQP. No parece que eso me de mucha información. Pero fijémonos en las letras primera y cuarta de SFXUQP. No sé cuál es la "ringstellung" de Fritz, vale. Pero sí sé que, cuando teclea una letra, aparece S. Posteriormente, cuando el rotor derecho ha avanzado tres posiciones, teclear la misma letra me da U. Tampoco eso me sirve de gran cosa. Sin embargo, fijémonos en casos especiales. Hay veces en los que la primera y cuarta letras no son distintas (como en el caso de S y U), sino iguales. Supongamos ahora, como ejemplo, que Fritz utiliza como su posición de partida de los rotores (es decir, la que aparece en las ventanitas de la máquina) la RTJ. Nuevamente usa la misma posición de anillo reglamentaria para todos los operadores. Ahora resulta que, al poner los rotores en la posición RTJ, teclea su clave de sesión (ABC) y obtenemos algo así como WAH WIK. La primera W proviene de introducir la primera letra de su clave de sesión al principio, cuando los rotores estaban en la posición RTJ. Cuando toque introducir A por segunda vez, los rotores estarán ahora en la posición RTM, y de nuevo volveremos a obtener una W. Posición rotores Pulsación Resultado RTJ A W RTK B A RTL C H RTM A W RTN B I RTO C K Cuando esto sucede, los polacos lo denominaron "hembra," término que en el Boletín ENIGMA 28 prometí aclarar pero que nunca hice. Se trata de un juego de palabras. Los criptoanalista, además de instrumentos electromecánicos, utilizaban hojas Zigalski (hojas perforadas usadas como ayuda para la obtención de las claves Enigma, y de las que no hablaremos aquí), que había que usar una sobre otra de tal forma que algunas perforaciones coincidiesen, es decir, estuviesen en los mismos lugares. Parece que en polaco, la expresión "los mismos" se dice "te same", que recuerda fonéticamente a la palabra "samiczki" (hembras). Es decir, en polaco la palabra "hembras" recuerda fonéticamente a una alineación de aperturas. Al menos, esta es la versión que presenta Wladislaw Kozaczuk en su libro "Enigma." Llevar más lejos la analogía para relacionar a las mujeres con aperturas de agujeros circulares alineadas es una tentación en la que mejor es no caer. En cualquier caso, no parece haber otra explicación oficial u oficiosa del término, y es curioso comprobar que los anglosajones se limitaron a copiarlo, aunque imagino que sin conocer su posible origen. Chismes aparte, sigamos adelante. Hemos supuesto que ni el rotor central ni el izquierdo giran durante el proceso, de forma que tras RTL tenemos los rotores en RTM en lugar de en RUM. La suposición no es mala, ya que el rotor central sólo girará una vez de cada 26 pulsaciones. Si a pesar de eso, resulta que gira, pues mala suerte. Pero crucemos los dedos, y sigamos adelante. La tabla anterior contiene muchos puntos desconocidos para el criptoanalista. Seguimos sin saber la posición de anillo, y por supuesto no sabemos que la clave de sesión es ABC. Pero sí sabemos que pulsar una tecla determinada con los rotores en una posición dada (RTJ) da el mismo resultado que hacerlo con los rotores tres posiciones más adelantadas (RTM). El razonamiento de Rejewski es, por tanto de una sencillez aplastante, al menos en concepto. Simplemente, tomemos una Enigma con los rotores en la posición de anillo ZZZ, y pongamos los rotores en la posición AAA, tecleamos la letra que nos dé una W cifrada; luego ponemos los rotores en la posición AAD, tecleamos la misma letra y observamos si nos da de nuevo una W. Luego hacemos lo mismo con la posición inicial AAB, luego con la AAC, y así hasta agotar las 26*26*26 posibles posiciones iniciales del rotor, y las seis posibles formas de ordenar dichos rotores. De momento, supongamos que sabemos cuál es dicha ordenación, y luego resolveremos ese último detalle. En un mundo ideal, habría una y sólo una posición de los rotores donde obtuviésemos W dos veces. Digamos que dicha posición es KAZ. Como KAZ se corresponde con la disposición de anillo ZZZ, hallar la disposición de anillo correspondiente con la posición RTJ es un juego de niños. Y como la disposición de anillo es la misma para todos los operadores, ya hemos descubierto la "clave maestra" que nos permitirá reventar todos los mensajes del día. Para verlo más gráficamente, supongamos que ponemos una Enigma con los rotores en la posición p,q,r. Representemos la máquina con el corchete [p,q,r], de tal forma que el proceso de cifrar se pueda representar como: A ---> [p,q,r] ---> W La Enigma es una máquina recíproca, de modo que si tecleamos A y obtenemos W, también resulta que al teclear W obtendríamos A. W ---> [p,q,r] ---> A Esto es importante, porque el criptoanalista no conoce que la tecla A es A. Como es desconocida para él, la llamará a1 (debería llamarla "alfa sub 1", pero estoy escribiendo en texto sencillo así que imaginaos una alfa sub 1 cuando yo escriba a1). Tenemos así: W ---> [p,q,r] ---> a1 La situación es la misma si tenemos el rotor derecho de la Enigma desplazado tres posiciones (ya que hemos cifrado tres letras), de modo que también tendríamos: W ---> [p,q,r+3] ---> a1 Con lo cual, hay que encontrar las posiciones (p,q,r) que cumplan simultáneamente las dos condiciones, a saber: W ---> [p,q,r] ---> a1 W ---> [p,q,r+3] ---> a1 donde a1 es una letra desconocida, pero es la misma para ambos casos. Pero hay dos pegas. La primera es que tenemos que probar esas 26*26*26 posibles posiciones iniciales del rotor, y eso es mucho. En segundo lugar, hemos dicho "en un mundo ideal". En el mundo real, habrá muchas posiciones de rotores que nos den el resultado descrito antes. Para paliar este segundo problema, lo que hizo el grupo de Rejewski es ir más allá. Hasta ahora sólo nos hemos fijado en la primera y cuarta letras del indicador cifrado (las W de WAKWIK). ¿Pero qué pasa con la segunda y la quinta; o la tercera y la sexta? ¿No pueden usarse de forma parecida? La respuesta es sí, se puede. Pero no en el mismo mensaje. Encontrar un caso en el que, al cifrar dos veces una cadena de tres letras, obtuviésemos algo del tipo WZPWZP sería estadísticamente improbable. Pero sí podemos tomar distintos mensajes y buscar hembras con la misma letra pero en distintas posiciones. Por ejemplo, vemos que el operador Volker envió un mensaje con los rotores en la posición DQW, y obtuvo DWJ MWR. Una hora más tarde, Herman escogió la posición HPN para sus rotores y obtuvo RAW KTW: Mensaje 1 RTJ WAH WIK Hembra 1-4 Mensaje 2 SQJ DWJ MWR Hembra 2-5 Mensaje 3 HPN RAW KTW Hembra 3-6 Seguimos teniendo que probar todas las posibles posiciones de los rotores, pero ahora disponemos de más asideros. Vamos a usar el truco de las hembras tres veces. Primero, probemos con todas las posibles orientaciones de los rotores para el primer caso. Llamemos a dichas orientaciones [p1, q1, r1]. Esto nos daría lo siguiente: W ---> [p1,q1,r1] ---> a1 W ---> [p1,q1,r1 +3] ---> a2 Si a1 no es igual a a2, [p1,q1,r1] no es la posición correcta de los rotores, así que probaremos otra. Pero si a1=a2, entonces pasaremos a la siguiente fase. Tomamos el mensaje 2, y volvemos a probar. Y aquí viene un punto crucial. Si los mensajes 1 y 2 fuesen independientes, tendríamos que probar todas y cada una de las posibles orientaciones del rotor para el caso 2, a las que llamaremos [p2,q2,r2]. Es decir, tendríamos que ir haciendo pruebas del tipo: W ---> [p2,q2,r2] ---> b1 W ---> [p2,q2,r2 +3] ---> b2 De nuevo, si b1 es distinto a b2, pasamos a la siguiente posibilidad. En caso contrario, probamos con el mensaje 3, lo que nos daría pruebas del tipo W ---> [p3,q3,r3] ---> b1 W ---> [p3,q3,r3 +3] ---> b2 Es decir, habría que probar las 26*26*26=17.576 posibles combinaciones [p1,q1,r1] Y ADEMÁS las 17.576 posibles combinaciones [p2,q2,r2] Y ADEMÁS las 17.576 posibles combinaciones [p3,q3,r3]. !Eso nos daría un total de cinco billones de posibilidades! Sin embargo, no tenemos que probar tantas, porque las posiciones de los tres rotores son relativas entre sí, lo que reduce el número de incógnitas. Para entenderlo, vean las posiciones iniciales de los rotores para los mensajes 1 y 2: RTJ y SQJ, respectivamente. Fíjense que el tercer rotor en ambos casos está en la misma posición. Esto significa que r1=r3. Asimismo, la primera posición de ambos rotores (R, S) están separadas por una sola unidad, es decir, r1+1=r2; finalmente, las posiciones entre los rotores centrales (T,Q) también están relacionados, en este caso, r1=r2-3. Esto significa que todas esas incógnitas son dependientes la una de la otra: [p2, q2, r2] y [p3, q3, r3] con conocidas si sabemos [p1, q1, r1] y conocemos las diferencias relativas entre las posiciones de los rotores de los tres mensajes. Este último dato lo conocemos porque los alemanes son tan amables como para transmitir en claro la posición de sus rotores. Así que solamente hemos de probar las 17.576 combinaciones [p1, q1, r1]. Nace así la máquina polaca llamada Bomba. En esencia, su elemento básico está formado por tres grupos de rotores que representan tres máquinas Enigma. El primer grupo de rotores probará todas las combinaciones [p1, q1, r1] posibles; el segundo, con una orientación relativa conocida, irá probando simultáneamente las combinaciones [p2, q2, r2]; y la tercera, claro, probará las combinaciones [p3, q3, r3]. En forma algorítmica, el esquema sería algo así: Para toda combinación [p1, q1, r1] - Fijar combinaciones [p2, q2, r2] - Cifrar con la siguiente secuencia: W ---> [p1,q1,r1] ---> a1 W ---> [p1,q1,r1 +3] ---> a2 W ---> [p2,q2,r2] ---> b1 W ---> [p2,q2,r2 +3] ---> b2 W ---> [p3,q3,r3] ---> c1 W ---> [p3,q3,r4 +3] ---> c2 - Si a1=a2 Y b1=b2 Y c1=c2, parar la máquina y llamar a los humanos para darle la combinación correcta [p1, q1, r2]. A partir de ahí, ellos siguen la tarea - En caso contrario, continuar con otro valor de [p1, q1, r1] Un par de detalles más. En primer lugar, hemos supuesto que conocemos cómo están colocados los rotores. Pero no sabemos esa información. En principio, con tres rotores habría 6 posibles formas de ordenarlos, como hemos dicho antes. Eso significa que hemos de probar lo anterior para esas seis ordenaciones posibles. La solución es obvia: construir seis bombas. En segundo lugar, hemos supuesto que ni el rotor central ni el izquierdo se movían, solamente el central. Si hubiese sido ese el caso (lo que los ingleses llamaban un "turn-over", no serviría lo que hemos hecho. Sin embargo, los alemanes se lo pusieron en bandeja a los polacos. Resulta que el giro de cada rotor se efectúa mediante una muesca ubicada en el anillo exterior. Puede el lector ver dicha muesca en http://www.cripto.es/museo/enigma-esp/enesp07.jpg. La información sobre dónde está dicha muesca es conocida, de forma que los criptoanalistas podían escoger hembras donde sabían de antemano que no se iba producir un turn-over o no. Por ese lado, todo controlado. Luego tenemos el problema del tablero de conexión (stecker). Este era un añadido que cambiaba unas letras por otras al final del proceso de cifrado, y no podía ser reproducido por la Bomba. Los polacos contaban con que las letras que formaban las hembras no estaban alteradas por el tablero. De hecho, el proceso descrito hasta ahora no requería necesariamente tomar la misma letra para las tres hembras. Podíamos haber tomado hembras con letras distintas, como por ejemplo: (WAH WIK), (ALE QLZ) y (MUS LKS). El motivo de tomar la misma letra para las tres hembras era precisamente para minimizar la posibilidad de encontrarnos con una alteración en el tablero. Los polacos usaron dos tácticas para evitar el problema. En primer lugar, cruzar los dedos, es decir, suponer que la W no es una de las letras alteradas en el tablero, y ver qué pasa. La segunda es darse cuenta de que las alteraciones del tablero son iguales para todos los operadores. Si las instrucciones dicen que hay que alterar la W en el tablero, el criptoanalista no sabrá cuál es la letra en la que se convierte, pero sí que es la misma en todos los mensajes enviados por cualquier operador. De hecho, se llegó a convertir en un "bonus". Recordemos los indicadores del ejemplo: Mensaje 1 RTJ WAH WIK Hembra 1-4 Mensaje 2 SQJ DWJ MWR Hembra 2-5 Mensaje 3 HPN RAW KTW Hembra 3-6 Como ven, en el primer mensaje la primera letra escogida por Fritz (R) es responsable de la hembra 1-4; en el mensaje 2, es la Q, y en el mensaje 3, es la N. Bien, pues resulta que la bomba permitía averiguar si el tablero de conexiones alteraba las letras R,Q,N, y en caso afirmativo, en cuáles. Con tan imaginativos métodos, la Bomba polaca permitió al equipo Rejewski obtener la disposición de la Enigma alemana (rotores, anillo, prácticamente todo), y al gobierno polaco estar informado sobre las intenciones alemanas. Toda una hazaña, y más si consideramos que el cambio en el sistema de indicadores Enigma fue introducido por las autoridades alemanas el 15 de Septiembre de 1938, y las seis bombas estaban ya listas y funcionando en Noviembre. Eran capaces de obtener la clave maestra en una dos horas, y a partir de ahí descifrar los mensajes era juego de niños. Sin embargo, la potencia alemana acabó imponiéndose. El 15 de Diciembre, introdujeron dos nuevos rotores. De repente, el número de posibles combinaciones de tres rotores paso de seis a sesenta. Eso significaba multiplicar por diez el número de bombas ya existentes, además de representar la preparación de una cantidad gigantesca de hojas Zigalsky. .Si los polacos tenían suerte, y ese día los alemanes usaban los rotores antiguos, todavía podían trabajar, pero eso sólo sucedería en promedio un día de cada diez. Fabricar nuevas bombas era en principio factible, pero inviable en la práctica. El coste estimado hubiese sido de unos 350.000 dólares USA, una suma enorme en aquella época. El esfuerzo de interceptación hacía falta asimismo construir estaciones receptoras y líneas de comunicación seguras para re-transmitir los mensajes recibidos. Demasiado para una nación cuyo tiempo se estaba acabando. En 1939 se intensificaron los contactos anglo-franco-polacos, que culminaron en Julio con la famosa reunión de Pyry, donde los polacos, conscientes sin duda de lo que se les venía encima, compartieron con sus aliados sus más íntimos secretos criptográficos. Poco tiempo después, Polonia fue invadida. Sus criptógrafos lograron a duras penas refugiarse en Rumanía, para después pasar a Francia e Inglaterra. En cuanto a las bombas, fueron destruídas para evitar que el secreto pasase a manos alemanas. Era ahora el turno de los aliados. =----------------------------------------------------------------------= Enigma A: la conexión argentina =----------------------------------------------------------------------= [Recordará el lector del Boletín ENIGMA cómo, en el número 67, dimos noticia del descubrimiento de diversos ejemplares de máquinas Enigma en el Cuartel General del Ejército Español. Estas Enigmas, reliquias de la Guerra Civil, no son las únicas que "salen del armario" (o, más bien, del altillo. Gabriel, Uno de nuestros lectores argentinos, nos comunica el descubrimiento de una Enigma modelo A, la primera jamás comercializada. El próximo mes incluiremos algunas fotografías de este raro y espectacular modelo. Mientras tanto, he aquí una historia sobre las máquinas cifradoras y su relación con el ejército argentino. Cedo la palabra a Gabriel] La hoy histórica y célebre máquina “Enigma” fue creada en el año 1923 por el ingeniero alemán Arthur Scherbius, luego de analizar las enseñanzas y los requerimientos dejados pendientes por la I. Guerra Mundial. Como en ese tiempo el mundo vivía un período de posguerra, el invento de Scherbius no pasó de ser una mera curiosidad comercial que una firma berlinesa ofrecía al modesto precio de 144 dólares la unidad. De esa manera los siempre atentos (?) ojos de los agentes secretos del SIS, al parecer, nunca se detuvieron en esos avisos publicitarios; nunca sospecharon nada, y nunca propusieron nada al respecto. Y uno no puede dejar de pensar ¿pudo haber sucedido eso? Pero en otras partes había otros ojos, tal vez no tan famosos como los del SIS, pero si más sagaces y efectivos. Unos fueron los ojos de los especialistas polacos, que dieron origen a toda la leyenda sobre la apropiación en 1929 de una máquina “Enigma”, de su estudio y reproducción de sus mecanismos en Varsovia, y del periplo de esos secretos, primero a Francia y luego a Gran Bretaña, donde con la ayuda de técnicos u científicos como Alan Mathison Turing, se creo el gran mito de la reconstrucción y descriptamiento de la máquina “Enigma”. Otros ojos, también profesionales y atentos, aunque no tan famosos y promocionados como los europeos, estaban aquí, en Buenos Aires, sin ninguna tradición pero, por la que veremos, de mayor altura y eficacia que los de los británicos y polacos. LOS OJOS ARGENTINOS En efecto, como durante los años de la I. Guerra Mundial resultaba virtualmente imposible adquirir y renovar los obsoletos materiales y equipos de nuestro Ejército, debido a que toda la producción de las principales fábricas europeas era absorbida por las necesidades de la conflagración, y sus gobiernos habían terminantemente prohibido las exportaciones de tales elementos a otros países no involucrados en el conflicto, el 30 de marzo de 1921 el Poder Ejecutivo Nacional, ejercido entonces por el Dr. Hipólito Yrigoyen, otorgó las autorizaciones del caso para recuperar el tiempo perdido y poco después dispuso la formación de una Comisión Técnica Permanente de Armamentos, a la que se subordinó una Comisión de Adquisiciones en el Extranjero, la cual partió para Europa a principios del año 1924, estando ya en el gobierno el Dr. Marcelo T. De Alvear, siendo su ministro de Guerra el coronel (luego general) Agustín P, Justo, con la misión de seleccionar y enviar al país pequeñas partidas de elementos y materiales para ser ensayados. La Comisión comenzó, entonces, a desarrollar una intensa labor, con los ojos bien abiertos y profesionales. Figuraba en esa Comisión un inquieto y competente oficial del arma de ingenieros, el recientemente ascendido capitán Adolfo Carlos Camilo Udry, de ascendencia suiza, que pronto se había especializado en los progresos de las radiocomunicaciones y que ostentaba desde el 24 de marzo de 1917 el brevet N° 112 de piloto argentino. Ese mismo año de 1917 llevó a cabo el primer reglaje del tiro de artillería en tiempo real, desde el avión que manejaba, mediante enlace radiotelegráfico. Al año siguiente (1918), al revistar en la Inspección de Radiotelegrafía editó el Manual del Radiotelegrafista Militar, 1ra. Parte, y luego creó y organizó el Laboratorio Radioeléctrico del Ejército, que inicialmente se llamó “Sección Experiencias”. Por sus investigaciones obtuvo la Patente de Invención N° 21315, por los transformadores de baja frecuencia que fueron construidos personalmente por el mismo Udry, para ser instalados en la primera serie de radiorreceptores con amplificador (llamados “Modelo E.A. 23”) para ondas continuas que se construyeron en aquellos talleres. El caso fue que el entonces capitán Udry tomó contacto en Europa con el Dr. Scherbius y, atraído por las posibilidades de encriptamiento de textos que ofrecían sus productos, se interesó por las máquinas “Enigma”, adquiriendo los dos primeros ejemplares del modelo 126, los cuales llegaron al país en “ENIGMA” EN ARGENTINA Con esas máquinas los técnicos argentinos hicieron los primeros ensayos de cifrado y descifrado. Como consecuencia de los buenos resultados obtenidos, se dispuso la adquisición de otras unidades, a las cuales se les introdujeron notables modificaciones que resultaron originando el modelo reconocido como “Modelo Argentino 126 A”. Las originales “Enigma” eran portátiles (pesaban unos 12 kilos), eran contenidas en cajas de madera, con tapa, cierre y asa de cuero para su transporte, siendo sus dimensiones exteriores 30 centímetros de frente, por 25 de fondo y 15 de alto. Su funcionamiento era eléctrico a base de una corriente continua de 110 V., pero también podía conectarse a una corriente alterna empleándose en este caso un transformador-reductor de 220/110 V., y una válvula rectificadora a vapor de mercurio que suministraba la intensidad de 1 A., para el trabajo. Modelos posteriores permitían el empleo de baterías o tomar la corriente de los vehículos sobre los cuales podían ser montadas las "Enigmas". Los textos se escribían mediante un teclado de 26 teclas dispuestas en 3 hileras, en forma semejante a los teclados de las máquinas de escribir alemanas, y a cada tecla correspondía una bombilla eléctrica tipo linterna de 3,8 V., y 0,20 A., que al accionarse la tecla, se encendía y señalaba el nuevo valor de la letra cifrada. Esos primeros ejemplares utilizaban tres rodillos cifradores que contenían otros tantos alfabetos cifradores, integrados por las 26 letras del alfabeto telegráfico internacional, lo cual permitía trabajar con 26x26x26 combinaciones alfabéticas distintas, o sean 17576 combinaciones diferentes. De otra manera, podían combinarse y usar 17576 alfabetos incoherentes y recíprocos sucesivos antes de que se repitiera en el texto un mismo valor para una letra cifrada. Los alfabetos eran inversos y recíprocos porque, por ejemplo, si se apretaba la tecla cifradora A y se encendía la bombilla de ciframiento M, recíprocamente en el mismo alfabeto si se apretaba la tecla M, la máquina respondía encendiendo la letra A en el otro alfabeto. Asimismo, eran incoherentes porque el orden de las letras de los alfabetos no seguía el orden de los alfabetos normales: A, B, C, D, E... sino otra sucesión diferente: por ejemplo M, Z, K, L, O... El funcionamiento del “Modelo Argentino 126” de tres rodillos cifradores era muy interesante: al oprimir una tecla se producía una inversión del circuito eléctrico, a la vez que mecánicamente provocaba un veintiséis avo de vuelta en el primer rodillo de la derecha; era necesario “teclear” 26 letras para que el rodillo central avanzara 1/26 de vuelta. Las conexiones se cruzaban en los rodillos con cada movimiento. Para complicar aún más la operación de cifrado, podía cambiarse la conexión del cableado lo cual permitía alterar los caminos de los impulsos eléctricos a través del panel de conexiones, lo que permitía 456.176 combinaciones extras, asegurando así una asombrosa seguridad en la transmisión de las comunicaciones. De tal manera, sólo quien poseyera un equipamiento similar podría intentar descriptar los mensajes cifrados con una “Enigma”. Posteriormente, en 1930, se recibieron en Argentina las máquinas “Enigma modelo para Comandos Superiores”, que eran más complicadas y de manejo algo lento, ya que al cifrar era necesario dar tiempo a los electroimanes para que accionaran el complejo mecanismo de los rodillos conmutadores y funcionaran las letras de inscripción, pues imprimía el texto como las máquinas de escribir, y en vez de los tres rodillos que empleban los modelos 125 A., se empleaban ocho, lo que permitía combinar una clave basada en una palabra de ocho letras, como podía ser CALABOZO, mientras que con las anteriores, de sólo tres rodillos, la palabra clave sólo podía ser de tres letras, por ejemplo CAL. Si bien con los ocho rodillos se permitían casi 209 millones de variantes, finalmente los alemanes sucesores de Arthur Scherbius –quien había fallecido en 1929 en un tonto accidente de tránsito al ser arrollado por un caballo desbocado- se decidieron en 1942 por modificar a “Enigma” introduciéndole un rodillo cifrador más (4 en total) e insistir en la modificación del cableado, con lo que lograron un equipo muy semejante al anterior pero con la increíble capacidad de 150 billones de combinaciones cifradoras. OTRAS MÁQUINAS CIFRADORAS Los atentos ojos argentinos no se quedaron fijos en las “Enigma”. En efecto, tiempo después, entre los años 1934 y 1945, se adquirieron otros modelos más prácticos, sencillos y económicos que se accionaban preferentemente en forma manual. Cabe citar entre dichos ejemplares los desarrollados por el ingeniero alemán von Kryha, quien había perfeccionado dos sistemas: uno liviano denominado “Liliput”, que pesaba sólo 300 gramos, cuyos alfabetos y números de cifrado se deslizaban circularmente mediante el accionamiento de un botón igual a los de dar cuerda de los antiguos relojes de bolsillo, y otro más pesado (unos 5 kilos) denominado “Standard”, contenido en una caja metálica de forma semicircular, transportable en un estuche de cuero, cuya principal característica consistía en que su mecanismo interior era accionado por una poderosa cuerda de resorte semejante a las de los relojes de pared. Llevaba dos discos, uno interior fijo, en el que se tomaban las letras o números del texto a cifrar, y otro exterior giratorio, en el que se leían las letras correspondientes del texto cifrado. Asimismo, la firma Kryha proporcionó un equipo más grande y pesado, que era operado eléctricamente en forma muy parecida al sistema “Enigma”. Se proveyeron también equipos construidos por la firma A. B. Crytoteknik de Estocolmo, así como de la firma Hagelin, cuyo modelo más perfeccionado, el C.48A, fuera finalmente perfeccionado y adoptado por los norteamericanos bajo la designación M.209, que también adoptaría más tarde nuestro Ejército. De todo lo que acabamos de describir se desprende que ya en los comienzos de la década de los años 30 el Ejército Argentino contaba con equipos criptadores “Enigma”, adquiridos gracias a la sagacidad profesional y técnica del entonces capitán Adolfo Carlos Camilo Udry, sin ningún acto novelado de espionaje y sin drama ni leyenda alguna. ======================================================================== El boletín ENIGMA es una publicación gratuita del Taller de Criptografía, y se rige por las normas de la licencia de Creative Commons "Reconocimiento-NoComercial-CompartirIgual". Se permite su libre copia, distribución y comunicación para fines no lucrativos, citando nombre y referencia. Para más información, véase la licencia Creative Commons en sus formas reducida y completa: http://creativecommons.org/licenses/by-nc-sa/2.5/es/deed.es http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es PARA DARSE DE ALTA: envíe un mensaje a la dirección alta arroba cripto.es añadiendo las palabras alta_enigma en el asunto (subject). PARA DARSE DE BAJA, envíe un mensaje a la dirección baja arroba cripto.es añadiendo las palabras baja_enigma en el asunto (subject) Para comentarios a este boletín (dudas, preguntas, consultas, críticas, noticias, colaboraciones, etc.), estoy a su disposición en la dirección noticias arroba cripto.es Página del Boletín Enigma (incluyendo números atrasados): http://www.cripto.es/enigma.htm (c) Arturo Quirantes 2009. ======================================================================== -----BEGIN PGP SIGNATURE----- Version: PGP 6.5i iQA/AwUBSfib1g7Y43Xkw2u9EQK0PACdHUUFUKy2vMLf5nP0v1g6PZtKPOMAnjLr EnlITJ9Rq6SiZ2VEsUq8Qnut =DCUL -----END PGP SIGNATURE-----