MISTY1 | |
---|---|
Creador | Mitsuru Matsui, Tetsuya Ichikawa, Jun Sorimachi, Toshio Tokita, Atsuhiro Yamagishi |
Creado | 1995 _ |
publicado | 1996 [ 1 ] |
Tamaño de clave | 128 bits |
Tamaño de bloque | 64 bits |
Número de rondas | 4×n (recomendado 8) |
Tipo de | Red Feistel |
MISTY1 (o MISTY-1 ) es un algoritmo de cifrado de bloques creado sobre la base de redes Feistel "anidadas" en 1995 por el criptólogo Mitsuru Matsui junto con un grupo de especialistas de Mitsubishi Electric . MISTY es una abreviatura de Mitsubishi Improved Security Technology, así como las iniciales de los creadores del algoritmo: Tetsuya Ichikawa, Jun Sorimachi, Toshio Tokita y Atsuhiro Yamagishi también participaron en el desarrollo del algoritmo [2] . El algoritmo se desarrolló en 1995, pero se autorizó y publicó en 1996.
MISTY1 es una red Feistel con un número variable de rondas (se recomienda 8, pero puede ser cualquier múltiplo de 4). El algoritmo funciona con bloques de 64 bits y utiliza una clave de 128 bits. El cifrado se convirtió en el ganador entre los algoritmos que cifran bloques de 64 bits en la competencia europea NESSIE [3] [4] . Como resultado del análisis del algoritmo realizado en el marco de este concurso y antes del mismo, los expertos concluyeron que este algoritmo no presenta vulnerabilidades graves (en concreto señalaron que es la estructura del algoritmo con redes Feistel anidadas la que complica significativamente el criptoanálisis). Se llevaron a cabo estudios similares en el marco del proyecto CRYPTREC sobre la elección de algoritmos criptográficos para el gobierno electrónico de Japón. Los expertos del proyecto apreciaron mucho el algoritmo MISTY1 y concluyeron que tiene un alto margen de fortaleza criptográfica, el algoritmo tiene una alta velocidad de cifrado y es muy efectivo para la implementación de hardware.
Algoritmo patentado MISTY1. Sin embargo, el propietario original de la patente, Mitsubishi Electric, ha anunciado que otorgará la licencia de uso de forma gratuita. [5]
MISTY fue desarrollado como un criptosistema que puede ser utilizado en la práctica por una gran cantidad de sistemas de aplicación, por ejemplo: software para trabajar con tarjetas inteligentes o en redes de cajeros automáticos rápidos. Por lo tanto, el algoritmo MISTY1 se basa en los siguientes tres principios:
Para cumplir con estos requisitos, se utilizaron los siguientes métodos de encriptación en el algoritmo MISTY1:
El algoritmo MISTY1 tiene una estructura muy inusual: se basa en redes Feistel "anidadas". Primero, un bloque de datos cifrados de 64 bits se divide en dos subbloques de 32 bits, después de lo cual se realizan r rondas de las siguientes transformaciones [6] :
El número recomendado de rondas de algoritmos es 8, pero el número de rondas de algoritmos también puede ser mayor que 8 y un múltiplo de cuatro.
La operación de FL es bastante simple. El subbloque procesado por él se divide en dos fragmentos de 16 bits, en los que se realizan las siguientes acciones:
dónde:
L y R son los valores de entrada de los fragmentos izquierdo y derecho, respectivamente;
L' y R' son valores de salida;
y son fragmentos de la j-ésima subclave de la i-ésima ronda para la función FL (el procedimiento de expansión de clave se describe en detalle a continuación);
& y | - operaciones lógicas bit a bit "y" y "o", respectivamente.
La función FO es más interesante porque es la red Feistel anidada. Similar a las anteriores, la función divide el valor de entrada en dos fragmentos de 16 bits, después de lo cual se realizan 3 rondas de las siguientes acciones:
Después de la tercera ronda de la operación FO, la operación XOR superpone un fragmento clave adicional al fragmento izquierdo .
FI también es una red Feistel, es decir, este ya es el tercer nivel de anidamiento. A diferencia de las redes de Feistel en los dos niveles superiores, esta red está desequilibrada: el fragmento de 16 bits procesado se divide en dos partes: 9 bits a la izquierda y 7 bits a la derecha. Luego se realizan 3 rondas, que consisten en lo siguiente:
Para mayor claridad, un flujo de datos de 9 bits está resaltado en negrita en la figura.
Las tablas S7 y S9 del algoritmo MISTY1 se pueden implementar tanto con la ayuda de cálculos como directamente mediante tablas almacenadas en la memoria no volátil del dispositivo de cifrado. Al implementar el algoritmo, se debe seleccionar la opción de usar tablas dependiendo de los recursos del dispositivo de cifrado.
La tarea del procedimiento de expansión de clave es formar el siguiente conjunto de fragmentos de clave utilizados (para 8 rondas del algoritmo):
Por lo tanto, el procedimiento de expansión de clave calcula 1216 bits de información de clave a partir de la clave de cifrado de 128 bits del algoritmo MISTY1. Este cálculo se realiza de la siguiente manera:
1. Una clave de 128 bits se divide en 8 fragmentos de 16 bits cada uno.
2. Se forman los valores : el resultado del procesamiento del valor por la función FI se usa como clave (es decir, el conjunto de fragmentos requeridos de 7 y 9 bits) usa el valor (en adelante, si el índice n de el fragmento de clave excede 8, luego en su lugar, índice n-8).
3. Los fragmentos necesarios de la clave extendida se "recopilan" a medida que se realizan las transformaciones a partir de matrices y de acuerdo con las tablas a continuación.
Objetivo | |||||||
---|---|---|---|---|---|---|---|
Fragmento |
Objetivo | ||||
---|---|---|---|---|
Fragmento |
4. Un fragmento de 16 bits se divide en un fragmento de 7 bits y un fragmento de 9 bits .
El descifrado se realiza realizando las mismas operaciones que para el cifrado, pero con los siguientes cambios:
El esquema del procedimiento de descifrado se muestra en la Figura:
La operación FLI se define de la siguiente manera:
MISTY1 fue desarrollado en base a la teoría de la "seguridad comprobada" frente al criptoanálisis lineal y diferencial. Este algoritmo fue diseñado para soportar varios criptoataques conocidos en el momento de su creación.
Desde la publicación de misty, se han realizado muchos estudios para evaluar su nivel de seguridad. A continuación se muestran algunos de los resultados de la investigación de brumoso con menos rondas.
El criptoanálisis diferencial de alto orden se aplica efectivamente a los cifrados de bloque de bajo grado. Misty contiene 2 tablas de consulta S7 y S9, ambas con anuncios pequeños, 3 y 2 respectivamente. Por lo tanto, muchos artículos están dedicados al criptoanálisis diferencial de mysti. El mejor resultado se obtuvo para el algoritmo de 5 niveles sin funciones FL. Sin embargo, es la presencia de funciones FL y operaciones AND/OR de bits anchos en ellas lo que hace que sea muy difícil usar el criptoanálisis diferencial de alto orden.
El análisis diferencial imposible también se aplica a una fuente de bloque con el mismo valor de subclave en cada ronda (o cada n-ésima ronda). Y dado que MISTY1 tiene un sistema de expansión de claves bastante simple, es bastante natural considerar la aplicabilidad de este ataque a este algoritmo. El mejor resultado para tal ataque también se obtuvo al considerar el algoritmo sin funciones FL.
El cifrado se convirtió en el ganador entre los algoritmos que cifran bloques de 64 bits en la competencia europea NESSIE (2000-2003). Como resultado del análisis del algoritmo realizado en el marco de este concurso y antes del mismo, los expertos concluyeron que este algoritmo no presenta vulnerabilidades graves (en concreto señalaron que es la estructura del algoritmo con redes Feistel anidadas la que complica significativamente el criptoanálisis).
Se llevaron a cabo estudios similares en el marco del proyecto CRYPTREC sobre la elección de algoritmos criptográficos para el gobierno electrónico de Japón. Los expertos del proyecto apreciaron mucho el algoritmo MISTY1 y concluyeron que tiene un alto margen de fortaleza criptográfica, el algoritmo tiene una alta velocidad de cifrado y es muy efectivo para la implementación de hardware.
Hay una modificación de este algoritmo: MISTY2 . Sin embargo, no ha ganado mucha popularidad debido al bajo nivel de fortaleza criptográfica.
Además, una modificación de MISTY1, el algoritmo KASUMI , se generalizó en 2000 y se convirtió en el estándar de cifrado móvil W-CDMA.
Criptosistemas simétricos | |
---|---|
Cifrados de flujo | |
Red Feistel | |
red SP | |
Otro |