MacGuffin (cifrado)

MacGuffin
Creador Bruce SchneierMatt Blaze
Creado 1994 _
publicado 1994.12.14
Tamaño de clave 128 bits
Tamaño de bloque 64 bits
Número de rondas 32
Tipo de Red Feistel

En criptografía , MacGuffin  es un cifrado de bloque simétrico basado en la red Feistel .

El algoritmo fue inventado por Bruce Schneier y Matt Blaze en 1994 como parte de Fast Software Encryption . Y en el mismo año, Vincent Rayman y Bart Presnel mostraron su vulnerabilidad al criptoanálisis diferencial , que también se encuentra en el cifrado DES similar . Se pretendía estudiar tal estructura de cifrados como una red Feistel desequilibrada [1] .

Introducción

Tradicionalmente, los cifrados que utilizan la red Feistel dividen el bloque de entrada en partes iguales: izquierda (bloque de destino) y derecha (bloque de control). Los bloques se intercambian con cada ronda . MacGuffin se basa en una estructura en la que el bloque objetivo es más corto que el bloque de control. El cifrado opera con bloques de entrada de 64 bits, donde la parte objetivo tiene 16 bits y la parte de control 48. Se utiliza una clave de 128 bits. Sin embargo, el número de rondas y el tamaño de la clave pueden variar [2] .

Arquitectura

Gran parte del diseño está tomado de DES. El texto de entrada sin cifrar se divide en 4 palabras de 16 bits. Las cajas S se toman prestadas de DES. Hay 8 de ellos, cada uno devolviendo un resultado de 4 bits, tomando 6 bits como entrada. Pero solo se tienen en cuenta 2 bits (el resultado total debe ser de 16 bits). La salida de un S-box no cambia a la posición de los bits utilizados para ingresar al mismo bloque durante las próximas 4 rondas. El cifrado está destinado a ser implementado en hardware o software. Las permutaciones se eligen para minimizar el número de operaciones de cambio y máscara. [3]

Descripción del algoritmo

El elemento clave en la estructura del cifrado es la red Feistel desequilibrada. Los bloques de entrada se dividen en cuatro registros, de dos bytes cada uno. En la nueva ronda, los últimos tres bloques de la derecha se combinan en un bloque de control y se agrega el módulo 2 con la clave de ronda creada a partir de la principal usando el algoritmo de programación de claves . Los 48 bits resultantes se dividen en 8 partes y se convierten en los parámetros de entrada de seis cajas S. A su vez, cada S-box convierte 6 bits de entrada en 2 bits de salida. El resultado de 16 bits de las cajas S es el módulo 2 agregado al bloque de entrada más a la izquierda, y el resultado se convierte en el registro más a la derecha del bloque de entrada de la siguiente ronda. Los tres registros más a la derecha de la ronda actual se desplazan sin cambios una posición a la izquierda. Esto forma el bloque de entrada para la siguiente ronda. [cuatro]

Cajas S y permutaciones

La no linealidad del proceso de encriptación y las claves redondas la proporcionan principalmente ocho S-boxes, S 1 ... S 8 . Los bits se seleccionan para la entrada de los registros de 16 bits dados a, b y c. El orden de selección está determinado por la tabla 1 (el bit con la posición 0 es el menos significativo) [5] :

Tabla 1.
Permutación de bits de entrada
S-bloques bits de entrada
0 una 2 3 cuatro 5
S1 _ un 2 un 5 segundo 6 segundo 9 de 11 de 13
S2 _ un 1 un 4 segundo 7 segundo 10 de 8 de 14
S3 _ un 3 un 6 segundo 8 segundo 13 do 0 de 15
S4 _ un 12 un 14 segundo 1 segundo 2 do 4 de 10
S5 _ un 0 un 10 segundo 3 segundo 14 de 6 de 12
S6 _ un 7 un 8 segundo 12 segundo 15 do 1 de 5
S7 _ un 9 un 15 segundo 5 segundo 11 c 2 de 7
S8 _ un 11 un 13 segundo 0 segundo 4 do 3 de 9

Horario clave

Cada ronda del cifrado usa un parámetro de clave secreta que el módulo 2 afecta las entradas de S-box. En consecuencia, se solicitan 48 bits para cada ronda. Para convertir una clave de 128 bits en una secuencia de 48 bits, MacGuffin utiliza una versión iterada de su función de cifrado de bloques [5] .

Criptoanálisis

Al igual que DES, MacGuffin se presta al criptoanálisis diferencial, cuya esencia es el análisis de las probabilidades de obtener una cierta diferencia en los valores de la función de Feistel para una determinada diferencia de argumentos. Una característica óptima de 4 rondas tiene una probabilidad de , mientras que un DES de 2 rondas tiene una probabilidad de . Por lo tanto, 32 rondas de MacGuffin son menos estables que 16 DES [6] .

Notas

  1. Redes Feistel no balanceadas y diseño de cifrado de bloques, 1996 , p. 123.
  2. El algoritmo de cifrado de bloques de MacGuffin, 1994 , p. 97.
  3. El algoritmo de cifrado de bloques de MacGuffin, 1994 , p. 98.
  4. El algoritmo de cifrado de bloques de MacGuffin, 1994 , p. 99
  5. 1 2 El algoritmo de cifrado de bloque de MacGuffin, 1994 , p. 100.
  6. Criptoanálisis de McGuffin, 1995 , p. 354.

Literatura