En criptografía , MacGuffin es un cifrador de bloques creado en 1994 por Bruce Schneier y Matt Blaze en un taller de Fast Software Encryption . Su objetivo era servir de catalizador para el análisis de una nueva estructura de cifrado, conocida como Redes Feistel Desequilibradas Generalizadas (GUFN, por sus siglas en inglés). El criptoanálisis se realizó muy rápidamente, tan rápido que el cifrado fue descifrado en el mismo taller por Vincent Rijmen y Bart Preneel .
Schneier y Blaze basaron MacGuffin en DES , y su principal cambio fue que el bloque de datos no se divide en mitades iguales en la red Feistel. En su lugar, 48 bits del bloque de datos de 64 bits se alimentan a través de la función de redondeo, cuya salida se combina con los otros 16 bits del bloque de datos mediante la operación XOR. El algoritmo era experimental y tenía como objetivo explorar las propiedades de seguridad de las redes Feistel no balanceadas.
El diagrama adyacente muestra una ronda de MacGuffin. El bloque de datos de 64 bits se divide en cuatro palabras de 16 bits (cada una representada por una línea). Las tres más a la derecha se combinan con bits de subclave derivados de la clave secreta. Luego se introducen en ocho cajas S , cada una de las cuales toma seis bits de entrada y produce dos bits de salida. La salida (un total de 16 bits) se recombina y se combina con la palabra más a la izquierda del bloque de datos. Luego, el nuevo bloque más a la izquierda se rota a la posición más a la derecha del bloque de datos resultante. Luego, el algoritmo continúa con más rondas.
El programa de claves de MacGuffin es una versión modificada del algoritmo de cifrado en sí. Como MacGuffin es una red Feistel, el descifrado es fácil; simplemente hay que ejecutar el algoritmo de cifrado a la inversa.
Schneier y Blaze recomendaron utilizar 32 rondas y especificaron MacGuffin con una clave de 128 bits.
En el mismo taller en el que se presentó MacGuffin, Rijmen y Preneel demostraron que era vulnerable al criptoanálisis diferencial . Demostraron que 32 rondas de MacGuffin son más débiles que 16 rondas de DES, ya que se necesitaban "unas pocas horas" para obtener buenas características diferenciales para DES con buenos valores iniciales, y el mismo tiempo para obtener buenas características diferenciales para MacGuffin sin valores iniciales. Descubrieron que es posible obtener la clave de la última ronda con criptoanálisis diferencial y, a partir de ahí, revertir la última ronda; y luego repetir el ataque para el resto de las rondas.
Rijmen y Preneel intentaron atacar MacGuffin con diferentes S-boxes, tomadas directamente de DES. Esta versión resultó ser ligeramente más fuerte, pero advierten que diseñar un algoritmo que resista solo ataques conocidos no suele ser un buen principio de diseño.