En criptografía , M6 es un algoritmo de cifrado por bloques propuesto por Hitachi en 1997 para su uso en el estándar IEEE 1394 FireWire . El diseño permite cierta libertad a la hora de elegir algunas de las operaciones del algoritmo, por lo que se considera que M6 es una familia de algoritmos. Debido a los controles de exportación, M6 no se ha publicado en su totalidad; sin embargo, Kelsey et al. ofrecen una descripción parcial del algoritmo basada en un borrador de estándar en su criptoanálisis de esta familia de algoritmos. [1]
El algoritmo opera en bloques de 64 bits utilizando una estructura de red Feistel de 10 rondas . El tamaño de la clave es de 40 bits por defecto, pero puede ser de hasta 64 bits. La programación de la clave es muy simple, produciendo dos subclaves de 32 bits: los 32 bits altos de la clave y la suma mod 2 32 de esta y los 32 bits bajos.
Debido a que su función de ronda se basa en la rotación y la adición, M6 fue uno de los primeros cifrados atacados por el criptoanálisis mod n . [1] Mod 5, alrededor de 100 textos simples conocidos son suficientes para distinguir la salida de una permutación pseudoaleatoria . Mod 257, se revela información sobre la clave secreta en sí. Un texto simple conocido reduce la complejidad de un ataque de fuerza bruta a aproximadamente 2 35 cifrados de prueba; "unas pocas docenas" de textos simples conocidos reducen este número a aproximadamente 2 31. Debido a su simple programación de claves, M6 también es vulnerable a un ataque de deslizamiento , que requiere más texto simple conocido pero menos computación.
{{cite conference}}
: CS1 maint: varios nombres: lista de autores ( enlace )