ISAAC (cifrador)

algoritmo de un generador de números pseudoaleatorio

En criptografía, ISAAC es un generador pseudoaleatorio de números (PRNG) y un cifrador de flujo diseñado por Robert Jenkins (1996) para ser criptográficamente seguro. El nombre es un acrónimo de Indirection, Shift, Accumulate, Add, and Count.[1]

Operación editar

El algoritmo ISAAC comparte similitudes con RC4. Usa un vector de 256 enteros de 4 bits (llamado mm) como estado interno, escribiendo los resultados en otro vector de 256 enteros, del que se leen de uno en uno hasta que se vacíe, y en ese momento se vuelven a computar. La computación consiste en alterar mm[i] con mm[i^128], dos elementos de mm encontrados por indirección, un acumulador, y un contador, para todos los valores de i desde 0 a 255. Como sólo necesita 19 operaciones de 32 bits para cada palabra de salida de 32 bits, es extremadamente rápido en ordenadores de 32 bits.

Criptoanálisis editar

El Criptoanálisis ha sido abordado por Marina Pudovkina (2001).[2]​ Su ataque puede recuperar el estado inicial con una complejidad aproximadamente menor que el tiempo necesario para buscar a través de la raíz cuadrada de todos los posibles estados iniciales. En la práctica, esto significa que el ataque necesita   en vez de  . Este resultado no ha tenido impacto práctico en la seguridad del ISAAC. Como siempre con las primitivas de la criptografía, futuras mejoras, u otros ataques, son posibles.

En 2006, Jean-Philippe Aumasson descubrió varias series de estados débiles.[3]​ La cuarta (y más pequeña) serie de estados débiles, lleva a una salida muy parcial para la primera vuelta del ISAAC, y permite la derivación del estado interno, similar a la debilidad en RC4. No está claro si un atacante puede asegurar solo por la salida si el generador está en uno de estos estados débiles o no. También muestra que un ataque anterior[4]​ es defectuoso, ya que el ataque de Paul-Preneel está basado en un algoritmo erróneo más que en el ISAAC real. Se ha propuesto una versión mejorada del ISAAC, llamada ISAAC+.

Usos fuera de la criptografía editar

Muchas implementaciones del ISAAC son tan rápidas que pueden competir con otros PRNG de alta velocidad, incluso con aquellos diseñado principalmente por la velocidad y no por la seguridad. Sólo existen otros pocos generadores de tal alta calidad y velocidad en la usanza.

Referencias editar

  1. Robert J. Jenkins Jr., ISAAC. Fast Software Encryption 1996, pp41–49.
  2. Marina Pudovkina, A known plaintext attack on the ISAAC keystream generator, 2001, Cryptology ePrint Archive: Report 2001/049, [1].
  3. Jean-Philippe Aumasson, On the pseudo-random generator ISAAC. Cryptology ePrint archive, report 2006/438, 2006.
  4. Souradyuti Paul, Bart Preneel, On the (In)security of Stream Ciphers Based on Arrays and Modular Addition.Asiacrypt 2006.

Enlaces externos editar