scipr-lab/libsnark — pull request #6 by jkroll (2014-09-25 20:37:23+00:00)
Title: Make the discussion of system sources of randomness clearer.

On most modern linux systems, there's essentially no security
difference between /dev/random and /dev/urandom, meaning that the
blocking property of /dev/random is actually harmful in many
cases. This advice is not necessarily true if you care about
e.g. embedded systems where you're going to generate crypto keys
immediately after boot (or, in some cases, even a long time after
boot).

In general, the best advice is to use external high-quality randomness
for keys (or to use urandom on a system where you believe it has been
keyed appropriately). See
http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/
for a careful explanation. Also know that there's a lot of active work
to improve the behavior and cluefulness of both /dev/random and
/dev/urandom. I don't know enough about the state of that to summarize
it, though.