ISAAC (cifrador)
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]- ↑ Robert J. Jenkins Jr., ISAAC. Fast Software Encryption 1996, pp41–49.
- ↑ Marina Pudovkina, A known plaintext attack on the ISAAC keystream generator, 2001, Cryptology ePrint Archive: Report 2001/049, [1].
- ↑ Jean-Philippe Aumasson, On the pseudo-random generator ISAAC. Cryptology ePrint archive, report 2006/438, 2006.
- ↑ Souradyuti Paul, Bart Preneel, On the (In)security of Stream Ciphers Based on Arrays and Modular Addition.Asiacrypt 2006.
Enlaces externos
[editar]- Official ISAAC website
- Math::Random::ISAAC, a Perl module implementation of the algorithm