La seguridad de los cifrados de bloque se basa fundamentalmente en la aplicación iterativa de operaciones de confusión y difusión. Este concepto fue formalizado por primera vez por Claude Shannon en su obra fundamental sobre la teoría de la comunicación de los sistemas de secreto, donde articuló la necesidad de la confusión y la difusión en los sistemas criptográficos para frustrar ataques estadísticos y estructurales. Comprender por qué se requieren múltiples rondas de estas operaciones y cómo se interrelacionan es fundamental para comprender el diseño y la seguridad de los cifrados de bloque modernos, como el Estándar de Cifrado de Datos (DES) y el Estándar de Cifrado Avanzado (AES).
Confusión y difusión: definiciones y roles
La confusión busca hacer la relación entre el texto cifrado y la clave lo más compleja posible. Esto se logra enmascarando la estructura estadística del texto plano, a menudo mediante sustituciones no lineales (p. ej., cajas S en DES y AES). Cuanto más no lineal y compleja sea esta asignación, más difícil será para un atacante deducir información sobre la clave, incluso con acceso a muchos pares de texto plano y cifrado.
La difusión, por otro lado, busca distribuir la influencia de cada bit de texto plano a través de muchos bits de texto cifrado, de modo que un cambio en un solo bit de entrada resulte en cambios en muchos bits de salida. Esta propiedad garantiza que las propiedades estadísticas del texto plano se disipen a través del texto cifrado, lo que impide a los atacantes explotar patrones mediante análisis de frecuencia o técnicas similares. La difusión se logra típicamente mediante operaciones de mezcla lineal, como permutaciones, operaciones XOR bit a bit o multiplicaciones de matrices (como en la operación MixColumns de AES).
Estructura de los cifrados de bloques iterativos
La mayoría de los cifrados de bloque se estructuran como cifrados iterados, lo que significa que aplican una función de ronda simple varias veces para lograr un alto nivel de seguridad. La función de ronda suele combinar confusión (p. ej., mediante aplicaciones de S-box) y difusión (p. ej., mediante pasos de permutación o mezcla). La razón detrás del empleo de múltiples rondas es que una sola aplicación de confusión y difusión es insuficiente para ocultar todas las relaciones estructurales entre el texto plano, el texto cifrado y la clave. Cada ronda incrementa la complejidad de estas relaciones, y solo después de varias rondas el cifrado alcanza el nivel deseado de seguridad contra ataques criptoanalíticos conocidos.
Por ejemplo, considerando el cifrado AES, cada ronda de cifrado consta de los siguientes pasos clave:
1. SubBytes (Confusión): Cada byte de la matriz de estado se reemplaza por otro de acuerdo con una caja S no lineal fija, lo que introduce no linealidad.
2. ShiftRows (Difusión): Las filas de la matriz de estado se desplazan cíclicamente, moviendo bytes a diferentes columnas y facilitando la mezcla de valores.
3. MixColumns (Difusión): Las columnas del estado se mezclan mediante la multiplicación de matrices en un campo finito, lo que difunde aún más la influencia de cada byte de entrada.
4. AddRoundKey (Confusión): La matriz de estados se combina con una subclave derivada de la clave principal, introduciendo la dependencia de la clave en cada ronda.
La eficacia del cifrado depende no solo de la solidez de cada operación, sino también del número de veces que se aplican. Los criptoanalistas han demostrado que reducir el número de rondas en un cifrado como AES o DES puede hacerlo vulnerable a ataques como el criptoanálisis diferencial y lineal. Por ejemplo, mientras que el cifrado AES-128 completo utiliza 10 rondas, las versiones con solo 6 rondas son susceptibles a ciertas técnicas criptoanalíticas.
Necesidad de múltiples rondas
Para mayor claridad, considere qué sucede si se aplica una sola ronda de confusión y difusión. Incluso utilizando cajas S robustas y capas de mezcla, las relaciones y patrones estadísticos pueden persistir. Los atacantes podrían explotar estos patrones residuales mediante ataques de texto plano elegido o conocido. Múltiples rondas garantizan que la influencia de cada bit de clave y texto plano se distribuya completamente por todo el texto cifrado, lo que hace inviable este tipo de ataques.
El concepto del "efecto avalancha" es fundamental en este contexto. Un cifrado robusto garantiza que un pequeño cambio en el texto plano (como invertir un solo bit) resulte en un cambio en aproximadamente la mitad de los bits del texto cifrado, y esta propiedad solo se logra tras varias rondas de confusión y difusión. La estructura iterativa de los cifrados de bloque modernos está diseñada específicamente para amplificar este efecto, lo que hace que el cifrado sea resistente a ataques que se basan en el rastreo de las relaciones de entrada-salida.
Ejemplos: DES y AES
El cifrado histórico DES ilustra bien este principio. DES utiliza 16 rondas en su estructura de red Feistel, cada una de las cuales consiste en expansión, sustitución de caja S (confusión) y permutación (difusión). Un criptoanálisis exhaustivo ha demostrado que usar menos de 16 rondas conlleva debilidades; el criptoanálisis diferencial es eficaz contra versiones con menos rondas. Los diseñadores eligieron 16 rondas para proporcionar un margen de seguridad frente a los avances en criptoanálisis, lo que subraya la importancia de las iteraciones múltiples.
AES, diseñado décadas después, aplica 10, 12 o 14 rondas según el tamaño de la clave (128, 192 o 256 bits, respectivamente). Cada ronda incorpora los efectos combinados de confusión y difusión a través de sus pasos SubBytes, ShiftRows y MixColumns. El número de rondas se seleccionó cuidadosamente con base en hallazgos criptoanalíticos para equilibrar la seguridad y el rendimiento.
Modos de operación y su relación
Si bien la seguridad interna de los cifrados de bloque se determina por la confusión y difusión repetidas, el modo de operación (p. ej., ECB, CBC, CFB, OFB, CTR) especifica cómo se aplican los cifrados de bloque a datos de más de un bloque. Las propiedades de seguridad de un cifrado de bloque en un modo determinado dependen fundamentalmente de su resistencia a los ataques, lo cual, a su vez, depende del grado de confusión y difusión logrados en múltiples rondas. Si el cifrado de bloque subyacente es débil (por ejemplo, con muy pocas rondas), ningún modo de operación puede compensar esta deficiencia.
Ataques y rondas criptoanalíticas
Varios ataques criptoanalíticos explotan la confusión y difusión insuficientes en los cifrados de bloque. El criptoanálisis diferencial, por ejemplo, estudia cómo las diferencias en los textos planos afectan las diferencias resultantes en el texto cifrado. Si el cifrado no ha difundido adecuadamente las diferencias de entrada, un atacante puede predecir cómo se propagan dichas diferencias y utilizar este conocimiento para recuperar la clave. De igual forma, el criptoanálisis lineal busca aproximaciones lineales entre el texto plano, el texto cifrado y los bits de la clave. La eficacia de estos ataques disminuye a medida que aumenta el número de rondas, siempre que cada ronda implemente eficazmente la confusión y la difusión.
A modo de ejemplo, DES con 8 rondas (la mitad del número estándar) es susceptible al criptoanálisis diferencial, pero con 16 rondas, la probabilidad de propagar un rastro diferencial útil en todas las rondas se vuelve insignificante. Esto demuestra que la estructura iterativa, y en concreto el número de rondas, es fundamental para lograr una seguridad práctica.
Compensaciones de diseño
Los diseñadores de cifrados deben equilibrar el número de rondas con los requisitos de rendimiento. Un mayor número de rondas generalmente implica mayor seguridad, pero también mayor coste computacional. El número de rondas se elige típicamente para proporcionar un margen de seguridad superior a los ataques más conocidos en el momento del diseño, con la expectativa de que los futuros avances en criptoanálisis puedan reducir este margen. Este enfoque conservador garantiza que el cifrado se mantenga seguro durante su vida útil prevista.
Justificación matemática
Desde un punto de vista teórico, los diseños de cifrados de bloques iterados pueden analizarse desde la perspectiva del modelo de "cifrado iterado de producto". Bajo ciertas premisas, se ha demostrado que la composición de múltiples cifrados débiles (cada uno implementando confusión y/o difusión débil) puede producir un cifrado general sólido, siempre que los componentes sean suficientemente independientes y el número de rondas sea elevado. Esto justifica el enfoque iterativo para la confusión y la difusión en el diseño práctico de cifrados.
Ejemplos prácticos
Un ejemplo ilustrativo es la estructura de red de sustitución-permutación (SPN), utilizada por AES. En una SPN, el texto plano se somete a capas alternas de sustitución (confusión) y permutación (difusión). Tras varias rondas, cada bit de salida depende de cada bit de entrada de forma altamente no lineal. Esta propiedad no se logra con una sola ronda; es el efecto acumulativo de múltiples rondas lo que garantiza que cada bit del texto cifrado sea una función compleja de cada bit del texto plano y de la clave, una propiedad conocida como difusión completa.
La red Feistel, tal como se utiliza en DES, logra una seguridad similar aplicando iterativamente una función circular que combina sustitución y permutación, donde el resultado de cada ronda alimenta la siguiente. La seguridad de estas construcciones aumenta exponencialmente con el número de rondas, suponiendo que la función circular en sí no sea trivialmente invertible ni lineal.
Conclusión: Dependencia de la seguridad en la iteración
La solidez de los cifrados por bloques está estrechamente ligada a la aplicación repetida de operaciones de confusión y difusión. Los cifrados modernos están diseñados con un número suficiente de rondas para garantizar que se elimine cualquier relación estadística residual del texto plano o la clave, y que cada bit del texto cifrado se vea influenciado por cada bit del texto plano y la clave. Este proceso iterativo no es un mero detalle de implementación, sino un principio fundamental de la seguridad de los cifrados. El número de rondas se elige mediante un criptoanálisis exhaustivo para proporcionar un margen de seguridad y se reevalúa periódicamente a medida que surgen nuevos ataques. En todos los aspectos prácticos y teóricos, la seguridad de los cifrados por bloques depende, de hecho, de la combinación frecuente de operaciones de confusión y difusión.
Otras preguntas y respuestas recientes sobre Aplicaciones de los cifrados en bloque:
- ¿Qué debe incluir un cifrado por bloques según Shannon?
- ¿La difusión significa que fragmentos individuales de texto cifrado son influenciados por muchos fragmentos de texto simple?
- ¿El modo BCE divide el texto sin formato de entrada grande en bloques posteriores?
- ¿Podemos usar un cifrado de bloque para construir una función hash o MAC?
- ¿Se puede utilizar el modo OFB como generador de flujo de claves?
- ¿Puede un cifrado ser determinista?
- ¿Cuáles son los modos de operación?
- ¿Qué hace el modo BCE con los cifrados de bloques simples?
- ¿Se puede crear PSRNG mediante cifrados en bloque?
- ¿Se puede construir una MAC mediante cifrados en bloque?
Ver más preguntas y respuestas en Aplicaciones de cifrados en bloque

