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:

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

  1. 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
  2. Sustitución:
    • Reemplazar cada letra del mensaje por sus coordenadas en la matriz
    • Para ADFGX: I y J comparten la misma celda
  3. 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

  1. Reversión de la transposición:
    • Determinar la longitud de las columnas originales
    • Reordenar las columnas según la palabra clave (eliminando duplicados primero)
  2. 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:

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.