ISAAC (cipher)

ISAAC (indirection, shift, accumulate, add, and count) is a cryptographically secure pseudorandom number generator and a stream cipher designed by Robert J. Jenkins Jr. in 1993.

[1] The reference implementation source code was dedicated to the public domain.

The computation consists of altering i-element with (i⊕128)-element, two elements of the state array found by indirection, an accumulator, and a counter, for all values of i from 0 to 255.

[6] The fourth presented (and smallest) set of weak states leads to a highly biased output for the first round of ISAAC and allows the derivation of the internal state, similar to a weakness in RC4.

[citation needed] ISAAC is used in the Unix tool shred to securely overwrite data.

[8], Also, ISAAC algorithm is implemented in Java Apache Commons Math library.