En el
post anterior puse un
telegrama cifrado en la
guerra civil española, enviado el 30 de julio de 1936, en el que se le pide al Comandante militar de Asturias del bando sublevado que advierta a los dirigentes rojos de Gijón, que amenzaban con fusilar prisioneros del bando nacional como represalia por los bombardeos del
crucero "Almirante Cervera" sobre la ciudad, de que esa criminal acción no va a detener los bombardeos y de que si se cumple esa amenaza ellos actuarán de igual forma con los prisioneros rojos a su disposición.
Y al final del citado post me preguntaba si en caso de no disponer ni del texto en claro ni de la clave:
¿Sería posible criptoanalizarlo con éxito? Y decía que creo que sí, y de diferentes maneras, o mejor dicho combinando varios métodos.
Consideraciones preliminares:- En primer lugar, por el contexto histórico en el que se envía el telegrama, creo que es probable que en el texto en claro correspondiente a las partes cifradas aparezcan palabras como: 'GIJON', 'CRUCERO', 'CERVERA', 'BOMBAS', 'BOMBARDEAR', 'BOMBARDEO', 'BAHIA', 'CUARTEL', 'SIMANCAS', 'ROJOS', etc. Lo que comento porque en el proceso de criptoanálisis podrían verse o intuirse éstas o palabras similares.
- En cuanto al cifrado parcial del documento estaré atento para ver o intuir palabras que puedan ser continuidad del texto no cifrado del telegrama.
- Voy a suponer que se trata de un cifrado de sustitución homofónica sin cinta móvil, ya que no observo nada parecido a un indicador de posición de la cinta móvil respecto a la fija.
Dicho esto y antes de empezar el criptoanálisis, la tabla que voy a utilizar para las frecuencias con las que se espera encontrar cada una de las letras en un texto en claro en español es la siguiente:
Y la frecuencia de aparición de los homófonos en el criptograma es:
Donde: Hom. = Homófono; Nº = Nº de apariciones;
Fr. = Frecuencia aparición; Fr. x 3 = Frec. aparición x 3
Notas:
1.- Sólo figuran los homófonos que aparecen en el criptograma.
2.- Se excluye '00' por ser el indicador de final de una parte cifrada cuando el número de homófonos de la misma es impar, es decir, por no tener significado en el texto en claro.
3.- Se han corregido los tres errores de cifrado o transmisión detectados en el
post anterior, ya que si no, al no ser reales las frecuencias de aparición de los homófonos implicados en dichos errores, sería más difícil realizar un criptoanálisis con éxito.
4.- Clasificación de mayor a menor número de apariciones en el criptograma.
5.- Como referencia se calcula la frecuencia de aparición x 3 considerando que cada homófono tiene 1/3 de probabilidades de ser elegido para representar a su letra.
Inicialmente, con tan pocos homófonos (159), no me atrevo a basar el criptoanálisis en un análisis de frecuencias de caracteres, bigramas,..., ya que entiendo que los datos de las mismas no son demasiado fiables, pero dichos datos me servirán más tarde para hacer conjeturas adicionales, ratificar las ya hechas o desechar las conjeturas que se revelen como falsas. Por tanto, en primer lugar voy a hacer una comprobación para ver si se da una circunstancia que me permitiría iniciar el criptoanálisis de otra manera.
Dicha comprobación trata de averiguar si la asignación de los homófonos a cada letra del texto en claro en el momento del cifrado se ha realizado eligiendo éstos de forma aleatoria o secuencial, ya que si fuera secuencial es posible que pueda reconstruir los homófonos de algunas columnas (caracteres). La forma de asignar secuencialmente los homófonos fue empleada en ocasiones durante la guerra civil, pero, por lo dicho, no creo que era una buena idea.
Me explico: en teoría, si los homófonos se han asignado secuencialmente, cada uno de los tramos de homófonos que se encuentran entre dos apariciones de un mismo homófono deben contener los homófonos que están en la misma columna que este último. Es decir, lo hago con 15, el homófono con mayor frecuencia de aparición en el criptograma:
Para obtener todos los homófonos que están en la misma columna que 15, formo conjuntos (S) con los homófonos que están entre dos apariciones de ese mismo homófono (15):

Y a partir de aquí, la intersección de estos 6 conjuntos debe contener los homófonos que están en la misma columna que 15. Pero esto, aunque se haya pretendido seleccionarlos secuencialmente, en la práctica no siempre tiene por qué ser así, ya que se han podido cometer errores en la asignación (repetir un homófono, saltárselo,etc.), por lo que habrá que tener en cuenta determinadas circunstancias para decidir sobre los mejores candidatos a estar en la misma columna que 15.
Por el resultado obtenido para esta columna creo que es bastante probable que sus homófono se hayan asignado secuencialmente, aunque como se ve a continuación hay un tramo en el que no se asigna 79; en su lugar se vuelve a asignar 15 y después se asigna 79...:
15, 41, 79
15, 41, 79
15, 41
15, 79
15, 41, 79
15, 41, 79
Repito este proceso con el siguiente homófono de mayor frecuencia de aparición en el criptograma (11):
Igual que en el caso de la primera columna, creo que es bastante probable que los homófono de esta segunda columna se hayan asignado también secuencialmente, aunque como se ve a continuación en el cuarto tramo se asigna 11 y a continuación se repite este mismo homófono...:
11, 45, 60, 84, 93
11, 45, 60, 84, 93
11, 45, 60, 84, 93
11
11, 45, 60, 84, 93
Repitiendo este proceso con otros homófonos puedo inferir alguna cosa más, pero, de momento, me quedo con la reconstrucción de estas dos primeras columnas.
No sé a qué carácter corresponden los homófonos de cada una de estas dos columnas, pero en la práctica la sustitución homofónica para el carácter al que están asignados se ha convertido en una sustitución simple monoalfabética, por lo que la suma de las frecuencias de aparición de los homófonos de cada columna y su comparación con la tabla para las frecuencias esperadas de los caracteres en un texto en claro escrito en español, puede darme una primera pista de a qué carácter corresponde cada columna:
Comparando estos resultados con la tabla de frecuencias de aparición esperadas para los caracteres de un texto escrito en español, podría ser que los homófonos de la segunda columna se correspondieran con la letra 'E', pero voy a intentar averiguar a qué carácter corresponden los homófonos de cada una de ellas mediante el análisis de frecuencia de bigramas:
- En el criptograma hay 6 bigramas que comienzan por uno de los homófonos de la segunda columna y finalizan con uno de los homófonos de la primera columna:
1115, 6041 (2 veces), 8479, 9315, 9379
Los dos bigramas más frecuentes en español son: 'ES' y 'EN', lo que viene a ratificar que los homófonos de la segunda columna se corresponderían con 'E', mientras que lo más probable es que los de la primera se correspondan con 'S' o 'N' (inicialmente voy a pensar que con 'S'), por lo que ya tendríamos reconstruidas dos columnas de la tabla de homófonos:
E: {11, 45, 60, 84, 93}
S: {15, 41, 79}
Por otra parte, el bigrama que más se repite en el criptograma, 3 veces, es 5615. Si el 15 es 'S' y como 56 no sería 'E' (no está entre los que he asignado a 'E'), es muy probable que 56 sea 'O' o 'A', ya que 'OS' y 'AS' son después de 'ES' los bigramas más frecuentes en español que terminan con 'S'. Inicialmente, voy a asignarlo a 'O', ya que 'OS' es más frecuente que 'AS' y la frecuencia de aparición en el criptograma observada para 56 está más cerca de la esperada para 'O' que para 'A'.
Portanto, de momento, la tabla de homófonos quedaría como sigue:
E: {11, 45, 60, 84, 93}
S: {15, 41, 79}
O:{56}
Primera aproximación:
Ahora y teniendo en cuenta todo lo anterior, para continuar con el criptoanálisis voy a realizar un ataque de texto claro conocido ('
Known Plaintext Attack'), pero esto lo dejo para la siguienta entrada de este blog.
Quizás también te interese:
Comentarios
Publicar un comentario