Cifrado de Vigenère: halla la longitud de clave y descífralo

Una clave de L letras convierte el mensaje en L cifrados César intercalados. Escribe el texto cifrado en filas de k letras y cuenta las coincidencias a lo largo de cada columna: con el valor adecuado de k, cada columna vuelve a ser inglés. Avanza paso a paso por el ataque o elige tú mismo una barra.

Cargando simulación interactiva...

Lección

La teoría — Cifrado de Vigenère: halla la longitud de clave y descífralo

El cifrado de Vigenère suma al mensaje una clave que se repite, letra por letra. Asignando A = 0 hasta Z = 25, la letra cifrada i es (letra del mensaje i + letra de la clave i mod L) mod 26, de modo que cada letra de la clave aplica un desplazamiento César a cada L-ésima letra. El índice de coincidencia de N letras, IC = Σ n(n − 1) / (N(N − 1)), representa la probabilidad de que dos letras elegidas en posiciones distintas coincidan: 1/26 = 0,0385 en letras al azar y cerca de 0,066 en inglés. La prueba de Friedman dispone el texto cifrado en filas de k letras y cuenta las coincidencias a lo largo de las columnas: con la longitud de la clave, y con sus múltiplos, cada columna es inglés desplazado y su IC vuelve a alcanzar el del inglés. La prueba de Kasiski, publicada en 1863, descompone en factores las distancias entre grupos de letras repetidos.

Qué significa cada símbolo

L
número de letras de la clave
k
longitud de clave a prueba: número de columnas en las que se reparte el texto cifrado
N
número de letras del mensaje
n
en la fórmula del IC, veces que aparece una misma letra
Supone
Solo letras: se eliminan mayúsculas, espacios y signos de puntuación antes de cifrar, tal como hacía Carroll en su tarjeta. Por «inglés» se entiende aquí el capítulo I de Las aventuras de Alicia en el país de las maravillas, de 8.606 letras; sus frecuencias de letras y su IC de 0,0665 sirven de referencia en todas las pruebas, y los ensayos que miden el éxito toman fragmentos de ese mismo capítulo, lo que favorece ligeramente al ataque. La longitud de clave se define como el menor valor de k cuyo IC medio por columna alcanza al menos tres cuartas partes del camino entre 1/26 y el inglés. Las claves aleatorias eligen cada letra de forma uniforme, por lo que pueden repetirse; si una clave repite sus letras a la mitad de su longitud, la barra situada en esa mitad puede superar la línea.

De media, cada barra alcanza mcd(k, L)/L del camino hacia el inglés 🖖

Pulsa RABBIT, 600 letras y observa las barras. Al repartir el texto en k columnas, cada una mezcla los alfabetos de L/mcd(k, L) letras de la clave y, promediando sobre las posibles claves, conserva mcd(k, L)/L de la distancia que separa el azar del inglés. Para las seis letras de RABBIT, eso sitúa las barras 6, 12 y 18 arriba del todo, la 3, la 9 y la 15 a media altura, los demás valores pares de k a un tercio del recorrido y el resto a un sexto; aquí las barras quedan del 98 al 106%, del 42 al 52%, del 26 al 37% y del 9 al 23%. La barra 1 representa todo el texto cifrado, de modo que una clave de diez letras deja, de media, una décima parte del desnivel del inglés en el recuento de letras, mientras que cada décima letra sigue siendo inglés puro. Al promediar sobre 100 claves aleatorias de cada longitud de 1 a 12, cada una de las veinte barras queda a menos de un 3% de diferencia de donde predice mcd(k, L)/L. La edición de 1935 del artículo de Friedman sobre el índice de coincidencia da los dos extremos: ,066 para un periodo correcto y ,038 para uno erróneo. Este capítulo da 0,0665, y 1/26 es 0,0385. La línea se sitúa a tres cuartas partes de altura porque la barra en L/2 cae, de media, hacia la mitad, y algo por debajo cuando las columnas son cortas.

Cada letra de la clave es un cifrado César más por resolver 🖖

Pulsa Clave de doce letras. La longitud es la correcta, y cada una de las doce columnas es ahora un cifrado César de 18 letras que se resuelve probando los 26 desplazamientos contra las frecuencias del capítulo. Once se descifran bien. La columna 5 solo contiene dos E y tres R, y el desplazamiento que convierte cada R en una E encaja con el inglés un poco mejor que el auténtico. Una sola columna de 30 letras se descifra bien el 98% de las veces, pero la clave exige acertar todas: en más de 2.000 fragmentos de este capítulo a 30 letras por columna, las doce fueron correctas el 81% de las veces. Cada columna repite el ataque de César del nivel anterior, de modo que una clave larga multiplica las posibilidades de fallo: avanzando en pasos de cinco letras, una clave de doce letras se recupera entera por primera vez el 99% de las veces a partir de 55 letras por columna, 660 en total. Eso, una vez hallada la longitud. La propia prueba de las barras necesita más texto con una clave corta, porque promedia menos columnas: con 60 letras por columna, el ataque completo recupera una clave de una sola letra cerca del 87% de las veces, y una de doce letras, en más del 99%.

Una clave tan larga como el mensaje solo deja la E 🖖

Pulsa Clave igual al mensaje y avanza hasta el final. Veinte letras con veinte letras de clave dejan una sola letra en cada columna. No hay parejas que contar, de modo que la barra 20 no aparece, y el chi-cuadrado sobre una sola letra solo puede preferir el desplazamiento que la transforme en E, la letra más común del capítulo. Todas las columnas devuelven una E, y el descifrado solo acierta dos veces, en las dos letras E de «Alice was beginning to g». En todo el capítulo, la E representa 1.078 de 8.606 letras, un 12,5%, y con una letra por columna el ataque acierta un 12,6% en fragmentos de esa longitud: lo que ya sabía sobre el inglés, sin haber aprendido nada del texto cifrado. Si las veinte letras de la clave se eligen al azar y no se vuelven a usar jamás, cualquier mensaje de veinte letras encaja igual de bien con estas veinte letras cifradas. Esa es la libreta de un solo uso.

Problema resuelto al detalle

  1. ¿Tenía razón la tarjeta de cifrado de Carroll? 4 pasos

    Lewis Carroll mandó imprimir una tarjeta que explicaba este cifrado. No tiene fecha; sus cartas sobre el envío de una palabra clave son de abril de 1868, cinco años después del libro de Kasiski. En la tarjeta se cifra «meet me on Tuesday evening at seven» con la palabra clave vigilance y se promete que será «imposible para cualquiera que ignore la palabra clave descifrar el mensaje, aun con ayuda de la tabla». Pulsa Tarjeta de Carroll: ¿consigue esta página leer su mensaje? Cifra luego el inicio del capítulo I con esa misma palabra clave. ¿Cuántas letras necesita la herramienta para recuperar VIGILANCE?

    Abre este problema en la herramienta

    1. Comprueba una letra a mano. La m vale 12 y la v vale 21; 12 + 21 = 33, y 33 − 26 = 7, que corresponde a la h. El texto cifrado que muestra la página, HMKBXEBPXPMYLLYRXIIQTOLTFGZZV, coincide letra por letra con el de Carroll.

    2. 29 letras en 9 columnas da dos columnas de 4 y siete de 3. Ningún grupo de tres letras se repite, así que Kasiski no tiene nada que factorizar. Ninguna barra alcanza la línea en 0,0595; la más alta es k = 9, con 0,0556, así que la longitud se acierta. Sin embargo, calcular el chi-cuadrado sobre tres o cuatro letras es casi como tirar una moneda: la clave recuperada resulta ser HIGXXLNPM, con solo 3 de sus 9 letras correctas y 10 de las 29 letras del mensaje.

    3. Pulsa VIGILANCE, 189 letras: el comienzo del capítulo con la palabra clave de Carroll, a 21 letras por columna. La barra 9 es la primera sobre la línea, con 0,0794, y 4 de las 5 distancias entre grupos repetidos son múltiplos de 9 (54, 36, 27 y 72; la quinta es 29). Las nueve columnas se resuelven correctamente, y con ellas las 189 letras.

    4. Ajusta las letras a 188. La longitud sigue siendo 9, pero la columna 9 tiene ahora 20 letras y encaja mejor con la T que con la E: se recuperan 168 de las 188 letras. La letra número 189 cae en la columna 9 y decanta el resultado hacia la E.

    Respuesta

    En la página, el mensaje del propio Carroll resiste y las 189 letras de Alicia caen. Tres o cuatro letras por columna son muy pocas para un recuento útil, y la clave devuelta es HIGXXLNPM; 21 letras por columna bastan para descifrar VIGILANCE. Lo que protegió su mensaje fue su brevedad. Si alguien que adivinara una de sus palabras (pongamos por caso, «Tuesday») podría haber leído el resto, es algo que esta página no puede comprobar: aquí solo se cuentan letras.

Ruta de aprendizaje

Cómo se rompen los códigos

Referencias (3)