Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Análisis frecuencias

Criptografía (CCLXIX): Calificación de la aptitud ('fitness') de un texto en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En este post incluyo un  script en python que implementa la calificación de un texto  respecto al español o inglés, es decir para la obtención de una calificación o puntuación de un texto dado con objeto conocer si éste se asemeja más o menos a un texto escrito en uno de los citados idiomas. Como decía en este post , esto nos puede servir para automatizar el criptoanálisis de cifrados clásicos. El script que pondré a continuación utiliza estadísticas de tetragramas , es decir, la frecuencia relativa de aparición de grupos de cuatro letras consecutivas en ambos idiomas. De tal forma que  se divide el texto que se desea calificar en tetragramas y se suman los logaritmos de las probabilidades de aparición de cada uno de ellos en el idioma correspondiente. Cuanto mayor sea el valor obtenido mayor probabilidad de que el texto sea del idioma al que quer...

Criptografía (CCLXVIII): Criptoanálisis mediante análisis de frecuencias (III)

Decía en el post anterior  sobre el análisis de frecuencias que conocer la frecuencia relativa de  los monogramas (letras), bigramas (grupos de dos letras), trigramas (grupos de tres letras) y tetragramas (grupos de cuatro letras)  en un determinado idio ma puede ayudarnos a  determinar cuánto se parece un texto descifrado a un texto escrito en ese idioma y, por tanto, que nos  puede servir para automatizar el criptoanálisis , por ejemplo, de los cifrados por  sustitución simple monoalfabética . Para romper un cifrado de este tipo mediante la técnica del  análisis de frecuencias   iremos descifrando el criptograma objeto de análisis con diferentes claves (alfabetos de sustitución) y comprobando si los textos que se van produciendo se van pareciendo cada vez más a un texto escrito en el idioma en el que se escribió el mensaje . Si esto ocurre vamos por el buen camino y continuaremos probando más claves hasta encontrar un texto en claro total o...

Criptografía (CCLXVII): Criptoanálisis mediante análisis de frecuencias (II)

Decía en el  post anterior que iba a poner más información sobre el criptoanálisis mediante  el análisis de frecuencias y que éste  consiste , básicamente,  en estudiar la frecuencia de aparición en el criptograma de caracteres o símbolos y de grupos de ellos (monogramas:  un carácter o símbolo; bigramas o digramas: dos caracteres o símbolos consecutivos; trigramas: secuencias de tres caracteres o símbolos, tetragramas: cuatro caracteres o símbolos consecutivos, etc.) con relación a la frecuencia de las letras y grupos de éstas en el idioma en el que está escrito el texto en claro. Pues bien, lógicamente, lo primero que tenemos que saber es la frecuencia de las letras y de grupos de éstas (n-gramas)  en los idiomas en los que estén escritos los textos en claro correspondientes a los mensajes cifrados que vayamos a criptoanalizar y, tomando como referencia lo indicado en Wikipedia para la frecuencia de aparición de las letras , construyo la siguiente tabl...

Criptografía (CCLXVI): Criptoanálisis mediante análisis de frecuencias (I)

Allá por el siglo IX, Al-Kindi , un filósofo y matemático árabe, fue el primero que se dio cuenta, o al menos que lo documentó, de que se podía atacar un texto cifrado mediante la estadística del lenguaje en el que estuviera escrito el texto en claro, ya que ciertas características del mismo se trasladaban al criptograma. Por ello, entiendo que podría ser considerado como el padre del criptoanálisis e incluso como el primer 'hacker' de la historia. El análisis de frecuencias consiste , básicamente, en estudiar la frecuencia de aparición en el criptograma de caracteres o símbolos y de grupos de ellos (monogramas: un carácter o símbolo; bigramas o digramas: dos caracteres o símbolos consecutivos; trigramas: secuencias de tres caracteres o símbolos, tetragramas: cuatro caracteres o símbolos consecutivos, etc.) con relación a la frecuencia de las letras y grupos de éstas en el idioma en el que está escrito el texto en claro. La técnica del  análisis de frecuencias   es muy...

Criptografía (CCLXIII): Ataque mediante análisis de frecuencias al cifrado afín en python

Ya puse una  entrada  con un script en python para cifrar y descifrar textos en claro y criptogramas, respectivamente, utilizando el  cifrado afín , y  otra  con un script en python para atacar criptogramas cifrados con este  criptosistema   sin saber   ni la constante de decimación ni la de desplazamiento empleadas en el cifrado . El script que puse en el segundo de los citados posts utilizaba un tipo de ataque denominado  ataque de fuerza bruta , que consiste en probar todas las posibles claves (en este caso, desplazamientos) hasta encontrar aquella que se utilizó en el cifrado, es decir, aquella cuya aplicación en el descifrado del criptograma produzca un texto en claro inteligible; lo que en el caso de este criptosistema,  recorrer el espacio de claves hasta encontrar la clave correcta, es perfectamente posible realizar  porque, aunque el espacio de claves es muy superior al del  cifrado César , es una tarea que queda al al...