viernes, 14 de octubre de 2016

Criptografía (XXXIII): cifrado cinta móvil (I)

El método de cifrado de cinta móvil, tal y como comentaba en este post, es un caso particular del cifrado de sustitución por homófonos y que, con ciertas variaciones sobre el método original de cinta móvil, fue adoptado en la guerra civil española, tanto por parte del bando republicano como por el sublevado.

En esencia, en los criptosistemas de sustitución homofónica se trataba de sustituir cada letra del texto en claro por dígitos, símbolos,..., o grupos de éstos - por ejemplo, por un número del "00" al "99" - que se asignaban a cada una de ellas en una tabla como la siguiente:
La idea era asignar a cada letra del texto en claro un número de homófonos suficiente, en función de la frecuencia de aparición de cada una de ellas en el idioma en que se hallara escrito éste, para evitar un análisis de frecuencias, ya que de esta forma dicha característica del idioma no se trasladaba al criptograma.

En mi opinión uno de los sistemas de "papel y lápiz" más robustos, ya que sin ordenadores no resulta nada fácil "romper" un criptosistema de este tipo si no se dispone de gran cantidad de texto cifrado y, aún así, es necesario tener mucha "suerte" (que se encuentren en los criptogramas de los que se dispone secuencias repetidas de dígitos, símbolos,... o grupos de éstos y sea posible realizar con éxito un ataque basado en el análisis de frecuencias de bigramas, trigramas,...).

Pues bien, el método de cifrado de la cinta móvil, como digo un caso particular de la sustitución homofónica y adoptado en la guerra civil por ambos bandos, consistía en una tabla de homófonos con dos alfabetos, uno de ellos con las letras en su posición normal en el alfabeto español y el otro con las letras en orden aleatorio.

En el método original la cinta móvil, el alfabeto aleatorio, pasaba a través de dos ranuras ubicadas en la tarjeta justo debajo del alfabeto con las letras en su posición normal, de la siguiente manera:
Para cifrar y descifrar los mensajes, el emisor y el receptor debían ponerse de acuerdo en la posición en la que había que colocar la cinta móvil respecto al alfabeto con las letras en su posición normal. Por ejemplo, en la figura anterior, la "A" (primera fila, letras del alfabeto en su posición normal) con la "A" (segunda fila, cinta móvil con alfabeto aleatorio), y ya bastaba con sustituir cada letra del texto en claro por uno de los hómofonos (número de dos dígitos) que le correspondían a cada una de ellas en la columna de la cinta móvil.

Por ejemplo: mi nombre, Mikel, podría cifrarse como: "1884716069" o "4884962087" o "7509158516",...

En el método original para formar la tabla de homófonos se distribuían los números del 10 al 99 siguiendo un orden correlativo en cada una de las filas y de forma que a cada carácter del texto en claro le correspondieran entre 3 y 4 homófonos.
Sin embargo, en la guerra civil española llegan a representarse como hómofonos los números del 00 al 99, y lo normal es que éstos se coloquen por decenas en cada una de las filas (del 00 al 09 en la primera, del 10 al 19 en la segunda y así sucesivamente), sin seguir un orden correlativo en cada una de ellas, y de tal forma que a cada carácter del texto en claro le correspondan entre 3 y 5 homófonos. Esto último no en todos los casos, pero es lo más habitual.

Ya expliqué en este post las principales vulnerabilidades de este tipo de criptosistemas empleados en la guerra civil, pero quizás la más importante es que mientras que en los criptosistemas de sustitución homofónica se solía asignar a cada letra del texto en claro un número proporcional de homófonos en función de la frecuencia estándar de aparición de cada una de ellas en un texto escrito en el idioma del mensaje en claro, en los métodos empleados en el guerra civil, como cada carácter del texto en claro suele tener entre 3 y 5 homófonos, si se dispone de suficiente texto cifrado es posible realizar con éxito un criptoanálisis basado en el análisis de frecuencias de los homófonos, bigramas, trigramas,..., ya que la frecuencia de aparición de las letras en el idioma en el que está escrito el texto en claro persiste en cierta medida en los criptogramas. Además, esta circunstancia se puede ver potenciada con la aplicación del alfabeto aleatorio, ya que como consecuencia de ésta podría ocurrir que a las letras de mayor frecuencia le correspondan un número de homófonos menor que a las de frecuencia más baja, que pueden ni siquiera aparecer en el criptograma.

Evidentemente, el método de cinta móvil es más seguro si se va cambiando la disposición de los homófonos en la tabla, es decir, de forma que los homófonos situados en una misma columna no representen siempre a una letra del texto en claro, con independencia de que no representen siempre a la misma, ya que esto último depende del alfabeto aleatorio que se utilice en el cifrado del mensaje, pero, por lo que tengo entendido, esto no se hacía con frecuencia en la guerra civil (muy a menudo se utilizaba la misma tabla) e incluso se producía un uso reiterado del mismo alfabeto aleatorio, lo que conllevaba que este método fuera muy vulnerable si el otro bando conseguía deducir o se hacía con la tabla de homófonos empleada.

Para que se vea lo que quiero decir pongo un ejemplo: en un post anterior, hice un criptoanálisis a mi manera, mediante un análisis de frecuencias, a un criptograma cifrado con la clave "Bocho", empleada para las comunicaciones entre el Ministro de Marina y Aire con el Presidente del Gobierno vasco, y llegué a que la tabla de homófonos empleada en el cifrado era la siguiente (sólo figuran los homófonos que se encontraban en el criptograma):
Supongamos ahora que interceptamos el siguiente mensaje:

Clave Bocho.
De Valencia para Bilbao.
Transmitido día 5-3-37. A las 2.05 horas. 453 caracteres.

5290 3418 2750 5970 4420 7327 4785 3076 8861 9002 8518 6035 0534 4518
5976 8461 9026 4516 8593 3454 8988 6145 3220 4843 3311 8823 6712 4592
5233 5054 2588 7359 0272 2064 0705 6147 5446 6073 5351 4523 2794 2069
2402 5901 9809 2021 7685 4267 6259 4573 2190 8960 1359 3767 4521 2927
0244 5414 3247 2822 6067 4619 8873 8860 2909 7654 1202 5944 9888 9427
4777 4592 4927 2569 4718 5444 5964 3302 2385 7088 5973 0549 0592 8033
6154 8224 6734 2345 2185 0234 4519 7385 7060 2176 8877 7645 0285 7745
5876 3454 7711 8512 2452 8873 5491 2220 2147 3060 8245 3019 8894 6685
7723 6019 2220 7376 4770 4550 0478 6002 6085 5037 7885 2144 3488 7754
0626 2254 6975 8577 4460 1405 7364 6792 4888 7612 0937 9816 0561 9030
4820 4127 9490 5450 7845 0244 1247 0202 4512 2927 0627 2402 5290 7344
3377 4424 4333 7394 9002 8550 4530 2633 3084 2622 5437 0967 7753 7845
0285 6688 3287 4550 2077 2030 5205 5054 2167 4920 1460 5030 8869 2773
1788 1488 4024 1954 6245 6932 6777 1860 7427 6488 7747 4661 6014 6073
0577 3060 7344 6748 3361 8802 1845 6109 4988 7094 9021 3420 9252 4537
4424 3332 4792 0478 6070 2020 7706 5160 7744 3445 5020 7785 4144 7354
5011 8534 24

Lógicamente, si no se ha modificado la tabla ni el alfabeto aleatorio este criptograma será descifrable de forma casi inmediata (no inmediata porque faltan en la tabla algunos homófonos); pero si se mantiene la tabla de homófonos aunque se haya cambiado el alfabeto aleatorio será también mucho más fácil de descifrar que el primero, pese a tener este segundo criptograma muchos menos caracteres, ya que las columnas de homófonos serán las mismas y representarán a un mismo carácter del texto en claro, aunque no necesariamente al indicado en la tabla anterior. Por ejemplo, si en el primer criptograma la "E" era representada por "04", "28", "53" o "91", en el segundo estos mismos homófonos sustituirán a esa misma letra u otra (por ejemplo, "O") en función del alfabeto aleatorio empleado.

En el siguiente post intentaré criptonalizar este segundo criptograma.

No hay comentarios:

Publicar un comentario