martes, 23 de septiembre de 2008

Criptografía (II)

Hoy veremos los comienzos de la parte oscura...el criptoanálisis.


Los primeros indicios de criptoanálisis aparecen en la cultura islámica a finales del siglo IX d.c. 
Abú Yusuf Yaqub ibn Ishaq ibn as Sabbah ibn 'omran ibn Ismail al Kindi, para los amigos Al Kindi, fue un filósofo árabe autor de casi 300 libros de diferente temática, entre ellos estaba (descubierto en 1987) uno titulado "Sobre el desciframiento de mensajes criptográficos", y aquí nos describe la forma de desencriptar un mensaje codificado mediante la sustitución monoalfabética.
Lo que nos viene a decir en pocas palabras que en Europa eramos unos atrasados de tres pares, pues aquí no nos enteramos de anda hasta el siglo XVI.
Durante años la cultura islámica fue una poderosa fuente de erudición, y el estudio teológico fue el culpable del nacimiento del criptoanálisis. Los teólogos se interesaron por establecer la cronología de las revelaciones de Mahoma de manos del arcángel Gabriel. Estas revelaciones son las que forman los 114 capítulos del Corán. Pues bien, la forma para poder datar estar revelaciones anotadas por diferentes personas a lo largo de la vida del profeta se basaba en estudiar la etimología de las palabras y la estructura de las frases. Algunas palabras habían evolucionado relativamente hacía poco, por eso si en alguna revelación había muchas de estas nueva palabras, ésta sería más actual que otra.
Pero puestos a investigar, no se quedaron ahí, sino que analizaron las letras individuales  concluyendo que algunas letras se repiten más que otras en un escrito. 
(Si, claro ahora todo el mundo lo sabe, es algo obvio, pero haberlo descubierto tú.)
Bien, pues de este simple dato a poder descifrar un codigo monoalfabético hay un paso muy simple.
Vamos a verlo en un ejemplo práctico. Imaginemos que interceptamos un mensaje del enemigo con la inscripción de más abajo. Como estamos en España en el siglo XIII o XIV pues imaginamos que lo más lógico es que esté cifrado con una cifra monoalfabética, pues todo el mundo sabe que es indescifrable. Pero nosotros que vamos mucho a la biblioteca leimos hace poco el tratado de un tío con un nombre muy largo que explicaba como romper esta cifra fácilmente. Así que nos ponemos manos a la obra.

LD ULDLICA AFJ CDXBCALJ JFAF GMLVLD CAXBLDKCIJL VL CHMLAAF HML ALJ VXRKC JM DCKMICALSC MDC UXICTC DF GFVIXC JFEILNXNXI C ECJL VL RCIDL DX MD CUMXAC VL WFYCJ. BMRWCJ LJGLRXLJ LJKCD LJGLRXCAXSCVCJ LD JMJ DLRLJXVCVLJ VXLKLKXRCJ.

Para poder descifrar el texto se tiene que tener alguna base sobre el idioma en el que está escrito el texto llano. Supongamos que esta escrito en Castellano, que es el que mejor conocemos. 
Sabemos, porque hemos hecho muchos cálculos antes, que las letras que más aparecen de promedio en un texto son las siguientes, de más a menos: e, a, o, s, n, r, i, l, d, u, t, c, ...
Si analizamos el texto sacamos algunas frecuencias para ciertas letras, la L aparece 30veces, la C 27, la J 20, la X 15, la D 14, la A 11, la M 10, la F 8, la I 8, la V 8, la K 6, ...
Supongamos que  la L corresponde a la letra llana "e" y la C a la "a"
Cambiemos estas dos letras para ver que ocurre.

eD UeDeIaA AFJ aDXBaAeJ JFAF GMeVeD aAXBeDKaIJe Ve aHMeAAF HMe AeJ VXRKa JM DaKMIaAeSa MDa UXIaTa DF GFVIXa JFEIeNXNXI a EaJe Ve RaIDe DX MD aUMXAa Ve WFYaJ. BMRWaJ eJGeRXeJ eJKaD eJGeRXaAXSaVaJ eD JMJ DeReJXVaVeJ VXeKeKXRaJ.

Volvamos a las frecuencias, la tercera letra que más aparece es la J, que podría corresponder con la "o", pero vemos que hay muchas palabras que acaban con J, y no es muy normal en castellano palabras acabadas en "o", así que la siguiente en el orden de frecuencia es la "s" y ésta sí que aparece mucho en finales de palabra, para formar plurales. Sustituimos.

eD UeDeIaA AFs aDXBaAes sFAF GMeVeD aAXBeDKaIse Ve aHMeAAF HMe Aes VXRKa sM DaKMIaAeSa MDa UXIaTa DF GFVIXa sFEIeNXNXI a Ease Ve RaIDe DX MD aUMXAa Ve WFYas. BMRWas esGeRXes esKaD esGeRXaAXSaVas eD sMs DeResXVaVes VXeKeKXRas.

La penúltima palabra sMs, como estamos en la edad media no puede ser sms así que la única posibilidad es que sea "sus". Probamos a cambiar las M por "u".

eD UeDeIaA AFs aDXBaAes sFAF GueVeD aAXBeDKaIse Ve aHueAAF Hue Aes VXRKa su DaKuIaAeSa uDa UXIaTa DF GFVIXa sFEIeNXNXI a Ease Ve RaIDe DX uD aUuXAa Ve WFYas. BuRWas esGeRXes esKaD esGeRXaAXSaVas eD sus DeResXVaVes VXeKeKXRas.

Podemos conjuntar la antepenúltima palabra y la última para formar "en sus" pues parece que sea probable, debido a que la letra "n" está en el quinto puesto de frecuencias, y como ya tenemos la "e", la "a", la "s" y la "o" no puede ser porque no queda demasiado bien "eo" vamos a probar con la "n" a ver si vemos algo raro en alguna otra palabra.


en UeneIaA AFs anXBaAes sFAF GueVen aAXBenKaIse Ve aHueAAF Hue Aes dXRKa su naKuIaAeSa una UXIaTa nF GFdIXa sFbIeNXNXI a base de RaIne nX un aUuXAa de WFYas. BuRWas esGeRXes esKan esGeRXaAXSadas en sus neResXdades dXeKeKXRas.

Podemos seguir probando con conjuntos de palabras lógicos como: "a Ease Ve" que podría ser "a base de" con lo que cambiamos la E por la "b" y la V por la "d"

La penúltima palabra podría ser Necesidades, así que comprobamos cambiando la R por la "c" y la X por la "i"

en UeneIaA AFs aniBaAes sFAF Gueden aAiBenKaIse de aHueAAF Hue Aes dicKa su naKuIaAeSa una UiIaTa nF GFdIia sFbIeNiNiI a base de caIne ni un aUuiAa de WFYas. BucWas esGecies esKan esGeciaAiSadas en sus necesidades dieKeKicas.

De la última linea podemos sacar "esKan" por "estan" y "diekekicas" por "dieteticas", de la palabra de la segunda linea "nF" sacamos "no" pues no puede ser otra cosa lógica pues "ni" no puede ser pues la "i" codifica como X.

Cambiamos todas estas letras, la K por la "t" y la F por la "o"

en UeneIaA Aos aniBaAes soAo Gueden aAiBentaIse de aHueAAo Hue Aes dicta su natuIaAeSa una UiIaTa no GodIia sobIeNiNiI a base de caIne ni un aUuiAa de WoYas. BucWas esGecies estan esGeciaAiSadas en sus necesidades dieteticas.

de la palabra "Hue" podemos afirmar que la H es una "q" por lo que "aHueAAo" puede ser "aquello" con lo que la A puede ser la letra "l" pues tambien concuerda con "soAo" para "solo"
Seguimos sustituyendo:

en UeneIal los aniBales solo Gueden aliBentaIse de aquello que les dicta su natuIaleSa una UiIaTa no GodIia sobIeNiNiI a base de caIne ni un aUuila de WoYas. BucWas esGecies estan esGecialiSadas en sus necesidades dieteticas.

La frase "los aniBales solo Gueden aliBentaIse de aquello que les dicta su natuIaleSa" puede ser "los animales solo pueden alimentarse de aquello que les dicata su naturaleza" con lo que sacamos la B como "m" la G como "p" la I como "r" y la S como "z"
Al cambiar estas letras la palabra "BucWas" se convierte en "MucWas", que podría ser "Muchas" con lo que la W es una "h" y la palabra "WoYas" se convierte en "hoYas" que podremos facilmente por el contexto convertir en "hojas" y así completamos el mensaje que nos confirma que el enemigo esta como una cabra o que nos ha querido tener entretenidos una hora para poder atacarnos por la retaguardia.

Al final el texto queda así: "En general los animales solo pueden alimentarse de aquello que les dicta su naturaleza. Una girafa no podría sobrevivir a base de carne ni un águila de hojas. Muchas especies estan especializadas en sus necesidades dietéticas."

Esta claro que un texto corto mediante este método puede que no nos de tanto juego ni con las frecuencias ni con el contexto. Además se podrían haber unido las palabras para hacer más difícil la detección de palabras con sentido. También se podrían haber añadido simbolos neutros sin correspondencia o escribir con faltas de ortografía que no supondrian ningun problema para leer para el que tuviera la clave, pero que mantendría entretenido mucho más tiempo al criptoanalista. Pero al final era cuestión de más o menos horas o alguno días para terminar descifrando el mensaje, pues la debilidad se encontraba en el propio algoritmo, sin importar demasiado la clave utilizada.

Pues esto fue más o menos lo que le paso a María Estuardo de Escocia, que a finales del siglo XVI ya había alguien en europa que sabía como descifrar sus mensajes facilmente y que mala suerte que estuviera del lado de la reina Isabel de Inglaterra.

Así que a partir de ahora habría que buscar alguna cifra más resistente al criptoanálisis.
Empezó la lucha  entre criptógrafos y criptoanalistas.

No hay comentarios: