Cifrado Feistel

Feistel propuso que podemos aproximar el cifrado por bloques ideal utilizando el concepto de un cifrado de producto, que es la ejecución de dos o más cifrados simples en secuencia de tal manera que el resultado final o producto es criptográficamente más fuerte que cualquiera de los cifrados componentes. Feistel propuso el uso de un cifrado que alterna sustituciones y permutaciones.

Cifrado

La siguiente figura representa la estructura propuesta por Feistel. Las entradas al algoritmo de cifrado son un bloque de texto claro de longitud 2w bits y una clave K. El bloque de texto claro se divide en dos mitades, y .

Las dos mitades de los datos pasan por rondas de procesamiento y luego se combinan para producir el bloque de texto cifrado. Cada ronda tiene como entradas y , derivadas de la ronda anterior, así como una subclave , derivada de la . En general, las subclaves son diferentes de y entre sí.

Estructura de cifrado

  • Tamaño del bloque: Los tamaños de bloques más grandes significan mayor seguridad pero reducen la velocidad de cifrado / descifrado para un algoritmo dado. Tradicionalmente, un tamaño de bloque de 64 bits se ha considerado un tamaño razonable y fue casi universal en el diseño de cifrado de bloques. Sin embargo, el nuevo AES utiliza un tamaño de bloque de 128 bits.
  • Tamaño de clave: Un tamaño de clave más grande significa mayor seguridad, pero puede disminuir la velocidad de cifrado / descifrado. Los tamaños de clave de 64 bits o menos ahora se consideran ampliamente inadecuados y 128 bits se han convertido en un tamaño común.
  • Número de rondas: La esencia del cifrado de Feistel es que una sola ronda ofrece una seguridad inadecuada, pero que múltiples rondas ofrecen una seguridad creciente. Un tamaño típico es de 16 rondas.
  • Algoritmo de generación de subclaves: Mayor complejidad en este algoritmo debe conducir a una mayor dificultad de criptoanálisis.

Descifrado

El proceso de descifrado con un cifrado Feistel es esencialmente el mismo que el proceso de cifrado. La regla es la siguiente: Se utiliza el texto cifrado como entrada al algoritmo, pero se utilizan las subclaves en orden inverso. Es decir, utilice en la primera ronda, en la segunda ronda, y así sucesivamente hasta que se utilice en la última ronda. Esta es una buena característica porque significa que no es necesario implementar dos algoritmos diferentes, uno para el cifrado y otro para el descifrado.

Estructura de descifrado


Referencias

  1. Stallings, William. (2005). Block Ciphers and the Data Encryption Standard. En Cryptography and Network Security(67-72). Prentice Hall.