Simulador de Cifrado Autokey
ATACAR, clave
CLAVE → cifra → luego
pega el resultado y descifra para recuperar el original.
Origen e Historia del Cifrado Autokey
El cifrado Autokey (también llamado autoclave cipher) tiene sus raíces en el siglo XVI. Fue descrito por primera vez por Giovan Battista Bellaso en 1564 y posteriormente por Blaise de Vigenère en su Traicté des Chiffres (1586). Vigenère distinguía entre su variante estándar de clave repetida —hoy conocida como el cifrado Vigenère— y el Autokey, que consideraba más robusto.
La idea central es elegante: en lugar de repetir la clave cíclicamente como hace Vigenère (lo que genera la periodicidad que explota la prueba de Kasiski), el Autokey usa el propio texto plano como extensión de la clave. A diferencia del cifrado César —monoalfabético con clave fija— o del cifrado Beaufort —recíproco pero con clave repetida—, el Autokey no genera patrones periódicos detectables.
Durante siglos fue considerado prácticamente inviolable, hasta que el matemático Charles Babbage y Wilhelm Kasiski desarrollaron técnicas de criptoanálisis estadístico en el siglo XIX que, con variantes, también pueden atacarlo aprovechando la correlación entre clave y texto plano.
Para qué se usa el cifrado Autokey
Historia de la criptografía
Considerado durante siglos el máximo exponente de la criptografía clásica y estudiado en todo texto de historia criptográfica.
Educación avanzada
Excelente para enseñar cómo la periodicidad de la clave es la debilidad central de Vigenère y cómo el Autokey la elimina conceptualmente.
CTF y puzzles
Aparece en retos CTF (Capture the Flag) como variante avanzada de Vigenère. Desafía incluso a quienes dominan la prueba de Kasiski estándar.
Referencia conceptual
Introduce la idea de stream cipher (cifrado de flujo): generar una clave tan larga como el mensaje, base de la criptografía moderna.
Cómo funciona el cifrado Autokey paso a paso
- Elegir la clave inicial (priming key): Una palabra corta de letras A–Z. Cuanto más larga, mayor seguridad inicial.
- Construir el flujo de clave: Se concatena la clave inicial con las letras del texto
plano:
K = priming_key + P₁P₂P₃…. El resultado es un flujo de clave tan largo como el mensaje. - Aplicar la fórmula de cifrado:
Cᵢ = (Pᵢ + Kᵢ) mod 26— igual que Vigenère, pero con una clave sin repetición. - Descifrado secuencial: Se aplica
Pᵢ = (Cᵢ − Kᵢ + 26) mod 26. Cada letra descifrada se incorpora inmediatamente al flujo de clave para descifrar la siguiente. - Sin periodicidad: Como la clave se extiende con el texto plano real, nunca se repite de forma cíclica, eliminando la firma que detecta la prueba de Kasiski en Vigenère.
Cifrado Autokey: ejemplo explicado con tabla
Texto claro: ATAQUE
Clave inicial: CLA
Flujo de clave: CLA + ATA = CLAATA
Fórmula: Cᵢ = (Pᵢ + Kᵢ) mod 26
| Pos. | Texto (Pᵢ) | Clave (Kᵢ) | Origen clave | Cálculo | Cifrado (Cᵢ) |
|---|---|---|---|---|---|
| 1 | A (0) | C (2) | Priming key | (0+2) mod 26 = 2 | C |
| 2 | T (19) | L (11) | Priming key | (19+11) mod 26 = 4 | E |
| 3 | A (0) | A (0) | Priming key | (0+0) mod 26 = 0 | A |
| 4 | Q (16) | A (0) | Texto plano P₁ | (16+0) mod 26 = 16 | Q |
| 5 | U (20) | T (19) | Texto plano P₂ | (20+19) mod 26 = 13 | N |
| 6 | E (4) | A (0) | Texto plano P₃ | (4+0) mod 26 = 4 | E |
Resultado cifrado: CEAQNE
Las 3 primeras letras de la clave vienen de CLA (priming key). Las 3 siguientes son ATA (primeras letras del texto plano).
Autokey vs Vigenère vs Beaufort: comparativa
Comparativa de los tres cifrados polialfabéticos más importantes de la criptografía clásica.
| Característica | Vigenère | Beaufort | Autokey |
|---|---|---|---|
| Extensión de clave | Repetición cíclica | Repetición cíclica | Texto plano ✓ |
| Fórmula cifrado | (Pᵢ + Kᵢ) mod 26 |
(Kᵢ − Pᵢ + 26) mod 26 |
(Pᵢ + Kᵢ) mod 26 |
| Vulnerable a Kasiski | Sí | Sí | No ✓ |
| Propiedad recíproca | No | Sí | No |
| Seguridad relativa | Baja–media | Baja–media | Media (superior) |
| Ataque principal | Kasiski + frecuencias | Kasiski + frec. reflejadas | Autocorrelación estadística |
Por qué el cifrado Autokey es más seguro que Vigenère
Aunque el Autokey supera a Vigenère en resistencia, sigue siendo un cifrado clásico inseguro para proteger información real. Usa AES-256 para necesidades modernas.
La debilidad central del cifrado Vigenère es la periodicidad: si la clave tiene longitud n, los caracteres en las posiciones k, k+n, k+2n… se cifran siempre con la misma letra de clave. Esto genera repeticiones detectables que la prueba de Kasiski explota para estimar la longitud de la clave.
El Autokey elimina esta periodicidad: después de la clave inicial (priming key), cada posición de la clave es una letra del texto plano. Las letras del texto plano no siguen una distribución uniforme (E, A, O dominan en español), pero tampoco son periódicas, por lo que Kasiski no puede encontrar las repeticiones que busca.
Vigenère (clave CLAVE repetida):
Clave: CLAVECLAVECLAVE… ← patrón periódico
Autokey (clave inicial CLAVE):
Clave: CLAVEATACARALAMANECER… ← sin periodicidad
Sin embargo, el Autokey tiene su propia vulnerabilidad: como la clave es el texto plano, existe una autocorrelación estadística entre clave y texto cifrado. Un atacante puede desplazar el texto cifrado sobre sí mismo y buscar el desplazamiento (longitud de la priming key) que maximiza la correlación estadística con el idioma, luego atacar las primeras posiciones como un Vigenère de longitud conocida.
Ventajas y desventajas del cifrado Autokey
Ventajas
- ▪Sin periodicidad: la clave no se repite cíclicamente, haciéndolo inmune a la prueba de Kasiski estándar usada para romper Vigenère.
- ▪Clave única por mensaje: aunque la priming key sea la misma, cada mensaje genera un flujo de clave diferente gracias al texto plano distinto.
- ▪Conceptualmente avanzado: introduce la idea de stream cipher y claves de un solo uso, base conceptual de la criptografía moderna.
- ▪Más seguro que Vigenère: requiere técnicas de criptoanálisis más sofisticadas para ser roto con texto cifrado comparable.
Desventajas
- ▪Autocorrelación explotable: la correlación estadística entre clave (texto plano) y texto cifrado permite ataques de desplazamiento que revelan la longitud de la priming key.
- ▪Descifrado secuencial obligatorio: el descifrado debe realizarse letra a letra en orden, sin posibilidad de paralelismo ni acceso aleatorio.
- ▪Error en cascada: un error en la transmisión del texto cifrado corrompe el descifrado de todas las letras siguientes, no solo la errónea.
- ▪No apto para uso real: como todos los cifrados clásicos, es inseguro para información sensible moderna frente a herramientas estadísticas computacionales.
Cómo identificar un texto cifrado con Autokey
Si tienes un texto cifrado desconocido, estas señales sugieren un cifrado Autokey:
Índice de coincidencia bajo
Similar al de Vigenère, indica cifrado polialfabético. Pero a diferencia de Vigenère, la prueba de Kasiski no revela repeticiones periódicas.
Sin repeticiones de Kasiski
Un texto que parece Vigenère pero no tiene repeticiones detectables por Kasiski es candidato a ser Autokey u otro cifrado sin periodicidad.
Autocorrelación positiva
El texto cifrado correlaciona estadísticamente con sí mismo desplazado exactamente n posiciones, donde n es la longitud de la priming key.
Consejo: si Kasiski falla pero el índice de coincidencia sigue siendo bajo, prueba desplazar el texto cifrado sobre sí mismo y calcular la correlación para diferentes longitudes de priming key.
Ejercicios del cifrado Autokey
Practica con estos ejercicios. Usa el simulador para verificar tus respuestas.
Ejercicio 1 — Básico
Cifra SOL con priming
key AB.
- Flujo de clave: AB + SO (primeras 2 letras del texto).
- Aplica
(Pᵢ + Kᵢ) mod 26para cada letra.
Pista: S=18, O=14, L=11 | A=0, B=1, S=18, O=14
Ejercicio 2 — Descifrado
Descifra CEAQNE con
priming key CLA.
Recuerda: descifra secuencialmente y añade cada letra al flujo de clave antes de descifrar la siguiente.
Pista: el resultado es una acción militar común.
Ejercicio 3 — Análisis
Dado un texto largo cifrado con Autokey, priming key desconocida de 3 letras:
- Desplaza el texto cifrado sobre sí mismo 3 posiciones.
- Calcula el índice de coincidencia entre el texto y su versión desplazada.
- Si es alto (≈0.065 para español), la priming key tiene 3 letras.
- Ataca las primeras 3 posiciones como un Vigenère de longitud 3.
Cómo romper el cifrado Autokey
Saber how to break Autokey cipher step by step (cómo romper el cifrado Autokey paso a paso) requiere dos fases: localizar la longitud de la priming key mediante autocorrelación y luego atacar esas posiciones exactamente como si fuera un Vigenère de longitud conocida.
1. Ataque de autocorrelación
Como la clave es el propio texto plano desplazado n posiciones (donde n es la longitud de la priming key), hay una correlación estadística entre el texto cifrado y sí mismo con ese desplazamiento. El atacante prueba todos los desplazamientos posibles y mide el índice de coincidencia: el máximo revela la longitud de la priming key.
2. Ataque Vigenère en las primeras n posiciones
Conocida la longitud n de la priming key, las primeras n letras del texto cifrado se corresponden directamente con la priming key. Se ataca esa porción como un Vigenère de longitud n usando análisis de frecuencia. Recuperada la priming key, el resto del mensaje se descifra en cascada de forma trivial.
numpy.correlate automatizan el cálculo del índice
de coincidencia para todos los desplazamientos en segundos.
Ejemplo de ataque Autokey paso a paso
Supón que interceptas el texto cifrado CEAQNE
y sospechas que fue cifrado con Autokey. Aquí está el proceso completo de ruptura:
Paso 1 — Estimar la longitud de la priming key
Desplaza el texto cifrado sobre sí mismo y calcula el índice de coincidencia (IC) para cada desplazamiento d. El IC mide cuántas letras coinciden entre el texto y su versión desplazada:
Texto: C E A Q N E
Desplazado d=1: _ C E A Q N → IC bajo
Desplazado d=2: _ _ C E A Q → IC bajo
Desplazado d=3: _ _ _ C E A → IC ≈ 0.065 ✓ (pico)
El pico en d = 3 indica que la priming key tiene 3 letras.
Paso 2 — Atacar la priming key como Vigenère de longitud 3
Las primeras 3 letras del texto cifrado C E A
corresponden directamente a cifrar el texto plano con la priming key.
Aplica análisis de frecuencia a cada posición:
Posición 1: cifrado=C → la letra más frecuente del idioma (E en inglés, A en español) debería mapearse a este carácter. Resultado probable: K₁ = C
Posición 2: cifrado=E → K₂ = L
Posición 3: cifrado=A → K₃ = A
→ Priming key recuperada: CLA
Paso 3 — Descifrado en cascada
Con la priming key CLA conocida,
cada letra descifrada se convierte automáticamente en la siguiente letra de clave:
| Pos. | Cifrado (Cᵢ) | Clave (Kᵢ) | Cálculo | Plano (Pᵢ) |
|---|---|---|---|---|
| 1 | C (2) | C (2) ← priming | (2−2+26) mod 26 = 0 | A |
| 2 | E (4) | L (11) ← priming | (4−11+26) mod 26 = 19 | T |
| 3 | A (0) | A (0) ← priming | (0−0+26) mod 26 = 0 | A |
| 4 | Q (16) | A (0) ← P₁ = A | (16−0+26) mod 26 = 16 | Q |
| 5 | N (13) | T (19) ← P₂ = T | (13−19+26) mod 26 = 20 | U |
| 6 | E (4) | A (0) ← P₃ = A | (4−0+26) mod 26 = 4 | E |
Mensaje descifrado: ATAQUE
— con priming key CLA
Nota: en un ataque real con texto largo el análisis de frecuencia del paso 2 es automático y altamente fiable. Con mensajes cortos (como este) se necesita fuerza bruta o contexto adicional.
¿Es seguro el cifrado Autokey?
¿Es seguro el cifrado Autokey?
El cifrado Autokey no es seguro para comunicaciones modernas. Aunque es más seguro que Vigenère —supera la prueba de Kasiski—, presenta vulnerabilidades estadísticas explotables:
- ▪ Autocorrelación estadística: la clave (texto plano desplazado) está correlacionada con el texto cifrado, lo que permite estimar la longitud de la priming key con texto suficiente (generalmente <500 caracteres).
- ▪ Error en cascada: un solo bit erróneo en el texto cifrado corrompe todos los caracteres siguientes al descifrar, lo que lo hace frágil en canales con ruido.
- ▪ Ataque moderno trivial: cualquier script estadístico básico rompe Autokey en segundos con texto cifrado suficiente.
🚫 Conclusión: el cifrado Autokey es una herramienta educativa y CTF, no un mecanismo de seguridad. Para comunicaciones seguras usa AES-256 o protocolos modernos como TLS.
Preguntas frecuentes sobre el cifrado Autokey
¿Qué es el cifrado Autokey?
El cifrado Autokey es un sistema criptográfico polialfabético donde la
clave inicial (priming key) se extiende con el propio texto plano para generar un flujo de
clave tan largo como el mensaje. Usa la misma fórmula que Vigenère (Cᵢ = (Pᵢ + Kᵢ) mod 26) pero
elimina la periodicidad de la clave.
¿En qué se diferencia Autokey de Vigenère?
La diferencia es la extensión de la clave. Vigenère repite la clave cíclicamente (si la clave es CLAVE, repite CLAVECLAVE…), generando un patrón periódico que la prueba de Kasiski detecta. Autokey extiende la clave con el texto plano (CLAVE + primeras letras del mensaje), eliminando esa periodicidad y haciéndolo resistente a Kasiski.
¿Es seguro el cifrado Autokey?
No para comunicaciones modernas. Aunque resiste la prueba de Kasiski, el cifrado Autokey es vulnerable a ataques de autocorrelación: la correlación estadística entre la clave (texto plano desplazado) y el texto cifrado permite determinar la longitud de la priming key, tras lo cual se puede atacar el sistema de forma sistemática.
¿Por qué el descifrado Autokey debe ser secuencial?
Porque el flujo de clave para descifrar se construye con el texto plano, que se va recuperando letra a letra. Para descifrar la posición i se necesita la letra de clave Kᵢ, que es la letra de texto plano P_{i−n} (donde n es la longitud de la priming key). Esta letra solo se conoce una vez descifrada la posición correspondiente.
¿Qué es la priming key en el cifrado Autokey?
La priming key (o clave de cebado) es la clave secreta inicial compartida entre emisor y receptor. Solo se usa para las primeras n posiciones del cifrado; a partir de ahí, el flujo de clave se genera automáticamente con el texto plano. Cuanto más larga sea la priming key, más posiciones iniciales son verdaderamente seguras y más difícil es el ataque de autocorrelación.
¿Dónde se usa el cifrado Autokey actualmente?
El cifrado Autokey no se usa en seguridad real hoy en día. Aparece principalmente en contextos educativos para enseñar el concepto de extensión de clave y stream ciphers, en retos CTF como variante avanzada de Vigenère, y en estudios de historia de la criptografía por su importancia conceptual como precursor de los cifrados de flujo modernos.
Resumen del cifrado Autokey
El cifrado Autokey es un cifrado polialfabético del siglo XVI
que extiende la clave inicial (priming key) con el propio texto plano, eliminando la
periodicidad que hace vulnerable al
cifrado
Vigenère. Usa la fórmula
Cᵢ = (Pᵢ + Kᵢ) mod 26,
igual que Vigenère, pero con una clave sin repetición — lo que lo convierte en un precursor
conceptual de los stream ciphers modernos.
Clave
Priming key + texto plano. Cada mensaje genera un flujo de clave único.
Ventaja clave
Sin periodicidad → inmune a Kasiski. Más seguro que Vigenère y Beaufort.
Debilidad
Autocorrelación estadística. Inseguro para uso real con texto suficiente.
Uso actual
Educación, CTF y estudio de criptografía clásica. Precursor de stream ciphers.