Cifrado ADFGX/ADFGVX
El cifrado ADFGX y su extensión ADFGVX son sistemas de cifrado de campo de batalla utilizados por el ejército alemán durante la Primera Guerra Mundial. Fueron desarrollados por el coronel Fritz Nebel y se consideraron extremadamente seguros en su momento.
Historia y Contexto
El cifrado ADFGX fue introducido el 5 de marzo de 1918 en el frente occidental. Posteriormente, se amplió a ADFGVX para incluir números y mejorar la seguridad. Estos cifrados combinaban sustitución y transposición, lo que los hacía particularmente difíciles de descifrar.
El cifrado fue roto por el criptoanalista francés Georges Painvin, cuyo trabajo contribuyó significativamente al esfuerzo de guerra aliado.
Funcionamiento del Cifrado ADFGX
1. Cuadrado de Polibio
El cifrado utiliza una matriz de 5x5 (para ADFGX) que contiene todas las letras del alfabeto (generalmente se combinan I y J en una misma celda):
| A | D | F | G | X | |
|---|---|---|---|---|---|
| A | B | T | A | L | P |
| D | D | H | O | Z | K |
| F | Q | F | V | S | N |
| G | G | J | C | U | M |
| X | E | R | W | I | Y |
Nota sobre la matriz: La matriz se puede generar con una clave, eliminando letras duplicadas y completando con el resto del alfabeto en orden. Las letras I y J suelen compartir la misma celda.
2. Sustitución
Cada letra del mensaje original se sustituye por las dos letras que corresponden a su fila y columna en la matriz:
- Ejemplo: 'H' → se encuentra en la fila 'D' y columna 'D' → "DD"
- 'W' → fila 'X', columna 'F' → "XF"
3. Transposición
El texto resultante se escribe bajo una palabra clave y luego se reordenan las columnas alfabéticamente según la clave:
Paso 1: Eliminar letras duplicadas de la clave manteniendo el orden
Clave original: "EJEMPLO" → Clave limpia: "EJMPLO" (se eliminan las E repetidas)
Paso 2: Escribir el texto cifrado intermedio en filas bajo la clave
Texto intermedio: "AD FX DD FX AG XA"
| E | J | M | P | L | O |
|---|---|---|---|---|---|
| A | D | F | X | D | D |
| F | X | A | G | X | A |
Paso 3: Ordenar las columnas alfabéticamente según la clave
Clave "EJMPLO" ordenada alfabéticamente: E(1), J(2), L(5), M(3), O(6), P(4)
Nuevo orden de columnas: 1, 2, 5, 3, 6, 4
Paso 4: Leer el texto columna por columna para obtener el cifrado final
Resultado final: "AD FX XD DF AX GA"
ADFGVX: La Extensión Mejorada
El cifrado ADFGVX es una extensión de ADFGX que añade la letra 'V' para crear una matriz de 6x6, permitiendo incluir los 10 dígitos numéricos (0-9):
| A | D | F | G | V | X | |
|---|---|---|---|---|---|---|
| A | S | U | N | 6 | H | 1 |
| D | 8 | F | V | 3 | A | 9 |
| F | 2 | W | D | R | 5 | Z |
| G | B | Q | T | 7 | I | O |
| V | X | J | 4 | G | K | C |
| X | 0 | L | M | P | Y | E |
El proceso de cifrado es similar, pero ahora cada carácter (letra o número) se representa con dos letras del conjunto A,D,F,G,V,X.
Proceso de Cifrado Paso a Paso
- Preparar la matriz:
- Crear una matriz de 5x5 (ADFGX) o 6x6 (ADFGVX) usando una clave
- Eliminar letras duplicadas de la clave manteniendo el orden
- Completar con el resto de caracteres en orden
- Sustitución:
- Reemplazar cada letra del mensaje por sus coordenadas en la matriz
- Para ADFGX: I y J comparten la misma celda
- Transposición:
- Eliminar letras duplicadas de la clave de transposición
- Escribir el texto intermedio en filas bajo la clave limpia
- Ordenar las columnas alfabéticamente según la clave
- Leer el texto columna por columna para obtener el cifrado final
Proceso de Descifrado
- Reversión de la transposición:
- Determinar la longitud de las columnas originales
- Reordenar las columnas según la palabra clave (eliminando duplicados primero)
- Reversión de la sustitución:
- Dividir el texto en pares de letras
- Usar la matriz para convertir cada par a su carácter original
Importante: Para descifrar correctamente, se debe usar exactamente la misma matriz y clave de transposición que se usaron para cifrar.
Ejemplo Completo de Cifrado ADFGX
Mensaje original: "ATAQUE"
Matriz de cifrado: (usando la tabla mostrada anteriormente)
Sustitución:
A → AA, T → AD, A → AA, Q → FA, U → GV, E → XA
Texto intermedio: "AA AD AA FA GV XA"
Clave de transposición: "CIFRADO"
Clave limpia (sin duplicados): "CIFRADO" → "CIFRADO" (no hay letras repetidas)
Transposición:
1. Escribir en filas bajo la clave:
| C | I | F | R | A | D | O |
|---|---|---|---|---|---|---|
| A | A | A | D | A | A | F |
| A | G | V | X | A |
2. Ordenar columnas alfabéticamente según clave: A(5), C(1), D(6), F(3), I(2), O(7), R(4)
Nuevo orden: 5, 1, 6, 3, 2, 7, 4
3. Leer por columnas: A, A, A, A, A, F, G, D, V, X
Texto cifrado final: "AA AAA FGDVX"
Manejo de Claves con Letras Repetidas
Cuando una clave contiene letras repetidas, el cifrado ADFGX/ADFGVX las elimina manteniendo solo la primera ocurrencia de cada letra:
Ejemplo 1: Clave "BALAMOS" → Se convierte en "BALMOS" (se elimina la segunda A)
Ejemplo 2: Clave "EJEMPLO" → Se convierte en "EJMPLO" (se elimina la segunda E)
Ejemplo 3: Clave "CIFRARCONCIFRADO" → Se convierte en "CIFAROND"
Importante: Este proceso de eliminación de duplicados se aplica tanto a la clave usada para generar la matriz como a la clave de transposición.
Utilidades y Aplicaciones
Uso Histórico
Fue utilizado para comunicaciones estratégicas durante la Primera Guerra Mundial, especialmente durante la Ofensiva de Primavera de 1918.
Educación Criptográfica
Excelente ejemplo para enseñar los fundamentos de criptografía: sustitución, transposición y cifrados compuestos.
Retos Criptográficos
Popular en competencias y desafíos de criptografía por su interesante mecánica y valor histórico.
Seguridad y Vulnerabilidades
En su momento, el cifrado ADFGX/ADFGVX se consideró muy seguro, pero hoy en día es vulnerable a varios ataques criptoanalíticos modernos.
Vulnerabilidades Principales:
- Análisis de frecuencia: La transposición no oculta completamente las frecuencias de los pares de letras.
- Ataques de clave conocida: Si se descubre parte de la clave, el resto puede deducirse.
- Patrones en la matriz: Una matriz mal construida puede dejar patrones explotables.
- Longitud de la clave: Claves cortas son vulnerables a ataques de fuerza bruta.
Nota de seguridad: No utilice este cifrado para información sensible. Los métodos modernos pueden romperlo fácilmente. Su valor es principalmente histórico y educativo.