The art of deceiving
Mientras escribo estas líneas, suena en mi estéreo un podcast de la BBC. Lo pongo a manera de fondo, para tratar de no pensar mucho. No lo puedo lograr y termino regresando al artículo de ayer. Así pues, regresaremos al artículo de ayer.
Si no han logrado descifrar el mensaje de ayer, recomiendo que antes de continuar con la lectura de éste, lean el anterior, para acto seguido regresar a éste artículo.
Aquí los espero.
Bienvenidos de vuelta.
Como habrán podido observar, en el artículo anterior puse un código. Una persona con afición a la criptografía será capaz de correr una serie de pruebas básicas y esenciales para saber si ahí hay o no hay un código secreto. Yo no soy capaz de distinguir un código secreto de un Twinkie Wonder, pero sé que ahí hay un código, y ese código tal vez sea un código muy sencillo.
Una forma rápida consiste en analizar el código consiste en ver de qué partes está hecho. En el caso del código anterior, lo que observamos son simples números y letras. ¿Qué números y letras? Veamos el código original.
50617 26120 4a616 d6573 20426 f6e64 3a206 37561 6e646 f2076 656e6 76173 20612 04d49 36206 e6f20 73652 07465 206f6 c7669 64652 0636f 6d707 26172 20756 e6120 626f6 c7361 20646 52061 72656 e6120 70617 26120 67617 46f2e
Rápidamente observamos que el código contiene letras y números. Pero aunque hay números entre el uno y el cero, y entre Alfa y Foxtrot (con la excepción de Bravo) no hay letras más allá de la efe. ¿Será un código hexadecimal? Puede ser. Después de todo, es un fragmento de texto realmente corto para todo efecto práctico, y así no es factible hacer un análisis de frecuencia para romper el código.
El código hexadecimal va desde 00 hasta ff, siendo 00 un valor de cero y ff un valor de doscientos cincuenta y cinco. Es un código interesante, porque los sistemas digitales pueden manejarlo con gran facilidad, siendo su rango en binario desde 00000000 hasta 11111111. Cada valor tiene asignado un código, al menos en el sistema ASCII (cuyos valores llegan a 127, desde 00 hasta 7F, o desde 0000000 hasta 1111111). Lo importante es que el código siempre viene en pares de letras o números. ¿Hay pares de letras o números? A primera vista, sí, pero sobrarían letras porque están agrupadas en paquetes de cinco, pero eso peude ser para despistar: agrupados en paquetes de cuatro, seis u ocho mostraría claramente la intención de los autores, siete y nueve ya son complicados de dictar, cinco es la mejor opción para transmitir. Para transmitir, dije. Así que eliminemos los espacios y veamos si hay algo que nos pueda indicar que no es un código hexadecimal. Si el resultado final es un número non (o impar, según la zona), entonces el código no sería hexadecimal. Veamos:
50617261204a616d657320426f6e643a206375616e646f2076656e6761732061204d4936206e6f207365207465206f6c7669646520636f6d7072617220756e6120626f6c7361206465206172656e612070617261206761746f2e
Si la línea se sale de banda y no se puede ver, no se preocupen. Trataré de arreglarlo luego en mi plantilla css. La cosa es que es un número par: 180 caracteres. Es tiempo de analizar si el número es hexadecimal o no. Con ayuda de una tabla de código ASCII revisemos si hay o no hay valores que ajusten. El más básico sería el código hexadecimal 20, equivalente a un espacio. Veamos si hay códigos 20 y reemplacémoslo, pues, por espacios.
50617261 4a616d6573 426f6e643a 6375616e646f 76656e676173 61 4d4936 6e6f 7365 7465 6f6c76696465 636f6d70726172 756e61 626f6c7361 6465 6172656e61 70617261 6761746f2e
Interesante. Muy interesante. La distribución no nos dice nada aún, pero eso es porque las letras estarían en pares. Pero es un paso prometedor. Ahora analicemos la presencia de números y letras. En hexadecimal, los números van desde 30 (0) hasta 39 (9). Las mayúsculas van, en orden alfabético, desde 41 (A) hasta 5A (Z), y las minúsculas desde 61 (a) hasta 7a (z), sin contar la ñ. Hagamos el reemplazo de todos los pares:
Para James Bond3a cuando vengas a MI6 no se te olvide comprar una bolsa de arena para gato2e
Ya tenemos resuelto el misterio, y si sabemos que 2c es la coma, 2e es el punto, y 3a son los dos puntos, ya tenemos el mensaje.
Para James Bond: cuando vengas a MI6 no se te olvide comprar una bolsa de arena para gato.
La vida de un espía es dura, muy dura…
Ahora bien. Las estaciones numéricas que la gente intercepta, incluyendo, por única ocasión, a su seguro servidor entre el grupo de “Gente,” no son sujetas a un análisis tan absurdo y ridículamente fácil de romper.
Tomemos, por ejemplo, una transmisión cualquiera de estaciones numéricas. Una transmisión estándar puede empezar con música o con una llamada específica, para impedir que el espía la confunda con otra. Si no hay interferencia (en inglés dirían jammed, aunque nunca especifican con qué material hacen el atascadero (excepto en Spaceballs, en que fue hecho con mermelada de frambuesa)), tras la llamada puedes recibir la clave de descifrado, y a continuación, el mensaje. Un ejemplo, con una transmisión de la KGB en algo que semeja al español.
14 514 514 0 0 0 0 0 514 514 514 0 0 0 0 0
¿Qué significa esto? Un análisis rápido parecería indicar que 0 0 0 0 0 significa “no hay mensaje” y el 514 podría ser el identificador del agente o agentes a quien se le está dando instrucciones. Digamos:
James Bond: no hagas nada.
Esta teoría parece apoyarse en la siguiente transmisión interceptada:
87 687 687 0 0 0 0 0 687 687 687 0 0 0 0 0
De nueva cuenta no hay mensaje, aunque sí hay un código que cambió. Tal vez sea el agente o la instrucción. Pudiera llegar a ser algo como:
Operación Hundir el Titanic, sin cambios.
Operación Ir por leche al supermercado: terminar.
Debido a que ésto sólo podríamos descifrarlo si supiéramos el código, que en este caso debió ser acordado de antemano entre el espía y su agencia, no podremos saber nada de nada al respecto. Busquemos otro ejemplo para tratar de entender qué es lo que pasa.
67 567 294 294 75 75 70072 70072 19376 1234567890 89986 89986 99726 99726 ?94 294 75 75 0 0 0 0 0
Muy interesante. Esta transmisión se aleja de lo previamente escuchado con anterioridad antes de esto, aunque aún tenemos elementos que podemos reconocer. El final, 0 0 0 0 0, está ahí. Podemos deducir que significa “fin.” Probable es que éste sí sea un mensaje para un agente. ¿Para quién? Tal vez para el agente 567. La siguiente parte puede ser el libro donde el agente sacará la clave, digamos “Failure is not an option,” de Gene Kranz. 294 identificaría la página y 75 será la palabra en la cual se encuentra la clave (en este hipotético caso, la palabra sería “grasping”) que permitirá descifrar la siguiente parte de la instrucción, en un cifrado de Vigenère. Esto lo supongo porque la cifra 294 75 se encuentra al inicio y al final. Sin embargo, atención, porque las cifras a continuación no parecen codificación de fácil identificación. ¿Qué será lo que sucede, qué será lo que pasa, qué será el suceso que sucede?
Para resolver este entuerto, necesitamos más datos. Una transmisión adicional sería altamente conveniente. Por casualidad tengo una a la mano.
9278 0 6326 0 6326 38951 38951 26014 26014 80947 80947 00321 00321 65297 65297 98507 98507 70778 70778 87008 87008 184 184 27 27 0 0 0 0 0
Esto también se aleja de lo escuchado con anterioridad, pero también tenemos un patrón que se parece a lo antes visto. El fin sigue ahí, aunque ahora el preámbulo ha cambiado bastante. Por ejemplo, los números 184 27 están repetidos al final de la transmisión, y suponiendo que sean la página y la palabra en el libro del espía (en el anteriormente citado sería “our” o “docking,” dependiendo de cómo cuentes), el resto del texto sería el mensaje. No sabemos si 9278 es el agente, o si lo es 6326, o si esto es simplemente la página que se utilizará del cuaderno de un solo uso. Vemos, sin lugar a dudas, que el transmisor quiere asegurar que lleguen todas las piezas del mensaje, puesto que todos los grupos están repetidos. Las grabaciones no permiten asegurar que el preámbulo de todos los mensajes no haya sido repetido también, pero no hay razón para dudar que no sea de esa manera, dada la dificultad de encontrar una estación numérica por pura suerte.
Aquí tenemos, por un amplio margen, que pensar en el uso de un cuaderno de un solo uso más que en un cifrado. Un cifrado es posible que se pueda romper por pura fuerza bruta (muy tardado, pero se puede) mas eso sería matemáticamente imposible con un cuaderno de un solo uso. Dado que el cuaderno de un sólo uso tiene números que son, para todos los efectos, seleccionados al azar, si no cuentas con la clave original no podrás romper el código. Veamos un ejemplo. Nuestra estación nos transmite:
Atención. Atención. 3624. 3624. Doce grupos. Doce grupos. 6456 4562 7890 3504 2524 8702 6434 4862 6458 6462 7895 8345 2705 final, final, final. Atención. Atención. 3624. 3624. Doce grupos. Doce grupos. 6456 4562 7890 3504 2524 8702 6434 4862 6458 6462 7895 8345 2705 final, final, final.
Guau. Ya tenemos el mensaje. ¿Ahora qué hacemos? Vemos nuestro libro de un sólo uso, en el cual en la página que empieza con 3624. El cifrado está presentado de esta manera:
1A 2B 3C 4D 5E 6F 7G 8H 9I 10J 11K 12L 13M 14N 15O 16P 17Q 18R 19S 20T 21U 22V 23W 24X 25Y 26Z 666bestia 777buena suerte, 111adelante, 999contraorden.
La página utilizada en nuestro libro de notas va así:
3624 6448 4547 7878 3503 2521 8701 6432 4844 6443 6450 7890 8326 3482
Con base en esta página, sabremos lo que necesitamos saber. La primera parte será la clave, 3624, y procederemos a arrancar esa hoja de nuestro cuaderno. No la volveremos a utilizar nunca. Las cifras que vienen en el cifrador y las que nos fueron transmitidas deben ser sometidas a una operación matemática. En este caso, una resta. La cifra mayor se resta a la cifra menor, y el resultado será una letra, una palabra o una frase previamente acordada. Así, por ejemplo, nos transmitieron 6456 y el primer grupo de dígitos es 6448. 6456-6448=8. Repitamos todo hasta obtener los valores que debemos tener.
8 15 12 1 3 1 2 18 15 14 5 19 777
Que corresponden a:
H O L A C A B R O N E S, buena suerte.
De aquí podemos observar que si no podemos obtener el cuaderno de un solo uso, jamás podremos obtener el mensaje: los números son, efectivamente, escogidos al azar (yo dejé que mis dedos cayeran sobre el teclado numérico en grupo, como salieran, y ordené de 4 en 4), y por tanto, el cifrado es indescifrable sin las claves. Como además es necesario establecer qué significa cada valor resultante, aún si pudiéramos posar nuestras garras en un espía y obtener su cuaderno de un solo uso, el resultado puede ser igualmente indescifrable. Nosotros, como entidad transmisora, no tenemos oportunidad de saber si James Bond recibió su mensaje o no, o si el enemigo lo interceptó o no. Pero una cosa sí sabemos: aunque alguien más lo haya recibido, no sabrá qué hacer con él.
Para asegurarnos que James Bond reciba su mensaje, podemos repetirlo varias veces, y en diversas estaciones. E incluso con diversos códigos. En cualquier caso, nadie sabrá qué hacer con él. Y aún podemos hacer algo más: Si no puedes con ellos, confúndelos. Simon Mason recibió una grabación, cortesía de un DXer apodado Poacher, que recibió una extraña transmisión el 16 de marzo del 2006, en el cual una estación numérica comenzó a transmitir, comenzó a contar, y de pronto… cortó a música pop mientras encontraban el mensaje que debían transmitirle a James Bond (o a Vladimir, porque la banda es de la KGB), ajustó la señal, transmitió el mensaje, y se fue del aire.
Así es. Las estaciones numéricas son el gran misterio del tercer milenio… mucho más que las pendejadas que presenta Jaimico Maussán.
Saludos cordiales.
Quoth.
