Dieharder Test Failed with 256MB/512MB samples

Jim Cheetham jim at gonzul.net
Thu Oct 4 05:12:24 BST 2018


Hi Victor,

One part of your problem is that you're testing the output of
/dev/random, not the output of OneRNG.

/dev/random is a pseudo-random number generator, and you are testing
its output. All OneRNG can do here is to help it reseed(*)
occasionally, not materially change its output.

(*) Older Linux implementations of /dev/random kept track of how much
"entropy" they had "used up" by outputting data, which is a slightly
odd way to look at the problems of number generation. In any case,
/dev/random would stop and not produce any output when it thought it
was empty. rngd provides a way to refresh the "pool" of entropy, in
our case from OneRNG, and keep /dev/random running.

Of course the right answer in recent hears has been to use
/dev/urandom instead of /dev/random, because urandom didn't make any
unwarranted blocks on this basis. In kernel 4.8, urandom's PRNG was
improved to use ChaCha20, like OpenBSD does.

However, fundamentally you aren't going to be able to measure the
behaviour of OneRNG by looking at the output of /dev/random.

-jim


More information about the Discuss mailing list