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.
Arthur Scherbius
Chiffriermaschinen Aktien Gesellschaft
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):
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 (observar los cables que las unen).
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:
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.
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.
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?
Descifrando Enigma
Mientras países como Francia, Inglaterra, Estados Unidos, etc. se resignaron asumiendo que Enigma era inviolable Polonia continuo investigando como descifrar los mensajes de Enigma ya que estaban seguros de que seria vital en la guerra que se avecinaba. Enseguida se dieron cuenta de que las maquinas Enigma que utilizaban los alemanes no eran versiones comerciales sino que tenían el cableado cambiado. El organismo polaco encargado de estos temas era el Biuro Szyfrow.
Biuro Szyfrow
Gracias a un alemán Hans-Thilo Schmidt que participó en la I Guerra Mundial y más tarde fue expulsado debido a los recortes presupuestarios, los polacos pudieron conseguir los planos de la máquina enigma que utilizaban los militares alemanes. Hans-Thilo Schmidt le pidió trabajo a su hermano, que trabajaba en el organismo alemán encargado de las comunicaciones cifradas. Schmidt, que estaba resentido con el gobierno de su país, no tardó en vender información secreta a cambio de dinero a otros países.
Se construyeron réplicas de las Enigmas alemanas y se empezaron a guardar el mayor número de mensajes alemanes posible. Marian Rejewski, que trabajaba en el Biuro Szyfrow, fue el encargado de estudiar el diseño de las Enigmas alemanas y intentar descifrar las comunicaciones a partir de los mensajes captados.
Marian Rejewski
Marian Rejewski hizo un gran descubrimiento, sabía que cuando se enviaba un mensaje se pasaba primero la secuencia de los rotores con la configuración inicial (puestos a cero). Esta secuencia se pasaba por duplicado. Rejewski hizo un catálogo con todas las posibles configuraciones de los rotores (105.456), tardo un año.
* Si en un día podían elaborar una tabla de correspondencias suficientemente grande, podrían identificar la secuencia de los rotores en el catálogo que Rejewski había hecho.
Ejemplo:
+ Mensaje 1: BJGTDN
+ Mensaje 2: LIFBAB
+ Mensaje 3: ETULZR
+ Mensaje 4: TFREII
+ Deducimos que(con la configuración inicial del rotor, rotores puestos a cero):
# B->(+ 3 movs. rotor)->T
# L->(+ 3 movs. rotor)->B
# E->(+ 3 movs. rotor)->L
# T->(+ 3 movs. rotor)->E
Más tarde Rejewski se dio cuenta que los alemanes añadían pequeñas modificaciones y esto conllevaba a hacer catálogos nuevos. Esto significaba que mientras se hacía un catálogo nuevo (se tardó un año en hacer uno) no se podía descifrar ningún mensaje.
Rejewski mecanizó la forma de encontrar la secuencia de rotores. Básicamente como sabía que había 6 maneras distintas de colocar los rotores en los huecos, puso a trabajar a 6 adaptaciones de la máquina enigma en paralelo. Este nuevo invento detectaba la secuencia de los rotores en unas 2 horas. Unos dicen que a este ingenio se le conoció con el nombre de bomba por el ruido que hacía la máquina cuando estaba trabajando tic-tac y otros a que a Rejewski se le ocurrió mientras comía una bomba, un helado típico con forma de esfera.
A principios del 1.939 los alemanes introdujeron nuevas modificaciones a la máquina de forma que echaron abajo la capacidad polaca de descifrar mensajes. Introdujeron más clavijas par intercambiar letras y pusieron más rotores, todo esto elevaba las posibles combinaciones muchísimo.
El jefe del Biuro Szyfrow decidió que todo el trabajo que se había hecho no debía perderse, llamó a los servicios secretos de Francia y Inglaterra, una semana antes de que empezara la guerra, para mostrarles los descubrimientos que había hecho y enseñarles la "bomba" (la máquina que diseñó Rejewski). Ingleses y franceses se quedaron sorprendidos pues habían asumido la inviolabilidad de Enigma.
Bomba de Turing
Los ingleses continuaron con el trabajo de los polacos en Bletchley Park y conseguian descifrar los mensajes alemanes.
Bletchley Park
El gobierno ingles llamó a un prestigioso matemático, Alan Turing, y le "invitó amablemente" a ir a Bletchley Park en vez de ponerlo a trabajar descifrando a diario fue puesto a "pensar". Los ingleses sabían que cuando los alemanes se dieran cuenta dejarían de mandar dos veces la secuencia de los rotores y entonces ellos no podrían descifrar el código.
Turing consiguió idear una forma de descifrar el código sin utilizar la repetición de la secuencia de rotores que se enviaba al principio del mensaje. Descifraba el código sabiendo que tipo de mensajes enviaban, por ejemplo por la mañana a las 6 se mandaba un parte meteorológico en el que iria la palabra "wetter" (tiempo en alemán) entonces la máquina buscaba posibles combinaciones para descifrar el mensaje. A esta máquina la llamaron "bomba" en honor a la primera máquina polaca.
La primera máquina de Turing podía llegar a tardar una semana en descifrar el código, entonces ideó otra más eficiente. En poco tiempo había más de 15 "bombas" descifrando mensajes alemanes. Más tarde llego "Colosus", Sir Thomas Flowers fue el creador de esta máquina, utilizando tecnología que había desarrollado mientras fue empleado de la British Telephone Establishment.
Sir Thomas Flowers
Máquina Colossus
El diseño de Colosus comenzó en Marzo de 1.943 y en Diciembre del mismo año la máquina estaba terminada y programada. Al finalizar la guerra el gobierno clasificó la Colosus bajo la Ley de Secretos Oficiales de Inglaterra, su existencia no fue conocida hasta finales de la década de 1.970 por lo que se conoce a ENIAC como la primera máquina electrónica programable.
No hay comentarios:
Publicar un comentario