En criptografía , MICKEY ( generador de KEYstream de reloj irregular mutuo en inglés ) es un algoritmo de cifrado de flujo . Hay dos versiones de este algoritmo: con una longitud de clave de 80 bits (MICKEY) y 128 bits (MICKEY-128). Fue desarrollado por Steve Babbage y Matthew Dodd en 2005 para su uso en sistemas con recursos limitados. Este algoritmo tiene una implementación de hardware simple con un alto grado de seguridad. Utiliza la temporización irregular de los registros de desplazamiento, así como nuevos métodos que proporcionan un período lo suficientemente grande y pseudoaleatoriedad de la secuencia de teclas y resistencia a los ataques [1] . El algoritmo MICKEY participó en la competencia eSTREAM organizada por la comunidad eCRYPT . La versión actual del algoritmo es la 2.0. Ingresó a la cartera de eCRYPT como un cifrado de flujo para la implementación de hardware [2] .
Parámetros de entrada:
La secuencia de teclas se denota z 0 , z 1 , z 2 ... .
La longitud máxima de la secuencia de teclas obtenida utilizando un par (K, IV) es de 2 40 bits. Sin embargo, se permite obtener 240 de tales secuencias utilizando una K , siempre que IV se elija diferente para cada nueva secuencia.
El generador consta de dos registros R y S , cada uno de los cuales tiene 100 bits de longitud.
Los bits de estos registros se designan r 0 , r 1 , ..., r 99 y s 0 , s 1 , ..., s 99 respectivamente.
El conjunto de entradas de realimentación del registro R se denomina RTAPS.
RTAPS = { 0, 1, 3, 4, 5, 6, 9, 12, 13, 16, 19, 20, 21, 22, 25, 28, 37, 38, 41, 42, 45, 46, 50, 52 , 54, 56,
58, 60, 61, 63, 64, 65, 66, 67, 71, 72, 79, 80, 81, 82, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97}
La operación de cambio CLOCK_R (R, INPUT_BIT_R, CONTROL_BIT_R) se define mediante la siguiente secuencia de acciones:
Definamos cuatro secuencias COMP0 1 … COMP0 98 , COMP1 1 … COMP1 98 , FB0 0 … FB0 99 , FB1 0 … FB 99 según la tabla:
i | 0 | una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | 21 | 22 | 23 | 24 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
COMP0 yo | 0 | 0 | 0 | una | una | 0 | 0 | 0 | una | 0 | una | una | una | una | 0 | una | 0 | 0 | una | 0 | una | 0 | una | 0 | |
COMP1 yo | una | 0 | una | una | 0 | 0 | una | 0 | una | una | una | una | 0 | 0 | una | 0 | una | 0 | 0 | 0 | una | una | 0 | una | |
FB0 yo | una | una | una | una | 0 | una | 0 | una | una | una | una | una | una | una | una | 0 | 0 | una | 0 | una | una | una | una | una | una |
FB1 yo | una | una | una | 0 | una | una | una | 0 | 0 | 0 | 0 | una | una | una | 0 | una | 0 | 0 | una | una | 0 | 0 | 0 | una | 0 |
i | 25 | 26 | 27 | 28 | 29 | treinta | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
COMP0 yo | una | 0 | una | 0 | una | una | 0 | una | 0 | 0 | una | 0 | 0 | 0 | 0 | 0 | 0 | 0 | una | 0 | una | 0 | una | 0 | una |
COMP1 yo | 0 | una | una | una | 0 | una | una | una | una | 0 | 0 | 0 | una | una | 0 | una | 0 | una | una | una | 0 | 0 | 0 | 0 | una |
FB0 yo | una | una | una | una | 0 | 0 | una | una | 0 | 0 | 0 | 0 | 0 | 0 | una | una | una | 0 | 0 | una | 0 | 0 | una | 0 | una |
FB1 yo | 0 | una | una | 0 | 0 | una | 0 | una | una | 0 | 0 | 0 | una | una | 0 | 0 | 0 | 0 | 0 | una | una | 0 | una | una | 0 |
i | cincuenta | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | sesenta y cinco | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
COMP0 yo | 0 | 0 | 0 | 0 | una | 0 | una | 0 | 0 | una | una | una | una | 0 | 0 | una | 0 | una | 0 | una | una | una | una | una | una |
COMP1 yo | 0 | 0 | 0 | una | 0 | una | una | una | 0 | 0 | 0 | una | una | una | una | una | una | 0 | una | 0 | una | una | una | 0 | una |
FB0 yo | 0 | una | 0 | 0 | una | 0 | una | una | una | una | 0 | una | 0 | una | 0 | una | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
FB1 yo | 0 | 0 | una | 0 | 0 | 0 | una | 0 | 0 | una | 0 | 0 | una | 0 | una | una | 0 | una | 0 | una | 0 | 0 | una | 0 | una |
i | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
COMP0 yo | una | una | una | 0 | una | 0 | una | una | una | una | una | una | 0 | una | 0 | una | 0 | 0 | 0 | 0 | 0 | 0 | una | una | |
COMP1 yo | una | una | una | 0 | 0 | 0 | una | 0 | 0 | 0 | 0 | una | una | una | 0 | 0 | 0 | una | 0 | 0 | una | una | 0 | 0 | |
FB0 yo | una | una | 0 | una | 0 | 0 | 0 | una | una | 0 | una | una | una | 0 | 0 | una | una | una | 0 | 0 | una | una | 0 | 0 | 0 |
FB1 yo | 0 | 0 | 0 | una | una | una | una | 0 | una | una | una | una | una | 0 | 0 | 0 | 0 | 0 | 0 | una | 0 | 0 | 0 | 0 | una |
La función de cambio de registro S CLOCK_S se define como una secuencia de acciones:
Definamos la función CLOCK_KG(R, S, MIXING, INPUT_BIT) de la siguiente manera:
Los registros se inicializan utilizando los parámetros iniciales K y IV de la siguiente manera:
Después de cargar e inicializar, puede comenzar a generar la secuencia de teclas z 0 , z 1 , … , z L-1 :
Los cifrados de flujo que utilizan un reloj irregular a menudo están sujetos a ataques estadísticos. Usan una suposición sobre cuántas veces se ha cambiado el registro. Ciertas características del cifrado son responsables de la posibilidad de tal ataque:
Durante el desarrollo, las siguientes ideas formaron la base del cifrado MICKEY:
Con respecto a las propiedades especificadas 1-3 que empeoran la fuerza criptográfica, MICKEY se comporta de la siguiente manera:
El registro R proporciona la no repetibilidad del estado del generador y buenas propiedades estadísticas locales. La influencia del registro R en S también evita que S haga un bucle con un período pequeño. Si J ≤ 2 60 , entonces el estado del registro R no se repetirá al generar una secuencia de teclas de hasta 2 40 bits de longitud. Y si J ≥ 2 40 , entonces la propiedad (2) no es verdadera.
Los bits de control para cada registro se eligen de modo que dependan de ambos registros. Por lo tanto, conocer el estado de uno de los registros no es suficiente para determinar los estados posteriores del generador.
Dado que la temporización irregular está controlada por bits del propio generador, esto puede reducir la cantidad de entropía en el generador. El uso de la operación XOR y bits de dos registros para obtener un bit de control garantiza que no haya correlación entre ese bit de control y el registro controlado. Debido a esto, la entropía no disminuye durante el funcionamiento del generador.
Criptosistemas simétricos | |
---|---|
Cifrados de flujo | |
Red Feistel | |
red SP | |
Otro |