Re: entropy of /dev/random vs. openssl rand

Gisle Sælensminde <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.cryptography
Message-ID <[email protected]>
markus reichelt wrote:
> Hi,
>
> I need to create a moderate amount of v3 keys for loop-aes and wonder
> how/if the "openssl rand" implementation differs significantly from
> /dev/random concerning entropy.
>
> In case /dev/random and "openssl rand" are somewhat comparable, I
> would just use the latter to create the keys.
>
>   
Openssl actually uses /dev/urandom to generate random bytes on Linux and other systems that support it, possibly with some further filtering. On systems without a random device, a configuration file is used instead, since openssl is supposed to be compatible over a wide range of systems. Openssl rand should therefore be equivalent with the non-blocking /dev/urandom on Linux.

from openssl crypto/rand/rand_unix.c:

 /* Use a random entropy pool device. Linux, FreeBSD and OpenBSD
  * have this. Use /dev/urandom if you can as /dev/random may block
  * if it runs out of random entries.  */

> However, I certainly don't want to use a /dev/urandom look-alike.
>
>   

Whether the blocking behaviour of /dev/random is desirable is a matter of discussion. Some people argue that a periodically reseeded cryptographic-quality random number generator is as secure as a true random number generator for all practical purposes. It does then not make sense with a blocking generator like /dev/random. This view is much disputed, as can be seen if you read the archives of the Linux kernel mailing list. I personally can't think of any realistic scenario where /dev/random would make you safe while /dev/urandom would make you sorry. Some people seem to think differently, including you apparently  :-) , while the openssl people seem more concerned about the blocking behaviour of /dev/random. 

-Gisle
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.