Ejercicio teórico/práctico exhaustivo de ataque a Vigenère por Kasiski Práctica de ayuda para la primera Actividad Ocultar Descripción completa En el cuarto centenario de la la muerte de Cervantes, vamos a hacer lo siguiente: 1) Ejecutar el programa Criptoclasicos v21. http://www.criptored.upm.es/software/sw_m001c.htm 2) Abrir la pestaña de Vigenère. 3) Ir a esta web (http://www.elmundo.es/quijote/capitulo.html?cual=1) y copiar en el portapapeles los dos primeros párrafos, es decir: "En un lugar ... un punto de la verdad. Es, pues, de saber, ... continuos pensamientos no se lo estorbaran." 4) Abrir Word, copiar ese texto del portapapeles. En Pestaña Revisar y opción Contar palabras, comprobar que el texto en claro tiene 2.487 caracteres sin espacios (en realidad 2.418 letras, quitando signos). Hecho esto, cerrar el Word sin guardar el archivo. 5) Copiar ese texto en claro en la ventana de entrada de Vigenère en Criptoclasicos v21. 6) Elegir como clave Cervantes. 7) Cifrar el texto en claro (observar el informe). 8) Copiar y cortar el texto cifrado y pegarlo en la ventana de entrada de Vigenère. 9) Dar a la opción "Descifrar" y comprobar que se obtiene el texto en claro, sin espacio y sin signos porque trabajamos mod 27. 10) Cambiar la clave Cervantes ahora por Cervante (sin la s) y volver a descifrar. ¿Qué pasa? Justificar lo que sucede. 11) Para comprobar que el programa no guarda las claves, ir a Clave que ahora pone Cervante, y borrarla. Ante el mensaje que la clave está vacía, obviarlo. 12) Con el criptograma en la "Entrada" del software, dar a "Criptoanalizar".
13) Observar las cadenas repetidas en el criptograma pinchando en esas "palabras" y observando dónde están esas cadenas en el Texto cifrado. 14) Elegir que el tamaño de la repetición sea 5 porque con tamaños 2, 3 y 4 el ataque falla pues el mcd (todas las separaciones) = 1. 15) Comprobar que la clave que aparece es CERVANTES. 16) Debajo de esa clave propuesta, dar a "Descifrar" y comprobar que se recupera el texto en claro. 17) Lo que ha hecho el programa es que el mcd de todas esas separaciones de cadenas 5 o más letras (observa que las repeticiones de longitud 4 o menor se han quitado de esa zona izquierda) le ha dado 9 y supone que la clave tiene 9 letras, y así es porque CERVANTES tiene 9 letras. 18) ¿Cómo sabe que la primera letra es la C, la segunda es la E, etc.? 19) Va leyendo el criptograma de 9 en 9 letras, es decir: (G)QMILHZEK(F)ICVMNGGZ(C)HVXULIQH(Ñ)FJZNBKYA(G)VGV... Criptograma C1: GFCÑG ... Criptograma C2: QIHFV ... etc. hasta: Criptograma C9. 20) Encuentra las frecuencias de las letras en C1, C2,... C9. Como cada uno de ellos se ha cifrado con una sola letra; C1 con la C, C2 con la E, ... C9 con la S, de CERVANTES, se trata de cifras monoalfabéticas. 21) Las estadísticas del lenguaje y por tanto su redundancia TAMBIÉN se manifiestan en este caso. 22) Comprobad las letras más frecuentes de los subcriptogramas C1 hasta C9, por ejeplo para la primera fila: Para C1 Rojo=54, Verde=28, Celeste=15, Amarillo=22. Como del rojo al verde hay 4 espacios, del verde al celeste hay 11 espacios y del celeste al amarillo hay 4 espacios, esos son los espacios que separan a las letras más frecuentes del español, la A, la E, la O y la S.
Por lo tanto, la posición del color rojo marca a la letra y como A=0, entonces Clave + A = Clave + 0 = Clave, y se obtiene así la letra de la clave en esa posición. 23) Comprobad que para todos C2, C3, ... C9 se cumple muy bien esta regla AEOS. 24) ¿Por qué se cumple la regla? Porque como teníamos 2.418 letras al cifrar con una clave de 9 letras (CERVANTES) formaremos 9 subcriptogramas cada uno de 2.418/9 = 268 letras. Es que con 100 o más letras en cada uno de esos subcriptogramas C1 hasta C9, la redundancia del lenguaje se manifiesta claramente en esos subcriptogramas (mirad la píldora Thot de ataque Kasiski a Vigenère; ahí se explica). 25) Vamos a comprobar ahora que incluso con una clave el doble de grande, seguimos teniendo éxito con el ataque. 26) Recuperar el texto en claro. Cuidado, ya que el último descifrado no era el correcto. 27) Poner como clave "El Quijote de La Mancha", de 19 letras. 28) Cifrar el texto. 29) Descifrar y comprobar que se recupera el texto en claro. 30) Copiar el criptograma en la Entrada y darle a criptoanalizar. 31) Elegir un tamaño de repetición 5 32) Comprobar que se obtiene como clave ELQUIJOTEDELAMANCHA de 19 letras. 33) Observación: en este caso cada subcriptograma C1, C2, ... C19, tendrá 2.418/19 = 127 letras, y ha funcionado correctamente. Cuidado: si se elige tamaño de repetición 7, la máxima, el programa Criptoclasicos parece quedarse colgado, pero no es verdad, simplemete está realizando muchos cálculos. Al cabo de uno o dos minutos responde. 34) Rizando el rizo. Repetir el ejercicio usando ahora esta clave de 30 letras "El Quijote de La Mancha de
Cervantes" y ver qué sucede con el ataque. Usa nuevamente como tamaño de repetición 5. 35) Observa la clave que te entrega como posible Criptoclasicos. Descifra el criptograma y observa que falla en una sola letra en las posiciones k*16 (k=1, 2, 3 ...), e.g. ENUNLUGARDELAMANCHADECUYO(J)OMBRENOQUIEROACORDARME... ¡Ha fallado en una sola letra! Ten en cuenta que ahora tenemos una clave de 30 letras ELQUIJOTEDELAMANCHADECERVANTES, y por tanto estamos haciendo estadísticas del lenguaje en módulo 27 en subcriptogramas que cuentan SOLAMENTE con 2.418/30 = 80 letras ... ¿increíble verdad? 36) Vamos a ayudarle a encontrar la clave. Hazlo forzando que esa letra en la posición 26 de la clave sea la A en vez de la E, y vuelve a descifrar. ¡Misión cumplida! REFLEXIÓN: Espero nos haya quedado claro qué significa la redundancia del lenguaje, que tan bien estudió Claude Shannon en los años 1948 y 1949, y que nos permite criptoanalizar a casi todos los sistemas de cifra clásicos. Buen fin de semana.