ISAAC (cifrador)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

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 similaridades 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 4.67 \times 10^{1240} en vez de 10^{2466}. 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 sólo 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]