OpenBSD Implementation Strong Random Number Subsystem Gathers entropy from IO interrupt timing Mouse movements Keystrokes Disk activity Audio playback and recording Network activity* Timing of the random number subsystem And of course... hardware sources of randomness Most newer systems have some sort of hardware randomness device Entropy mixed into a pool Estimate of total randomness in the pool is maintained * Busier systems on the network generate more randomness