Random Number Generator
When a program generates a random number, this number is not really random (that is why program-generated random numbers are called pseudo-random). This occurs because the computer, as an ”exact“ device, cannot ”create“ a number out of the blue. To generate a random number, the computer uses its real time clock.
For the majority of users this ”problem“ isn’t a big deal, since the numbers generated that way are random enough for almost all applications. But when it comes to encryption keys this can lead to a security problem.
A hacker, knowing more or less the date and time that a given key was generated, is capable of reducing a lot the number of tries he (or she) has to perform to reproduce it.
In systems where important encryption keys are generated it is necessary to use a separated circuit called Random Number Generator (RNG), which generates keys without using the computer’s real time clock.