Not sure if this is the right forum, and I am pretty sure that his must have been answered before (I searched a lot but I haven't found a definitive answer).

Do the Linux random number generators (/dev/random and /dev/urandom) comply to any industry standards? More specifically, if my application uses /dev/random, can I achieve compliance with regulations that require the employed random number generator fulfill some standard?

For example, if my application uses /dev/random, can I claim that the random numbers are NIST SP 800-90A DRGB compliant?

Apologies if this is off-topic or obvious, but as I said, I could not find a definitive answer anywhere.

(I was directed here from https://crypto.stackexchange.com/)

  • Does not answer your question, but certainly an interesting article about the difference between random and urandom in a cryptography context: "Myths about /dev/urandom"
    – Philipp
    Commented Apr 17, 2015 at 11:21
  • Thanks. This is indeed a very interesting resource and helpful for everyone using either of the two.
    – arnuschky
    Commented Apr 17, 2015 at 11:24
  • It seems the modern Linux versions do implement the NIST SP 800-90A DRGB mechanisms. For example, have a look at this post: www.openssl.org/blog/blog/2017/08/12/random/
    – dbaltor
    Commented Jun 28, 2020 at 19:06

2 Answers 2


If we take a look at the man page for random we get the following:

The random number generator gathers environmental noise from device drivers and other sources into an entropy pool. The generator also keeps an estimate of the number of bits of noise in the entropy pool. From this entropy pool random numbers are created.

At the bottom we see:

SEE ALSO         

       getrandom(2), mknod(1)
       RFC 1750, "Randomness Recommendations for Security"

RFC1750 is just recommendations for cryptographically secure random number generations (CSRNG). /dev/random is considered cryptographically secure, but it doesn't follow the NIST SP 800-90A standard. Nor any other standard from what I can tell.


dev/random is not even remotely the same as NIST SP 800-90A DRGB. If you want to claim compliance to NIST SP 800-90A DRGB then hire a test lab to test your DRBG and submit the results to NIST's Cryptographic Algorithm Validation Program (http://csrc.nist.gov/groups/STM/cavp/index.html) and then it will end up on this list: http://csrc.nist.gov/groups/STM/cavp/documents/drbg/drbgval.html

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .