En esta entrada volveremos a hablar de nuestros malvados y maléficos bichos verdes. En esta ocasión hablaremos de como intentaron, y por una vez sin éxito, descifrar las comunicaciones entre los mandos militares humanos…. aún teniendo infinitos esbirros trabajando en ello.
Desde tiempos inmemoriales los humanos hemos cifrado nuestras comunicaciones, sobre todo las militares. Pero, ¿en qué consiste cifrar un mensaje? Supongamos que el grupo de naves quiere enviarle al grupo de naves su plan de vuelo contra la nave nodriza de los malvados bichos verdes. Lógicamente, no quieren que el comandante de la flota invasora se entere de nada. No sólo quieren que no se entere del contenido del mensaje, sino ni tan siquiera que se están comunicando. Lo que quieren es usar un criptosistema perfecto. Pero ¿qué es un criptosistema perfecto? Pues básicamente:
Una forma de transformar un mensaje de forma que parezca que son datos aleatorios para que, si alguien pincha la linea, piense que en realidad no se está transmitiendo nada.
Qué sea fácil de realizar dicha transformación, pues de lo contrario sería imposible comunicar nada.
Que sea difícil invertir dicha transformación… salvo que se tenga una clave que previamente habrán compartido[1].
Un criptosistema es cualquier método que cumpla las tres propiedades anteriores. Si además consigue que los datos sean realmente aleatorios e imposible de invertir, entonces estamos ante un criptosistema perfecto.
Una de los criptosistemas más viejos conocidos es el cifrado del césar que era el usado por Julio Cesar para sus comunicaciones militares. Si has seguido el enlace de la Wikipedia verás que actualmente es extremadamente fácil de descifrar cualquier mensaje con este cifrado.
Durante la segunda guerra mundial se realizó un avance espectacular en esta ciencia. De hecho gran parte del mérito de que los aliados ganaran esta guerra es debido a que fueron capaces de romper el cifrado enigma del Eje. Ahora bien, el siguiente resultado es algo más antiguo y ya se conocía entonces:
El único criptosistema perfecto que existe se llama Libreta de un solo uso, y funciona como sigue:
Créese tantos caracteres aleatorios como los del mensaje a transmitir. Ésa será la clave secreta que se comparta previamente de forma segura.
Para cifrar el mensaje sume[2] la clave al mensaje.
Para descifrar el mensaje réstese la clave al mensaje.
Para que sea realmente indescifrable y lo que se transmita sea ruido blanco la clave sólo puede usarse una vez (en caso contrario, es casi trivial encontrar la clave).
Este criptosistema tiene dos problemas muy grandes:
Se tiene que crear una clave para cada mensaje.
La clave tiene que tener el mismo tamaño que el mensaje.
Y aunque son dos problemas muy gordos, en la guerra contra los bichos verdes el sistema funcionó a la perfección:
Todas las naves tienen libretas de un solo uso para las comunicaciones que han sido previamente generadas a partir de ruido blanco y preparadas antes de partir en la misión.
Las usan para transmitir órdenes y matar a los asquerosos bichos verdes (con el regusto adicional de usar las matemáticas en su contra).
Como hemos visto antes, aunque nuestros odiados alienígenas pusieran a infinitos soldados a trabajar sobre el problema, serían incapaces de entender el mensaje. Es más, si entre las naves se estuviera transmitiendo constantemente ruido blanco entre los mensajes, ¡serían incapaces de saber si realmente se está transmitiendo algo!. Esto es debido a lo siguiente:
El texto cifrado no da ninguna información sobre el texto en claro. Es decir, a partir de un texto cifrado de esta forma CUALQUIER mensaje de la misma longitud podría ser el mensaje transmitido.
En nuestro caso, incluso si los alienígenas pusiera a infinitos soldados a trabajar en el asunto, ¡encontrarían infinitos mensajes igual de válidos!… entre los cuales estaría el verdadero mensaje. Y es así como nuestros valiente soldados evitaron que sus comunicaciones fueran descifradas… aunque claro, para nuestra desgracia, ellos también usaban el mismo criptosistema
- Vamos a ignorar los criptosistemas asimétricos o de clave pública que son otra batalla. [↩]
- Ojo, sumar hay que entenderlo de la forma siguiente: se le da el valor de 1 a la letra A, 2 a la B y así sucesivamente. Entonces A + B sera igual a 1 + 2 = 3 que corresponde con la letra C. [↩]
The Sistemas criptográficos. by Cruz Enrique Borges Hernández, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 Spain License.
{ 9 } Comentarios
No solo es necesaria la clave, me parece a mi, también cúando empezar a leer el mensaje, ¿no?
Hombre en el caso de que se estubiera enviando constantemente un flujo aleaorio lo que se puede hacer es estar constantemente “restando” la clave hasta que de algo coherente (el coste de hacerlo es practicamente CERO).
El problema de usar un código del tipo “empieza el mensaje” es que ese código se repetiría de forma anormal y rápidamente se sabría que ese bloque de datos es la cabecera del mensaje. No les valdría de mucho porque el mensaje estaría seguro, pero ya sabrían que se ha enviado un mensaje, con lo cual has perdido parte de las ventajas del sistema.
La máquina Enigma era bastante buena, lo suficiente para ganar la guerra ella sola. Pero según tengo entendido, los operarios alemanes cometían dos pequeños fallos, lo que a la larga permitió descifrar completamente los mensajes cifrados. Violaron dos de las principios de la seguridad criptográfica:
Nunca enviar dos mensajes distintos con la misma clave. Al principio de cada mensaje transmitían la clave con la que estaba codificado ese mensaje. Esa clave también estaba codificada, pero siguiendo una clave preestablecida, común para todas las estaciones Enigma, que cambiaba cada día.
Nunca enviar el mismo mensaje codificado con dos claves diferentes. Los operarios enviaban dos veces la clave que se usaría ese mensaje, pero cada una de las veces estaba codificada de manera diferente.
Aunque se habían conseguido máquinas Enigma, libros de códigos y el análisis matemático estaba bastante avanzado, fueron estos puntos los que permitieron reunir mensajes y claves suficientes como para romper totalmente el cifrado.
Si no me acuerdo mal (estuve repasando en la wiki para mis clases ) lo que hacían era codificar la clave del mensaje con la clave del día y luego volvían a codificar el resultado con la mima clave del día. Esto, unido a que el criptoistema no permite que una letra se codifique como ella misma al cifrar, reducía las posibles claves a varios miles. Imposible para un humano, pero no para una máquina de las que tenían en la época.
En efecto, para Enigma había un libro de códigos con la clave del día (desconocido para los aliados, salvo algún que otro libro que con el tiempo cayó en sus manos: la película U-477, o el número que sea, cuenta una historia real de forma muy muy novelada). Este código era distinto en la Armada que en los diferentes Ejércitos, pero no había tantos.
El operador debía codificar una clave aleatoria para el mensaje según la clave del día (tres o cuatro letras), y a continuación cambiaba los discos a la clave enviada y transmitía el mensaje. Pero como podía haber interferencias, se enviaba la clave de codificación DOS VECES, para mayor seguridad… para los aliados, que ya sabían que los seis u ocho primeros caracteres eran la clave repetida: Una debilidad gigantesca del sistema.
Además, el operador podía estar en el campo de batalla, así que lo de inventar nuevas claves cada vez… con obuses cayendo… pues pocas veces. Así que un operador podía elegir siempre la misma clave (sus iniciales, o las de su novia, o AAA, para mayor INRI), lo que daba una debilidad adicional muy grande.
Y el colmo era la manía (habitual en todos los ejércitos) de poner montones de coletillas inútiles, pero que halagan al mando. Por ejemplo, comenzar con “Al estimado OberStrumpftanfamFuhrer Wilhelm Von Reichenmeyer”, o “Firmado: El HauptHammCommander Weinhoffen”. Como se sabía quién era el Comandante de cierto puesto, los mensajes enviados o dirigidos a ese puesto tenían muchos caracteres conocidos, en principio, lo que le daba una debilidad mucho mayor aún. Pero es que, además, ¡Todos los mensajes acababan sistemáticamente con un HEIL HITLER!.
Aún así, se necesitó toda la sabiduría de la época para poder descifrar la maquineta, y no siempre se conseguía…
Si queréis saber más sobre Enigma, creo que la mejor fuente en español por la profundidad e integración con los hechos históricos es esta seríe que Román Ceano ha ido publicando en Kriptópilis: http://www.kriptopolis.org/enigma
Saludos
Por cierto, ahora que lo comentas, parece ser que una de las mayores cagadas fue que un señor envió un mensaje formado SOLO por T (que al codificarse formaban un texto distinto) lo cual si que es bastante información al respecto de la clave de día.
http://es-us.noticias.yahoo.com/blogs/ciencia-curiosa/las-cartas-que-el-fbi-no-ha-podido-descrifrar.html
Detecto en esta entrada cierto tufillo a deslealtad. ¡Más respeto, Xuglurzs! PD: Me ha gustado
Escribe un comentario