Criptografía Vigenere Criptoanalisis
Criptografía Vigenere Criptoanalisis
Criptografía Vigenere Criptoanalisis
Ya he escrito algunas entradas en este blog (ver primer post) sobre cifrados de sustitución
polialfabética, entre otros sobre el cifrado de Vigenère, y también sobre el método Kasiski
para atacar cifrados de este tipo, y en este post me propongo explicar lo que he
entendido sobre el criptoanálisis basado en el Índice de Coincidencia (IC).
Este método de criptoanálisis fue desarrollado en 1920 por William Friedman para atacar
cifrados de sustitución polialfabética con claves periódicas, sistemas criptograficos de los
que el cifrado de Vigenère es un ejemplo.
Como ya sabemos, en estos sistemas de cifrado, de los que como digo el cifrado de
Vigenère es un ejemplo, para cifrar un texto o mensaje en claro se utiliza una clave
donde cada carácter de la misma se corresponde con un alfabeto, de tal forma que el
primer carácter del texto en claro se cifra con el alfabeto correspondiente al primer carácter
de la clave, el segundo carácter del texto en claro con el correspondiente al segundo y así
hasta agotar todos los caracteres de la clave, momento en el cual el siguiente carácter del
texto en claro se cifra nuevamente con el alfabeto correspondiente al primer carácter de la
clave, y así sucesivamente, es decir:
Donde:
K: clave.
ki: carácter i-ésimo de la clave (1 ≤ i ≤ t).
t: periodo o longitud de la clave o, lo que es lo mismo, número de alfabetos.
E: función de cifrado.
mi: carácter i-ésimo del mensaje o texto en claro a cifrar.
D: función de descifrado.
ci: carácter i-ésimo del criptograma o texto cifrado.
n: tamaño del alfabeto.
1.1.- En primer lugar establezcamos una relación entre las letras del alfabeto español y la
posición que ocupa cada una de ellas en el mismo:
1.6.- Cifrado:
1.7.- Descifrado:
2.1.- El número de pares de letras “AA” que podemos obtener tomando 2 letras al azar de
un texto es:
Por tanto, el número de pares de letras iguales que podemos obtener tomando 2 letras al
azar de un texto es:
2.2.- Por otra parte, el número de pares de letras tomadas al azar que podemos obtener de
un total de N letras (tamaño del texto) es:
2.3.- Por lo que la probabilidad de que dos letras tomadas al azar de un texto con un tamaño
de N letras sean iguales (IC) es:
3.- ¿Cómo se utiliza el Índice de Coincidencia (IC) para atacar cifrados de sustitución
polialfabética con claves periódicas?:
Como ya he comentado, lo primero que hay que hacer para atacar este tipo de cifrados
es averiguar la longitud de la clave, y para eso precisamente se utiliza el Índice de
Coincidencia (IC).
Me explico: tal y como he leído por ahí, el IC obtenido a partir de un texto en el idioma
español estará próximo a 0,0775 (lógicamente siempre y cuando el texto sea lo
suficientemente grande, aunque ni siquiera hace falta que sea muy extenso para que el IC se
aproxime a ese valor).
De lo anterior se deduce que si calculamos el IC para las letras del criptograma que
conforme a cada una de las posible longitudes de la clave hayan sido cifradas con el
alfabeto correspondiente al mismo carácter de la clave sólo obtendremos valores
próximo a 0,0775 para la longitud de la clave realmente usada en el cifrado. Es decir:
- Longitud de la clave (t) = 1: calculamos el IC de todo el texto cifrado. En este caso todos
los caracteres del texto en claro habrían sido cifrados por el alfabeto correspondiente al
único carácter de la clave y, por tanto, se habría utilizado un único alfabeto, es decir, se
trataría realmente de una sustitución monoalfabética. Si el IC calculado está próximo a
0,0775 la clave empleada en el cifrado podría tener una longitud de 1.
- Longitud de la clave (t) = 3: formamos tres subcriptogramas (C1, C2, y C3) el primero
compuesto por los caracteres del criptograma 1º, 4º, 7º, 10º, 13º,..., el segundo por 2º, 5º, 8º,
11º, 14º,... y el tercero por 3º, 6º, 9º, 12º, 15º..., ya que los caracteres de C1 habrían sido
cifrados con el alfabeto correspondiente a la primera letra de la clave, los de C2 con el
alfabeto correspondiente a la segunda y los de C3 con el alfabeto correspondiente a la
tercera, y calculamos el IC de cada uno de estos tres subcriptogramas. Si los IC calculados
están próximos a 0,0775 la clave empleada en el cifrado podría tener una longitud de 3.
...