[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: entropy of /dev/random vs. openssl rand
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
-
Linux-crypto: cryptography in and on the Linux system
Archive: http://mail.nl.linux.org/linux-crypto/