MICKEY

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] .

Terminología

Parámetros de entrada:

La secuencia de teclas se denota z 0 , z 1 , z 2 ... .

Restricciones de uso

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.

Dispositivo generador de secuencias de teclas

Registros

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.

Registro turno R

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:

Registrar turno S

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:

Control de temporización de todo el oscilador

Definamos la función CLOCK_KG(R, S, MIXING, INPUT_BIT) de la siguiente manera:

Carga e inicialización de claves

Los registros se inicializan utilizando los parámetros iniciales K y IV de la siguiente manera:

Generación de secuencias de teclas

Después de cargar e inicializar, puede comenzar a generar la secuencia de teclas z 0 , z 1 , … , z L-1 :

Características

Temporización irregular del registro R

Razones para usar fichajes irregulares

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:

  1. el cambio de registro primero m veces, y luego n veces da el mismo resultado que el cambio de registro primero n veces, y luego m veces, es decir, diferentes opciones de sincronización conmutan. Esto le da una ventaja al criptoanalista, ya que no hay necesidad de determinar el orden de tales operaciones;
  2. Además, si hay muchas opciones de cronometraje de registros, entonces, por ejemplo, se dan cinco cambios de registro mediante una operación de cronometraje simple y cuádruple o doble y triple, lo que reduce aún más el número de combinaciones para la enumeración, simplificando el ataque estadístico;
  3. Un cambio de n veces puede ocurrir después de cualquier cambio.

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:

  1. es cierto para el registro R , ya que reloj J • reloj 1 = reloj 1 • reloj J , pero no es cierto para el registro S , cuyas operaciones de reloj no conmutan.
  2. no es cierto para ambos registros. Para R , para cualquier t ≤ 2 40 y u , hay como máximo un par n 1 y n J tal que 0 ≤ n 1 ,n J ≤ t , n 1 + n J = t y n 1 + n J J = u , donde n 1 y n J corresponden a un desplazamiento simple y doble.
  3. no es cierto para ambos registros. Para R , para cualquier u dada , hay como máximo una triple t , n 1 y n J tal que t ≤ 2 40 , 0 ≤ n 1 , n J ≤ t , n 1 + n J = t y n 1 + n J J = tu .

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.

Selección de bits de control de temporización

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.

La cantidad de entropía

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.

Notas

  1. Steve Babbage, Matthew Dodd. The stream cipher MICKEY 2.0 Archivado el 27 de mayo de 2011 en Wayback Machine .  
  2. T. Bueno y M. Benaissa. Resultados de hardware para candidatos de cifrado de flujo seleccionados . Archivado el 2 de marzo de 2011 en Wayback Machine .  

Enlaces