Visión general
Una red de sustitución‑permutación (conocida por sus siglas en inglés, SPN o SP) es un esquema estructural para construir cifrados por bloques mediante la iteración de dos tipos básicos de transformaciones: sustituciones no lineales y permutaciones lineales. Cada paso de la red, llamado ronda, aplica una o varias cajas de sustitución (S‑boxes) que actúan sobre pequeños trozos de datos y una permutación o expansión de bits (P‑box) que redistribuye las salidas de las S‑boxes para preparar la siguiente ronda. A la transformación de datos se le suma la incorporación de material secreto derivado de la clave, generalmente mediante la operación XOR con una subclave de ronda.
Elementos fundamentales
Las redes SP combinan varios componentes sencillos cuyo encadenamiento produce un cifrado útil y seguro cuando están bien diseñados:
- S‑box (caja de sustitución): es una función pequeña y no lineal que reemplaza un bloque de n bits por otro bloque de n bits. Debe ser invertible para permitir el descifrado y diseñada para resistir análisis diferencial y lineal. Propiedades deseables incluyen alta no linealidad, baja correlación lineal, cumplimiento de criterios de avalancha y ausencia de puntos fijos débiles.
- P‑box (caja de permutación): reordena bits o unidades mayores (por ejemplo bytes, nibbles) para propagar la influencia de cada S‑box en múltiples S‑boxes de la siguiente ronda. Su objetivo es maximizar la difusión: un cambio en una entrada debe afectar muchas salidas tras unas pocas rondas.
- Clave y programación de rondas: la clave principal se transforma en subclaves de ronda mediante un algoritmo de expansión (key schedule). Estas subclaves suelen mezclarse con el estado mediante XOR u otras operaciones; algunas variantes integran la clave dentro de las propias S‑boxes.
Propiedades criptográficas: confusión y difusión
Las redes SP implementan de forma explícita los dos principios de Shannon: la confusión se logra mediante las S‑boxes no lineales, que hacen complicada la relación entre clave y texto cifrado; la difusión se obtiene con las P‑boxes, que dispersan la influencia de cada bit en todo el bloque tras varias rondas. Cuando el diseño es correcto, una sola variación mínima en el texto plano o en la clave produce, tras suficiente número de rondas, cambios aparentemente aleatorios en la salida (criterio de avalancha).
Además de avalancha, los diseñadores buscan propiedades cuantificables como resistencias frente a ataques diferenciales y lineales. En la práctica se elige el tamaño de las S‑boxes, el número de rondas y la permutación para equilibrar rendimiento y seguridad: más rondas aumentan seguridad pero reducen velocidad y consumo de recursos.
Historia, ejemplos y variaciones
Las redes SP han sido una arquitectura dominante en muchos cifrados modernos. Un ejemplo destacable es AES (Rijndael), que organiza bytes en una matriz y aplica sustituciones a nivel de byte y permutaciones (sustitución por S‑box, desplazamiento de filas y mezcla de columnas) en cada ronda; AES es una SPN con optimizaciones para implementaciones en hardware y software. Otros cifrados conocidos que siguen la filosofía SPN o variantes cercanas son Serpent, Kuznyechik, Kalyna, Square, SAFER, SHARK y propuestas para entornos ligeros como PRESENT y algunas familias de cifrados diseñadas para Internet de las Cosas.
Existen variaciones en la granularidad y el diseño: algunos cifrados usan S‑boxes de 4 bits (comunes en diseños ligeros), otros de 8 bits (como AES) y algunos emplean mezclas algebraicas con matrices de difusión óptimas (MDS) o permutaciones bit a bit. También se usan técnicas como el whitening (XOR inicial y/o final con subclaves) para complicar análisis en los extremos del esquema.
Diseño de S‑boxes y P‑boxes: criterios y técnicas
El diseño de una S‑box es crítico y suele requerir análisis matemático y pruebas exhaustivas. Para S‑boxes pequeñas (por ejemplo 4 bits) es posible enumerar todas las funciones invertibles y seleccionar las que ofrezcan mejores medidas de no linealidad y resistencia a ataques diferenciales y lineales. Para S‑boxes de mayor tamaño (8 bits), es común emplear construcciones algebraicas; por ejemplo, la S‑box de AES se basa en la inversa multiplicativa en el campo finito GF(2^8) seguida de una transformación afín, lo que le confiere buena no linealidad y propiedades concretas frente a ataques.
La P‑box o la transformación lineal que realiza la difusión también se diseña con criterios concretos: matrices con alto número de rama (branch number) o matrices MDS maximizan la difusión entre S‑boxes y facilitan pruebas formales sobre resistencia a criptoanálisis. La mezcla de columnas de AES es un ejemplo de transformación lineal con buenas propiedades de difusión en columnas de bytes.
- Propiedades buscadas en S‑boxes: invertibilidad, alta no linealidad, baja diferencia uniforme, ausencia de sesgos lineales, comportamiento avalancha y grado algebraico alto.
- Propiedades buscadas en P‑boxes/transformaciones lineales: distribución uniforme de dependencias, simplicidad para implementaciones hardware y compatibilidad con arquitecturas de palabra.
Análisis y ataques relevantes
Las redes SP no están exentas de amenazas. Los dos ataques clásicos son el criptoanálisis diferencial y el criptoanálisis lineal, que explotan respectivamente cómo se propagan diferencias entre pares de textos o cómo se correlacionan combinaciones lineales de bits entre entrada y salida. Un diseño robusto debe garantizar que, tras cierto número de rondas, cualquier trayecto diferencial o lineal significativo sea extremadamente improbable o difícil de explotar.
Aparte de esos, existen otras técnicas: ataques por integralidad (tipo Square), ataques por distinguidor algebraico o por puntos imposibles (impossible differential), y análisis avanzados que combinan varias aproximaciones. Además, la calidad del key schedule puede introducir debilidades, y la existencia de claves relacionadas o subclaves con estructuras simples ha dado lugar a ataques aplicables a diseños concretos.
Ataques prácticos y contra‑medidas de implementación
Más allá del criptoanálisis matemático, las implementaciones de redes SP son objetivo de ataques de canal lateral: análisis de consumo de potencia, emisiones electromagnéticas, tiempos de ejecución o patrones de caché pueden filtrar material secreto sin quebrar la seguridad teórica del diseño. Estos ataques han forzado la adopción de contramedidas como:
- Enmascaramiento: dividir valores sensibles en varias partes aleatorias para evitar dependencias directas entre consumo y datos.
- Implementaciones constantes en tiempo: evitar tablas indexadas por datos secretos y accesos a memoria dependientes del dato.
- Técnicas de ocultación (hiding): reducción del ruido o aleatorización de la ejecución para dificultar el análisis estadístico.
- Protecciones a nivel de hardware: sensores y filtros, diseño de circuitos con menor correlación entre consumo y datos.
Implementación práctica y optimizaciones
Las redes SP son especialmente adecuadas para paralelismo: muchas S‑boxes se pueden calcular simultáneamente, lo que favorece implementaciones en hardware, en CPUs superscalares y en arquitecturas SIMD. En software de alto rendimiento se emplean técnicas como bitslicing, que representa varios bloques en paralelo mediante registros de la CPU y transforma operaciones lógicas en ultraparalelas; otra técnica habitual son las tablas de consulta precomputadas (T‑tables) que aceleran rondas combinando S‑box y mezcla lineal, aunque esas tablas son susceptibles de fugas por caché en entornos compartidos.
En dispositivos con recursos limitados, como tarjetas inteligentes o sensores, se opta por S‑boxes pequeñas y permutaciones sencillas para reducir área y consumo; aquí sobresalen los cifrados ligeros que equilibran seguridad y coste. En FPGA y ASIC, el rendimiento y el área pueden ajustarse mediante pipelining y paralelismo bit a bit.
Metodologías de diseño y evaluación
Los diseñadores modernos siguen metodologías sistemáticas para justificar la seguridad: análisis de trayectorias diferenciales y lineales, cálculo de número de rondas seguro, evaluación de la resistencia al criptoanálisis algebraico y pruebas prácticas de implementación. Existen estrategias concretas, como el enfoque "wide‑trail" empleado en el diseño de Rijndael/AES, que relaciona las propiedades locales de S‑boxes y la difusión global para establecer un margen de seguridad contra ataques conocidos.
Comparación con estructuras Feistel y conclusiones
Las redes SP y las estructuras Feistel comparten el objetivo de lograr confusión y difusión, pero difieren en detalles prácticos: una red Feistel permite funciones internas no invertibles y facilita descifrado sin invertir componentes, mientras que una SPN exige que las S‑boxes sean invertibles para realizar descifrado directo. Las SPNs suelen ofrecer más paralelismo y, bien optimizadas, mayor rendimiento en arquitecturas con múltiples unidades de ejecución; por otro lado, Feistel sigue siendo útil cuando se desean restricciones concretas en la implementación o cuando se aprovechan funciones unidireccionales.
En resumen, las redes de sustitución‑permutación constituyen una piedra angular del diseño de cifrados modernos: combinan bloques pequeños y bien estudiados para construir transformaciones complejas y seguras cuando se aplican criterios rigurosos de diseño y se cuidan las implementaciones contra fugas prácticas. La elección entre SPN y otras arquitecturas depende de requisitos de seguridad, rendimiento y entorno de implementación.