Randomness is far more important on a computer than most people realize. Randomness is used in numerous apps and is also key to encryption such as found in SSL and TLS. Without randomness, encryption would be an impossible undertaking.
On the Linux platform, there are two devices that produce randomness: /dev/random and /dev/urandom. Of the two systems, /dev/random offers the best randomness, as it will wait until it has received sufficient entropy before providing output because it is a blocking device. (Entropy is the randomness collected by either an operating system or an application for use in cryptography.) However, /dev/urandom/ is not a blocking device, so when there isn’t sufficient entropy, it will continue to produce random data even though the data it will produce at that point isn’t truly random. Because /dev/random is a blocking device, it will hold off until there is sufficient entropy to produce truly random data.
If you’ve ever generated a GPG key, you know where much of the randomness comes from: the keyboard and the mouse. You move the mouse and use your keyboard and the system will generate enough entropy to perform the task. But what happens when you’re on a headless machine? How do you generate entropy?
Submitted by: Arnfried Walbrecht