Cifrado Vigenère

Revisado por el equipo editorial de Let's Cipher Lectura: ~7 min Nivel: Intermedio

Definición directa

El cifrado Vigenère es una sustitución polialfabética que aplica una secuencia de desplazamientos derivados de una palabra clave repetida. A diferencia del César, cada letra del mensaje se cifra con un alfabeto distinto, lo que frustra el análisis de frecuencia simple.

  1. Elige una clave de texto (p. ej. CLAVE). Repite la clave hasta cubrir el mensaje.
  2. Para cada letra: desplazámiento = índice de la letra de la clave (A=0, B=1…Z=25).
  3. Cifrado: Cᵢ = (Pᵢ + Kᵢ) mod 26 • Descifrado: Pᵢ = (Cᵢ − Kᵢ + 26) mod 26

Durante más de 300 años se creyó que Vigenère era indescifrable. Los francéses lo llamaban « le chiffre indéchiffrable »el cifrado inrompible. En realidad, fue el método que mejor ilustró por qué la confianza ciega en un cifrado es tan peligrosa como el cifrado mismo.

Comparativa rápida — Vigenère vs otros cifrados

Vigenère vs César

  • ✔ César: 1 desplazamiento fijo para todo el mensaje
  • ✔ Vigenère: N desplazamientos distintos (uno por letra de clave)
  • ✔ César: roto en segundos con frecuencias
  • ✔ Vigenère: resistió 300 años antes de Kasiski (1863)

Vigenère vs Playfair

  • ✔ Playfair: cifra dígrafos (pares) con una matriz 5×5
  • ✔ Vigenère: cifra letra a letra con clave repetida
  • ✔ Playfair: inmune a frecuencia de letras simples
  • ✔ Vigenère: inmune a frecuencia simple; vulnerable a Kasiski

Vigenère vs AES-256

  • ✔ Vigenère: clave de texto (fuerza ≈ 25ᵈ según longitud)
  • ✔ AES-256: clave de 256 bits (2²⁵⁶ estados)
  • ✔ Vigenère: lineal y rompible con Kasiski
  • ✔ AES-256: irrompible con hardware actual (>10⁷⁰ años)

Cómo funciona

Normaliza el texto (por compatibilidad con alfabeto de 26 letras: tildes → base) y decide cómo tratar ñ/Ñ (puede preservarse sin cifrar o mapearse a N, pero documenta la decisión). Luego, repite la clave hasta cubrir todo el mensaje.

Fórmulas

Cifrado:     Cᵢ = (Pᵢ + Kᵢ) mod 26
Descifrado:  Pᵢ = (Cᵢ - Kᵢ + 26) mod 26

donde:
  Pᵢ  = índice (0–25) de la letra i del texto plano
  Kᵢ  = índice (0–25) de la letra i de la clave repetida
  Cᵢ  = índice (0–25) de la letra i del texto cifrado
  

Observa que Vigenère es lineal letra a letra sobre ℤ26: la seguridad depende de la longitud y aleatoriedad de la clave, no de la fórmula en sí.

Ejemplo

Ejemplo rápido

Texto: ATAQUEAMANECERClave: CLAVE
Clave repetida: CLAVECLAVECLAV

Primera letra: A con C (2) → C. Segunda letra: T con L (11) → E. Se continúa sumando el desplazamiento de la clave (mod 26) en cada posición.

Consejo: si conservas espacios/signos, indícalo en la herramienta; de lo contrario, suelen eliminarse antes de aplicar la clave. Las tildes se normalizan (á→a) y ñ/Ñ puede preservarse sin cifrar en modo didáctico.

«Le chiffre indéchiffrable»: la leyenda que duró 300 años

Siglo XV, Florencia. León Battista Alberti — el mismo que diseñó iglesias renacentistas — escribe el primer cifrado polialfabético de la historia. La idea: no usar un solo alfabeto, sino varios, rotando con una clave. La frecuencia de letras, que delataba al César, ya no serviría. Con múltiples alfabetos, la E podría cifrarse como C, F, o Z… según la posición.

1553, Giovan Battista Bellaso perfecciona el sistema con una palabra clave real. 1586, Blaise de Vigenère publica su Traicté des Chiffres — y el método queda bautizado con su nombre, aunque no fue él quien lo inventó. Para los próximos 300 años, el mundo criptográfico lo considera invencible. « Le chiffre indéchiffrable ».

1863, Friedrich Kasiski, un oficial prusiano, publica el ataque definitivo: busca secuencias repetidas en el cifrado — que aparecen cuando la clave coincide con sus propias repeticiones — y calcula la distancia entre ellas. Esas distancias revelan la longitud de la clave. Con la longitud conocida, cada columna es un simple César. El mito de los 300 años coló en minutos.

En 1920, William Friedman refina el ataque con el índice de coincidencia: una medida estadística que estima la longitud de la clave incluso sin repeticiones visibles. El Vigenère nunca fue el mismo.

Fuentes: David Kahn, The Codebreakers, Cap. 4 (1967). William F. Friedman, The Index of Coincidence and Its Applications in Cryptology (1922).

Oculta frecuencias simples

En el César, la E siempre produce la misma letra. En Vigenère, la E con clave A→E, con clave C→G, con clave L→P… La misma letra produce resultados distintos según la posición. El análisis de frecuencia simple queda ciego.

La longitud de la clave lo es todo

Clave de 5 letras: Kasiski lo rompe con ~100 letras de texto. Clave de 20 letras: necesitas más texto, más tiempo. Clave igual a la longitud del mensaje (One-Time Pad) con clave perfectamente aleatoria: matemáticamente irrompible (Shannon, 1949).

ADN del cifrado moderno

La idea de aplicar una clave repetida caracter a caracter — con operaciones modulares — es el mismo principio que usa ChaCha20 (usado en HTTPS hoy). Vigenère es la versión de 1586 de lo que hoy llamamos stream cipher.

Cómo romper el cifrado Vigenère

Saber how to break Vigenère cipher step by step se reduce a dos fases: estimar la longitud de la clave y luego resolver cada columna como un César.

Prueba de Kasiski (1863)

Busca secuencias repetidas de 3+ letras en el cifrado. La distancia entre repeticiones es múltiplo de la longitud de clave. Con varias coincidencias, el MCD revela la longitud exacta.

Índice de coincidencia (Friedman, 1920)

Mide la probabilidad de que dos letras elegidas al azar sean iguales. En inglés: IC≈0.065. En texto Vigenère: IC≈0.038–0.050. La diferencia estima la longitud de la clave estadísticamente.

Separación por columnas

Con la longitud estimada (p.ej. 5), agrupa las letras en posiciones 0,5,10… / 1,6,11… / etc. Cada grupo es un César independiente. Análisis de frecuencia simple rompe cada columna.

Reto Kasiski: ¿cuánto mide la clave?

En el texto cifrado aparece la secuencia QUX en las posiciones 0 y 15. También aparece VWL en las posiciones 6 y 21. ¿Qué longitud de clave revela esto?

Mostrar solución →

Distancia 1 (QUX): 15 − 0 = 15

Distancia 2 (VWL): 21 − 6 = 15

MCD(15, 15) = 15

→ Longitud de clave probable: 15, 5 ó 3 (divisores de 15)

El candidato más plausible suele ser el más pequeño: 3 o 5.

Esto se confirma con el índice de coincidencia: si IC de cada columna ≈ 0.065 → longitud correcta.

Pros y contras

Pros

  • Más resistente que César al análisis de frecuencia (si la clave es suficientemente larga).
  • Excelente valor didáctico para introducir polialfabetismo y el uso de claves.
  • Implementación sencilla y reproducible (apto para herramientas interactivas).

Contras

  • Inseguro si la clave es corta o se reutiliza (Kasiski/Friedman lo rompen con texto suficiente).
  • No aporta integridad ni autenticidad; solo confidencialidad básica.
  • No es adecuado para proteger información real hoy en día.

Sigue aprendiendo: del Vigenère al cifrado moderno

Vigenère marcó el punto de inflexión entre la criptografía clásica y la moderna. Sigue el hilo histórico:

Herramienta de Cifrado y Descifrado Vigenère

Introduce el texto que deseas cifrar o descifrar.

La clave solo puede contener letras A–Z (se ignoran tildes y signos).