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.