algorithm bit block cipher blum blum shub chi-square test cryptgenrandom cryptographically secure pseudorandom number generator cryptography donald knuth eniac exclusive or federal office for information security freebsd gnu general public license hardware random number generator john von neumann lagged fibonacci generator linear congruential generator linear feedback shift register mac os x mainframe computer mersenne twister microsoft middle-square method monte carlo method oak ridge national laboratory operating system plaintext poisson distribution pseudorandom binary sequence randu random number generator attack random seed randomized algorithm randomness rayleigh distribution simd stream cipher yarrow algorithm ziggurat algorithm