ISAAC (cipher)
From Free net encyclopedia
ISAAC is a pseudorandom number generator designed by Bob Jenkins (1996) to be cryptographically secure. The name is an acronym for Indirection, Shift, Accumulate, Add, and Count.
Contents |
Operation
The ISAAC algorithm has similarities to RC4. It uses an array of 256 4-byte integers (called mm) as the internal state, writing the results to another 256-integer array, from which they are read one at a time until empty, at which point they are recomputed. The computation consists of altering mm[i] with mm[i^128], two elements of mm found by indirection, an accumulator, and a counter, for all values of i from 0 to 255. Since it only takes about 19 32-bit operations for each 32-bit output word, it is extremely fast on 32-bit computers.
Cryptanalysis
Cryptanalysis has been undertaken by Marina Pudovkina (2001). Her attack can recover the initial state with a complexity that is approximated to be less than the time needed for searching through the square root of all possible initial states. In practice this means that the attack needs <math>4.67 \times 10^{1240}</math> instead of <math>10^{2466}</math>. This has yet no impact on the practical security of ISAAC.
References
- 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].