RU EN ES 中文

Cifrado de Vigenère

Un cifrado polialfabético considerado «indescifrable» durante tres siglos, que cambió el curso de la criptografía

¿Para qué sirve esto?

Imagina que eres Alicia, una diplomática del Renacimiento. Necesitas enviarle un mensaje secreto a Bob, pero el correo no es seguro: las cartas se interceptan, se abren, se copian.

Un cifrado de sustitución simple (donde A→X, B→C, etc.) es fácil de romper con análisis de frecuencia: en cualquier idioma ciertas letras aparecen mucho más que otras, así que el símbolo más frecuente del texto cifrado probablemente sea la letra más común del alfabeto.

El cifrado de Vigenère resuelve este problema. En vez de un solo alfabeto, usa muchos alfabetos, alternando entre ellos según una palabra clave. La misma letra del texto plano se cifra de forma distinta según su posición, y el análisis de frecuencia deja de funcionar.

Este método era tan fiable que lo llamaban «le chiffre indéchiffrable»: «el cifrado indescifrable». No fue hasta 1863 que Friedrich Kasiski publicó un método para romperlo.

¿Cómo funciona?

La base del cifrado es la tabla de Vigenère: un cuadrado de 33×33 (para el alfabeto ruso), donde cada fila es el alfabeto desplazado una posición más.

1

Preparar la tabla

La primera fila es el alfabeto normal. Cada fila siguiente se desplaza una posición hacia la izquierda. La fila número K empieza con la K-ésima letra del alfabeto.

Ejemplo en inglés (primeras 3 filas):

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
2

Elegir una clave

Alicia y Bob acuerdan una palabra clave, por ejemplo CLAVE. Esta palabra se repite cíclicamente debajo del mensaje:

Mensaje: П Р И В Е Т М И Р У !
Clave: К Л Ю Ч К Л Ю Ч К Л
3

Cifrado

Para cada letra del mensaje:

  • Buscamos la fila según la letra de la clave
  • Buscamos la columna según la letra del mensaje
  • En la intersección está la letra cifrada

Fórmula: C = (P + K) mod N

donde P es la posición del texto plano, K la posición de la clave, N el tamaño del alfabeto y C el texto cifrado.

4

Descifrado

Bob usa la misma tabla, pero en orden inverso:

  • Fila = letra de la clave
  • En esa fila buscamos el símbolo del texto cifrado
  • La columna donde se encuentra da la letra original

Fórmula: P = (C − K + N) mod N

La matemática del cifrado de Vigenère
🔐 Cifrado
C = (P + K) mod N
Ejemplo:
Cifrando П con la clave К
П = letra 16 (índice 0), К = letra 11
(16 + 11) mod 33 = 27 → Ъ
🔓 Descifrado
P = (C − K + N) mod N
Ejemplo:
Descifrando Ъ con la clave К
Ъ = 27, К = 11, N = 33
(27 − 11 + 33) mod 33 = 16 → П
¿Por qué funcionaba esto?
Cada letra del texto plano se cifra con letras distintas según la posición de la clave. El análisis de frecuencia, que rompe los cifrados de sustitución simples, se vuelve inútil: la letra «O» puede convertirse en «A», «M», «Щ», etc.
Longitud de clave > 5 → alta resistencia
* En el juego, la tabla está visualizada: las filas y columnas se iluminan en cada paso para que veas el proceso en vivo.
Idea clave: La fuerza de Vigenère está en la repetición de la clave. Cuanto más larga y aleatoria sea la clave, más difícil será romperla. Pero precisamente esa repetición cíclica fue su debilidad: el método de Kasiski usa las repeticiones del texto cifrado para hallar la longitud de la clave y luego aplica análisis de frecuencia a cada «subcadena» por separado.

Y ahora, la verdadera magia

¿Qué harás en la simulación?

En el juego no solo lees sobre Vigenère: vives todo el ciclo, desde escribir el mensaje hasta una transmisión exitosa. Verás cómo una fórmula abstracta se convierte en una animación clara, y entenderás por qué este cifrado fue un gran avance para su época.

Para los curiosos

Contexto histórico

El cifrado fue descrito por primera vez por Giovan Battista Bellaso en 1553, pero se atribuyó erróneamente a Blaise de Vigenère, quien lo describió en 1586. El nombre se quedó, y hoy seguimos hablando del «cifrado de Vigenère».

¿Por qué se rompió?

En 1863, el oficial prusiano Friedrich Kasiski publicó un método que aprovecha las repeticiones en el texto cifrado. Si la misma frase del texto plano se cifra con el mismo fragmento de la clave, aparecerá la misma secuencia en el texto cifrado. La distancia entre esas repeticiones suele ser un múltiplo de la longitud de la clave.

Conociendo la longitud de la clave, el criptoanalista divide el texto cifrado en grupos (todas las letras cifradas con el primer símbolo de la clave, el segundo, etc.) y aplica análisis de frecuencia a cada grupo por separado.

Temas para profundizar

Si quieres profundizar en criptografía, estos son los temas clave:

Análisis de frecuencia

Cómo la estadística del lenguaje ayuda a romper cifrados: frecuencias de letras, bigramas y trigramas

Método de Kasiski

Algoritmo para hallar la longitud de la clave a partir de repeticiones en el texto cifrado

Índice de coincidencia

La prueba estadística de Friedman para determinar la longitud de la clave

El cuaderno de un solo uso

El único cifrado teóricamente indescifrable: clave = longitud del mensaje, usada una sola vez

Cifrados de bloque modernos

Cómo las ideas del cifrado polialfabético evolucionaron hasta AES, ChaCha20 y otros algoritmos

Criptoanálisis en Python

Scripts prácticos para análisis de frecuencia y ataques al cifrado de Vigenère

Aplicaciones prácticas hoy

Aunque el cifrado de Vigenère ya no se usa para proteger datos reales, sigue siendo:

  • Un excelente ejemplo didáctico de cifrado polialfabético
  • Una base para entender algoritmos más complejos
  • Un elemento habitual en competiciones CTF y acertijos criptográficos
  • Un puente histórico entre la criptografía clásica y la moderna

¡Ahora que entiendes los fundamentos, es el momento perfecto para probarlo en la práctica y ver el cifrado en acción!

En la simulación interactiva podrás cifrar tu propio mensaje y ver cada paso del proceso.