RU EN ES 中文

La red de Feistel

Cómo una sola construcción resolvió un viejo problema del cifrado — y se convirtió en la base del DES, el Magma ruso y decenas de otros algoritmos

El problema que resolvió Feistel

Para descifrar un cifrado de bloque hay que deshacer de algún modo la mezcla con la que se cifró. Diseñar una buena función de mezcla ya es difícil. Diseñar además una función inversa matemáticamente limpia, e implementar ambas, duplica el trabajo — y duplica las probabilidades de cometer un error.

A principios de los años 70, en IBM, Horst Feistel propuso un truco estructural: cortar el bloque de datos por la mitad en L y R, hacer pasar una mitad — junto con una subclave de ronda — por una función F que puede ser tan compleja e irreversible como se quiera, sumar el resultado a la otra mitad y luego intercambiar las mitades. Repetir varias veces.

Idea clave: El truco no está en la función F, sino en la estructura misma. La suma módulo 2 (XOR) se deshace a sí misma, y el intercambio de mitades es trivialmente reversible. Por eso toda la ronda es reversible — aunque F en sí no lo sea. Descifrar es exactamente el mismo algoritmo, solo que las subclaves se aplican en orden inverso.

Cómo se construye una red de Feistel

Desglosada en pasos, toda la construcción resulta sorprendentemente simple:

1

División del bloque

El bloque de datos se corta por la mitad en una mitad izquierda L y una derecha R. En el DES son 32 y 32 bits de un bloque de 64 bits; en el juego de Ludus Lab son 4 y 4 bits de un solo byte.

2

La función de ronda

La mitad derecha R se combina con la subclave de esta ronda y pasa por la función F — en el DES y el Magma es un conjunto de S-boxes, tablas de sustitución que le dan al cifrado su no linealidad.

3

Suma e intercambio

El resultado de F se suma con XOR a la mitad izquierda L, produciendo la nueva mitad derecha. Después las mitades se intercambian.

4

Repetir durante muchas rondas

Todo se repite una y otra vez, cada vez con una subclave nueva: 16 veces en el DES, 32 en el Magma. Cuantas más rondas, más difícil es encontrar un patrón entre el texto claro y el cifrado.

5

Intercambio final y descifrado

Tras la última ronda las mitades se intercambian una vez más — y esto es lo que da a una red de Feistel su propiedad principal: para descifrar, Bob ejecuta exactamente el mismo algoritmo, solo que con las subclaves en orden inverso.

Una ronda de una red de Feistel
L, R
Las mitades del bloque
→
F(R, K)
R + subclave → S-boxes
→
L ⊕ F
Se suma a L
→
R, L'
Las mitades se intercambian

F puede ser tan compleja e irreversible como se quiera — lo reversible es el propio esquema «divide, mezcla, intercambia».

De Lucifer a nuestros días

La idea de Feistel no se quedó en teoría — buena parte de la criptografía simétrica del siglo XX se construyó sobre ella:

Lucifer (IBM, principios de los 70)

El primer cifrado con estructura de Feistel, creado por el propio Horst Feistel y su equipo en IBM.

Antecesor directo del DES

DES (NBS, 1977)

Un Lucifer perfeccionado se convirtió en el estándar de EE. UU. durante un cuarto de siglo — bloque de 64 bits, clave de 56 bits, 16 rondas.

Clave: 56 bits — hoy insuficiente

GOST 28147-89 «Magma» (URSS, 1989)

Un diseño soviético independiente sobre la misma idea: bloque de 64 bits, pero clave de 256 bits y 32 rondas.

Hoy: GOST R 34.12-2015

El esquema de Feistel resultó tan exitoso que se convirtió en la base de varias generaciones más de cifrados:

DES 3DES MAGMA (GOST) Blowfish CAST-128 Twofish Camellia KASUMI
¿Qué NO es Feistel? El AES y el «Kuznyechik» ruso están construidos de otra forma — son redes de sustitución-permutación (redes SP), no redes de Feistel. Ambas ideas resuelven el mismo problema, pero de forma distinta.

Prueba una red de Feistel tú mismo

En la demostración interactiva de Ludus Lab podrás:

La lección principal del juego: El descifrado funciona no porque alguien deshaga la función F, sino porque la estructura misma de la red de Feistel es simétrica respecto al orden de las subclaves. Entiéndelo con un solo byte, y el principio detrás del DES, el Magma y decenas de otros cifrados quedará claro.
Para los curiosos

El DES y el Magma, lado a lado

Ambos algoritmos son redes de Feistel, pero a escalas y con destinos muy distintos:

ParámetroDESMagma (GOST 28147-89)
País de origenEE. UU.URSS / Rusia
Año de adopción19771989 (hoy GOST R 34.12-2015)
ArquitecturaRed de FeistelRed de Feistel
Tamaño del bloque64 bits64 bits
Longitud de la clave56 bits256 bits
Número de rondas1632
S-boxesFijadas por el estándar desde 1977Al principio era un secreto de cada organismo; un único conjunto fijo llegó recién en 2015
ReguladorNIST (EE. UU.)FSB de Rusia

El secreto de las S-boxes y el criptoanálisis diferencial

En 1990, los criptógrafos Eli Biham y Adi Shamir publicaron el criptoanálisis diferencial, un potente ataque contra los cifrados de bloque. La comunidad quedó asombrada: las S-boxes del DES resultaron ser sorprendentemente resistentes justo a ese ataque.

La explicación llegó después: según el ingeniero de IBM Don Coppersmith, el equipo de IBM conocía el criptoanálisis diferencial desde principios de los 70 y diseñó deliberadamente las S-boxes del DES para resistirlo — pero, a petición de la NSA, lo mantuvo en secreto durante casi dos décadas.

El fin del DES: roto por fuerza bruta

Una clave DES de 56 bits tiene unos 7×1016 valores posibles — de sobra en 1977. Para 1998, la Electronic Frontier Foundation había construido una máquina dedicada, «Deep Crack», de unos 250 000 dólares, que encontró una clave por fuerza bruta en unas 56 horas.

Eso demostró públicamente que 56 bits ya no bastaban. El parche fue el 3DES (DES aplicado tres veces), seguido en 2001 por el AES, elegido tras un concurso internacional abierto.

Blowfish y Twofish

Alternativas abiertas al DES, sin restricciones de patente, diseñadas por Bruce Schneier en los años 90

Camellia

Desarrollo conjunto de empresas japonesas, estándar internacional ISO/IEC, usado en TLS

KASUMI

Una red de Feistel en el corazón de los algoritmos de confidencialidad de las redes 3G/UMTS

Datos curiosos

  • El Lucifer original usaba una clave de 128 bits; la NSA insistió en reducirla a 56 bits antes de adoptar el DES
  • El DES fue el estándar oficial de EE. UU. durante más de 20 años, hasta que el AES lo sustituyó en 2001
  • Las S-boxes del GOST 28147-89 original no formaban parte del estándar público — cada organismo podía definir las suyas
  • El AES y el «Kuznyechik» no son redes de Feistel, sino redes de sustitución-permutación (redes SP)
  • El descifrado en una red de Feistel usa exactamente el mismo esquema que el cifrado — solo que con las subclaves en orden inverso
Un momento filosófico: La red de Feistel es un caso raro en el que una idea estructural simple resultó más poderosa que una matemática compleja. Durante medio siglo ha sobrevivido a varias eras — de las máquinas de cifrado mecánicas a los albores de la criptografía postcuántica — y todavía se usa donde hace falta una construcción probada por el tiempo.

Ahora entiendes por qué la función F no tiene que ser invertible, y cómo de esa sola idea salieron el DES, el Magma y decenas de otros cifrados

En la demostración recorrerás un solo byte desde el texto claro hasta el cifrado y de vuelta — y verás exactamente por qué funciona esta estructura