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"
Paso 2: Escribir el texto cifrado intermedio en filas bajo la clave
| 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 (E, J, L, M, O, P)
ADFGVX: La Extensión Mejorada
El cifrado ADFGVX 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 |
Seguridad y Vulnerabilidades
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.
