MULTI2 es un cifrado de bloques , desarrollado por Hitachi en 1988. Diseñado para la criptografía de propósito general, su uso actual es el cifrado de televisión de alta definición transmisiones en Japón .
General | |
---|---|
Diseñadores | Hitachi |
Publicado por primera vez | 1988 |
Detalle de cifrado | |
Tamaños de clave | 64 bits |
Tamaños de bloque | 64 bits |
Estructura | Red Feistel |
Rondas | Variable |
Detalles de cifrado
MULTI2 es un algoritmo de clave simétrica con número variable de rondas. Tiene un tamaño de bloque de 64 bits y un tamaño de clave de 64 bits. Se utiliza una constante de cuadro de sustitución dependiente de la implementación de 256 bits durante la programación de claves . La codificación y decodificación se realiza repitiendo cuatro funciones básicas (involuciones).
Historia
- 1988 Patente MULTI2 solicitada por Hitachi, Ltd el 28 de abril
- 1989 Algoritmo anunciado a la Sociedad de Procesamiento de Información DPS-SIG de Japón
- 1991 Patente número 4982429 concedida para el algoritmo MULTI2 en Estados Unidos
- 1994 Algoritmo registrado con ISO / IEC 9979 y número de registro asignado 9
- 1995 MULTI2 adoptado como cifrado estándar para la radiodifusión CS-Digital en Japón
- 1998 Patente japonesa número 2760799 concedida para el algoritmo MULTI2
Criptoanálisis
Hay una gran clase de claves equivalentes en el cifrado de bloque Multi2. La clase más grande (encontrada hasta ahora) se deriva del hecho de que la función de ronda Pi3 en el programa de teclas no es biyectiva . Por ejemplo, con la siguiente clave de entrada de 40 bytes para el programa de claves:
45 ec 86 d8 b6 5e 24 d5 38 fe 1d 90 ce fc a4 22 3e 39 1b e3 da 03 0f cb 9c 9e d7 c6 1c e4 73 61 d0 fa 39 86 58 5d 5b 90
Puede realizar las siguientes modificaciones de un solo byte (modificación aquí significa XOR contra el byte de clave original):
Puede modificar el byte 5 con CFPuede modificar el byte 7 con 77Puede modificar el byte 20 con 9APuede modificar el byte 20 con A9Puede modificar el byte 20 con D7Puede modificar el byte 21 con 35Puede modificar el byte 21 con 6APuede modificar el byte 21 con 9FPuede modificar el byte 21 con CCPuede modificar el byte 22 con 4DPuede modificar el byte 22 con 7APuede modificar el byte 22 con A7Puede modificar el byte 23 con 53Puede modificar el byte 23 con AE
En este caso, hay 15 claves diferentes que se programarán para las mismas 8 claves redondas de 32 bits para la ruta de cifrado masivo de cifrados. Las claves son todas diferentes en la primera palabra clave utilizada en la función de ronda Pi3 (teclas k [1] yk [5]). La colisión ocurre porque una diferencia de un solo byte se convierte en un patrón como 0X0X0000 (rotado por 0, 8, 16 o 24 bits) que luego se expande a una variación de 0X000X00 y finalmente en la penúltima línea (con el rotar por 16 y el XOR) las diferencias se anulan. Convirtiéndose en un delta cero.
El problema surge del hecho de que la función
x = ROL (x, y) ^ x
Donde ROL significa rotar a la izquierda en y bits, no es biyectivo para ningún valor de y. Existen problemas similares con las funciones Pi2 y Pi4, pero aparentemente son más difíciles de explotar porque el valor de rotación es menor.
También hay otras observaciones, por ejemplo
x = ROL (x, 1) - x
Encontrado en Pi3, es una función de identidad para el 50% de los valores de x (donde el byte más significativo es cero).
Esto también significa que es posible tener claves débiles donde, en lugar de forzar diferencias de un solo byte en la clave, están en el texto sin formato en Pi3 produce una salida de delta cero y posiblemente conduzca a un diferencial de 1R.