2
  1. Is there any reason to believe that the hardware RNG in an Intel Celeron CPU is more unreliable than in other CPUs?

  2. Can someone confirm that what Linus Torvalds says is true, namely that Linux does not rely fully on the hardware RNG in the CPU, in particular in an Intel CPU?

Finally, to make it concrete for my particular use case:

  1. Can I always trust the random bytes provided by OpenSSL's RAND_bytes when run on Debian or Ubuntu Linux, even if run on an Intel Celeron CPU?
  • By "PRNG", are you talking about a pseudo-random number generator, or do you mean "hardware random number generator"? – Mark Jun 25 '15 at 9:32
  • @Mark whatever makes sense (I'm no expert). The latter I suppose. – cryptonamus Jun 25 '15 at 19:32
  • 1
    Trust isn't a binary value of yes or no. Any number of components in your hardware or software could be working against you. The degree to which you trust the random bytes output by some software should be considered in relation to the likelihood of you being targeted and the sensitivity of the information you're trying to protect. – Stephen Touset Jun 25 '15 at 21:16
3

The reason people are concerned about the RDRAND instruction is that it is a proprietary hardware random generator and has never been formally analyzed. Without that analysis, there's no way to tell if it's a genuine hardware random number generator or, for example, a simple counter being passed through a cryptographic hash. In the latter case, the output will look random, but someone who knows the starting point of the counter knows exactly what numbers will be generated.

Anyone can look at the Linux source code for /dev/random and confirm that the kernel is mixing RDRAND output into its entropy pool in a way that doesn't reduce the amount of randomness available, even if RDRAND is hopelessly biased.

Whether you can trust RAND_bytes or not is a judgement call you'll have to make for yourself, but what I can say is that running it on a Celeron with RDRAND is no worse than running it anywhere else.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.