La máquina Enigma

Publicado el 29 de julio de 2009 en Historias de la ciencia por omalaled
Tiempo aproximado de lectura: 8 minutos y 19 segundos
Este artículo se ha visitado: 68.398 views

En otro artículo os contaba la historia de María Estuardo, de cómo utilizó el cifrado de sustitución y cómo la cogieron porque el criptoanalista, Thomas Phelippes, conocía los métodos estadísticos necesarios para descifrar sus mensajes. Hoy daremos un paso más en lo que al cifrado de mensajes se refiere y que culminará en la máquina de codificación más temible y famosa de la Segunda Guerra Mundial: la máquina Enigma.

Primero, no obstante, he de explicaros el cifrado de Vigenère. Básicamente consiste en un cifrado de sustitución, como el citado anteriormente del artículo de María Estuardo, pero  diferente para cada letra en función de una clave. No os asustéis: vayamos por partes. Os muestro a continuación la tabla de Vigenère:

Cuadro de Vigenère

Es una tabla con los alfabetos empezando cada vez por una letra posterior. La mejor forma de ver cómo funciona es explicando un ejemplo. Seguiré el mismo de la Wikipedia.

mensaje:         P A R I S   V A U T  B I E N   U N E  M E S S E
clave:              L O U P L  O U P L  O U P L  O U P  L O U P L
criptograma:   A O L X D   J U J E   P C T Y  I H T   X S M H P

La clave es LOUP y así se va repitiendo letra tras letra. Vamos a codificar la primera P. Tomamos dicha P (del texto) de la primera fila y la L (de la clave) de la primera columna. Vemos que se cortan en la A y esa es la primera letra cifrada (está destacado en rojo en el gráfico anterior). Ahora vamos a cifrar la A. Análogamente, tomamos la A de la primera fila y la O de la primera columna: tenemos la O. Para la R, la tomamos también de la primera fila y la U de la primera columna y vemos que se cruzan en la L (destacado en azul en el gráfico anterior). Y así sucesivamente.

Si alguien intercepta el mensaje y no conoce la clave no podrá descifrarlo  a priori sin conocer la clave; aunque sepa que es una codificación de Vigenère. Los métodos estadísticos no sirven, ya que la misma letra puede ser codificada de formas diferentes. A primera vista, parece imposible de descifrar, pero los criptoanalistas son gente muy hábil. Y lo consiguieron. Resulta que si conocemos la longitud de la clave ya podemos atacar el problema. Supongamos, como en este caso, que sabemos que la longitud de la clave es 4 (LOUP). Lo único que hay que hacer es un análisis estadístico para las posiciones 1, 5, 9, …; otro para 2, 6, 10, …; otro para 3, 7, 11, …; y finalmente otro para 4, 8, 12, … ya que el cifrado se repite cada cuatro posiciones y, por tanto, cada cuatro posiciones, tenemos una sustitución simple resoluble con los métodos estadísticos.

Para averiguar la longitud podemos hacerlo a través de la búsqueda de repeticiones en el texto (requiere una explicación, y la encontraréis en el libro que cito en fuentes). Recordad que siempre estamos pensando en un texto suficientemente largo. Ya podéis intuir que el secreto de la cifra Vigenère está en el tamaño de la clave: a clave más larga, mayor dificultad.

Esta codificación es obra, obviamente, de Blaise de Vigenère y estoy hablando de allá por el año 1585.

Vamos ahora al año 1918 en el que el inventor alemán Arthur Scherbius y su íntimo amigo Richard Ritter fundaron la compañía Scherbius y Ritter, una innovadora empresa de ingeniería que englobaba todo, desde turbinas hasta almohadas eléctricas. Uno de los proyectos de Scherbius era sustituir los inadecuados sistemas de criptografía empleados en la Primera Guerra Mundial. En lugar de utilizar lápiz y papel había que sacar partido a la tecnología de la época, y con esa idea desarrolló la máquina Enigma.

Fue una obra maestra de la ingeniería. Es casi imposible explicarla por completo, pero sí se puede tener una idea de su funcionamiento. Básicamente, tenemos un teclado para escribir el texto que queremos cifrar, una unidad modificadora y un tablero expositor para mostrar el resultado de la codificación. La parte más interesante es esa unidad modificadora. En la figura siguiente vemos una de las ruedas que la componían pero con un alfabeto de seis letras para simplificar el dibujo (en minúsculas, el texto sin cifrar; en mayúsculas, el texto cifrado):

Un modificador

Para codificar el texto plano, el operador pulsa una letra y el el grueso disco de goma plagado de cables hace una función que la transforma antes de salir en el tablero. En este caso, el mensaje “café” sería codificado como “DBCE”. Si fuera sólo así, tendríamos una codificación de sustitución y ya sabemos cómo descifrarla.

La idea de Scherbius era que cada vez que se codificara una letra, esa rueda girase un sexto de vuelta (un veintiseisavo de revolución para un alfabeto completo de 26 letras). Al dar ese sexto de vuelta, la codificación de la siguiente letra será diferente y no la que tenía al principio. En nuestro caso, la primera vez que codificáramos la b obtendríamos la A, pero justo después, el modificador gira y si volvemos a codificar la b obtendremos la C; y la siguiente vez obtendremos la E (observad los cables que las unen).

Un modificador

Problema: a la que se hayan puesto 6 letras, el ciclo vuelve a empezar y volvemos a tener la posición inicial. Tenemos un cifrado de Vigenère con una clave de 6 letras (en el caso real de 26 letras): una clave demasiado pequeña.

Para resolver este problema, Scherbius puso un segundo disco modificador de modo que, cuando el primer disco daba una vuelta completa, el segundo giraba una posición. Aquí os muestro dos posiciones con dos modificadores en que el segundo modificador está en la misma posición, pero la del primero ha cambiado:

Codificación 2 modificadores 2 Codificación 2 modificadores 3

Ahora, en lugar de tener 6 posibles cambios de letra, tenemos 6*6=36 cambios. Recuerdo que el 6 era a modo simple y para simplificar; en realidad, hemos pasado a una clave de 26 a 26*26=676 posiciones. No contento con ello, Scherbius añadió un tercer modificador: cuando el segundo disco había dado una vuelta, el tercero avanzaba una posición. Así que tenemos 26*26*26=17.576 disposiciones diferentes de los modificadores, o sea, un cifrado de Vigenère con una clave de longitud 17.576.

Y fijaos en la gracia de la máquina: no sólo tenemos un buen cifrado sino que, además, la clave va en función de la posición inicial de los tres rotores; si variamos la posición inicial de los rotores el cifrado es totalmente diferente. Aunque descubriéramos la posición inicial un día, podían cambiarla al día siguiente y volveríamos a estar en el mismo problema.

Por fin, hay un añadido más que es el Reflector (ahora explico su utilidad) antes de llegar al tablero.

Modificadores y refelctor

Para codificar un mensaje, necesitábamos un operador con una máquina Enigma que lo introducía y cada vez que pulsaba una letra los discos se movían y daba el mensaje cifrado en el tablero.

Posteriormente, el mensaje cifrado ilegible para el enemigo llegaba al destino donde tenían otra máquina Enigma esperando con los rotores puestos en la misma posición de partida que la máquina que lo generó. Acto seguido, se introducía el mensaje cifrado y, gracias al reflector, reproducía el mensaje original. ¿No os parece un invento fantástico?

Lo potente de esta máquina es que, aunque el enemigo fuera capaz de tener una, no podía hacer nada sin conocer las posiciones iniciales de los modificadores. Si alguien interceptaba un mensaje y tenía una Enigma, tenía que ir probando alguna de las 17.576 posiciones iniciales de los modificadores y ver si salía algún mensaje inteligible; si no, probar una segunda y así sucesivamente. Si el descifrador pudiera probar una combinación por minuto y trabajar día y noche le llevaría dos semanas averiguar el mensaje. ¿Imposible de descifrar en un tiempo aceptable?

Aun así, Scherbius no quedó satisfecho. Podría haber añadido más modificadores, ya que cada uno de ellos aumentaba la dificultad multiplicando por 26, pero esto hubiera agrandado el tamaño de la máquina. Así que añadió dos nuevos rasgos. El primero fue que los modificadores fueran intercambiables, es decir, que podía poner, por ejemplo, el tercer rotor en primer lugar, el segundo en tercer lugar, etc. Hay seis maneras de poner tres modificadores, de manera que el número de claves aumenta. El segundo rasgo fue la introducción de un clavijero que podía intercambiar letras en grupos de 6.

Resumiendo: tenemos 26*26*26=17.576 posibles combinaciones de los tres modificadores y si añadimos las 6 formas de poder poner los modificadores y el clavijero con el que podemos intercambiar 6 pares de letras entre 26 posibles tenemos del orden de billones de claves posibles.

Ya habréis notado que la parte que más contribuye al número de claves es el clavijero. ¿Por qué no poner simplemente un clavijero? Pues porque, por sí mismo, hace de sustitución monoalfabética y mediante un análisis de frecuencia sería cazado rápidamente; pero combinando dicho clavijero con los modificadores, los análisis de frecuencia no nos sirven.

Scherbius obtuvo una patente en 1918. Los alemanes concluyeron que era la mejor solución para sus comunicaciones. A partir de 1925 y durante las dos décadas siguientes, el ejército alemán compró más de 30.000 máquinas Enigma, lo que les proporcionó el sistema de cifrado más seguro del mundo. Al estallar la Segunda Guerra Mundial sus comunicaciones estaban protegidas por un nivel de codificación sin precedentes.

Una Enigma en acción

El talón de Aquiles era que acabaran descubriendo la clave, así que los alemanes optaron por cambiarla cada día. Los aliados, por tanto, tenían un día para averiguarla. Al empezar el día siguiente, vuelta a empezar de cero. Por supuesto, las claves de cada día tenían que ser conocidas tanto por emisor como por receptor. Para ello, tenían un libro de códigos que decía las diferentes posiciones iniciales de los modificadores así como los cambios de pares de letras del clavijero.

Y por si todo ello no fuera suficiente, tomaron la precaución de transmitir una nueva clave para cada mensaje. O sea, aprovechando la clave del día se transmitían una nueva clave. Imaginemos, por ejemplo, que la clave del día de los modificadores era QCW. Pues utilizando esa posición se transmitían PGHPGH (lo hacían dos veces para asegurarse que se recibía correctamente la nueva clave) y el receptor recibía, por ejemplo KIVBJE (recuerdo que las letras cambiaban a cada pulsación). En ese momento, ambos cambiaban los modificadores a la nueva posición PGH y empezaba el mensaje cifrado real.

Tal y como los franceses dieron la batalla del desciframiento por perdida, los polacos no. Su Biuro Szyfrów organizó un curso de criptografía e invitó a 20 matemáticos que sabían hablar alemán. Les tomaron juramento y escogieron a tres de ellos por sus aptitudes. El que más destacó fue un joven de 23 años llamado Marian Rejewski. Era tímido, con gafas pero trabajando totalmente solo, con una Enigma en sus manos y con la información que os he dado fue capaz de descifrar los mensajes de los alemanes.

¿Que cómo hizo eso?

Creo que lo dejaremos para otra historia.

Fuentes:
“Los códigos secretos”, Simon Singh

Lecturas adicionales:
mforos
http://porsche.ls.fi.upm.es/Material/Enigma/Enigma.htm
http://morfeo.upc.es/crom/mod/wiki/view.php?id=4&page=Enigma
http://cervellet.blogspot.com/2009/03/criptografia-xii.html
Microsiervos



Hay 24 comentarios a 'La máquina Enigma'

Subscribe to comments with RSS or TrackBack to 'La máquina Enigma'.

  1. #1.- Enviado por: Carlos

    El día 29 de julio de 2009 a las 04:34

    Hola. En este sitio hay bastante información sobre enigma
    http://www.kriptopolis.org/enigma

  2. #2.- Enviado por: Evil Preacher

    El día 29 de julio de 2009 a las 07:46

    ¡Estupendo! Las criptografía y las anécdotas asociadas a su historia son apasionantes; la dificultad al contarlas es explicar de forma sencilla los métodos y lo haces estupendamente, despachas el método Vigènere de manera clara en un par de párrafos ¡estupendo!
    Algunas veces he explicado alguno de los métodos clásicos en mi blog, con el fin de proponer algún criptograma a modo de pasatiempo a mis lectores (hay otro al caer). Si alguna vez necesito echar mano de la Enigma, sencillamente enlazaré este post :p

  3. #3.- Enviado por: pepe

    El día 29 de julio de 2009 a las 08:14

    Estupendo articulo, me apasionan las enigmas y me has aclarado de un plumazo cómo codificaban los textos.

    Un saludo

  4. #4.- Enviado por: asgard

    El día 29 de julio de 2009 a las 12:55

    Vaya, estoy leyendo ahora mismo el Cryptonomicón y esta entrada resulta un bellísimo “spoiler”… ¿O es el libro el spoiler para esta entrada? :)

  5. #5.- Enviado por: Iñaki

    El día 29 de julio de 2009 a las 13:47

    Puede que este enlace te interese…..

    Un saludo….

  6. #6.- Enviado por: McQueen

    El día 29 de julio de 2009 a las 15:24

    Magnífica lección sobre tan prodigiosa máquina. Enhorabuena. Este aparatito siempre me ha llenado de admiración. Estoy deseando que cuentes esa otra historia :)

  7. #7.- Enviado por: Ardelas

    El día 29 de julio de 2009 a las 15:46

    Es una tema muy interesante, desconocido por mucha gente y que marcó en gran medida el rumbo de la guerra.
    Por cierto, encantado de que enlaces a mi blog cervellet, ha sido una sorpresa.

  8. #8.- Enviado por: Gobater

    El día 29 de julio de 2009 a las 15:51

    Genial!!!

    Siempre quise saber cómo funcionaba la Enigma!!

  9. #9.- Enviado por: Eneko Garcia

    El día 29 de julio de 2009 a las 16:18

    Fascinante artículo. Estoy deseando leer la continuación.
    Un saludo!

  10. #10.- Enviado por: Cesar

    El día 29 de julio de 2009 a las 16:52

    Impresionante articulo Omalaled, de Rejewski no habia escuchado antes, donde entra Alan Turing en todo esto??
    Yo creia que habia sido el quien decifro los mensajes alemanes…. espero la segunda parte con ansias…

  11. #11.- Enviado por: sonlakor

    El día 29 de julio de 2009 a las 17:11

    En Kriptopolis estaban haciendo un enorme reportaje novelado sobre ello que es MUY MUY interesante: http://www.kriptopolis.org/enigma

  12. #12.- Enviado por: Prometeo

    El día 29 de julio de 2009 a las 17:46

    Pero que cabron! Mira que dejarlo para otro dia, con lo interesante que estaba!!

    Felicidades, y gracias por la historia, realmente apasionante.

  13. #13.- Enviado por: castarco

    El día 29 de julio de 2009 a las 18:19

    Hombre, más temible era la máquina de cifrado Lorentz que se utilizaba para las comunicaciones de los altos cargos.

    Por cierto, añadiría como fuente sumamente interesante la historia de Enigma de kriptopolis.org

  14. #14.- Enviado por: antares

    El día 29 de julio de 2009 a las 22:18

    Muy buena información! qué pasó después con Marian Rejewiski?
    un genio , el solito decifrando los mensajes eh?
    Saludos

  15. #15.- Enviado por: ^CiViLoN^

    El día 29 de julio de 2009 a las 22:46

    Si estas leyendo criptonomicon lo terminaras adorando la máquina enigma y alguna que otra cosa. Cuando terminabas el artículo pensaba que no ibas a seguir contándonos mas historias pues puedes hacer muchos artículos. muchas gracias!!

  16. #16.- Enviado por: omalaled

    El día 29 de julio de 2009 a las 23:15

    A todos: muchas gracias por vuestros comentarios. A todos por vuestras palabras siempre de felicitación. De verdad, es un gustazo escribir artículos así.

    Iñaki: he visto ese enlace… ¡fantástico!
    Ardelas: el placer fue mío al encontrar tu artículo.
    Cesar: primero fue Rejewski y más tarde Turing (este último con unas técnicas impresionantemente inteligentes). Se conocieron mucho más tarde, pero el primero en el tiempo fue Rejewski.

    Pero dejemos todo eso para otras historias :-)

    Salud!

  17. #17.- Enviado por: Toro Sentado

    El día 29 de julio de 2009 a las 23:18

    Fabuloso artículo, espero ansioso la 2ª parte.

  18. #18.- Enviado por: resultados primitiva

    El día 30 de julio de 2009 a las 08:34

    Siempre leí muchas cosas de la máquina Enigma, pero nunca cómo funciona. ¡Gracias por compartirlo!

  19. #19.- Enviado por: Toro Sentado

    El día 31 de julio de 2009 a las 08:58

    Hay una cosa que no entiendo, si los aliados hubieran capturado un libro de claves ya no hubiera hecho falta todo el esfuerzo que hicieron. Parece que consiguieron capturar máquinas enigma pero no libros de claves, ¿por qué no?

  20. #20.- Enviado por: omalaled

    El día 1 de agosto de 2009 a las 08:22

    ¡Lo siento! Toro Sentado, pero no recuerdo el detalle. Sé que a la larga sí lo tuvieron, pero que hubo otras máquinas que incorporaban más sofisticaciones para los altos mandos y que de esas jamás lograron descifrar mensaje alguno.

    A ver si la próxima vez que lea algo del tema tomo buena nota.

    Salud!

  21. #21.- Enviado por: Dicanri

    El día 6 de agosto de 2009 a las 04:23

    Que enorme artículo! Tú no dejas de sorprendernos nunca. Ahora quiero saber cómo diablos se puede descifrar algo asi!

  22. #22.- Enviado por: ivich

    El día 15 de agosto de 2009 a las 14:12

    Muy bueno el post :) En general todos!

  23. #23.- Enviado por: Marfil

    El día 5 de septiembre de 2009 a las 04:19

    Muy buen artículo Omalaled; como otros ya han comentado, vale la pena complementar su lectura con el texto de Kriptopolis, si bien este es muy largo –creo que de hecho nunca lo he leído completo–.

    Respecto a la contribución de Turing para desencriptar los cifrados de Enigma durante la segunda guerra mundial, y al hecho de que a pese tan enorme contribución su propio gobierno lo persiguió años después a causa de su homosexualidad, hay una interesante campaña en Inglaterra para que el gobierno pida “disculpas públicas” al respecto.

    http://petitions.number10.gov.uk/turing/

  24. #24.- Enviado por: jorge e espinosa

    El día 11 de noviembre de 2011 a las 15:30

    siempre me aintrigado la enigma y me guataria saber mas sobre ella, extraudinario escrito

Post a comment


nueve × = 81

Esta web utiliza cookies, ¿estás de acuerdo? plugin cookies ACEPTAR