Many elements of security we rely on such as generating of encryption keys and synthesizing one time session keys depend on random number generation. Any predictability of these numbers introduces potential weakness in secure systems. We often use Pseudo-random number generators (PRNGs) because they are quick and convenient, yet they are deterministic algorithms for approximating a sequence of random numbers.
By contrast a true random number generator (TRNG) is implemented in hardware based on a physical process that creates unpredictable noise. Often entropy from TRNGs is used to seed PRNGs to provide a balance of speed and unpredictability.
In this talk I will discuss the USB TRNG project of AltusMetrum to create a fully open source hardware TRNG. Why make yet another TRNG when several are commercially available? Because most existing TRNGs are expensive, out-of-stock or based on closed designs. The USB TRNG can be connected to the Entropy Key Daemon (ekeyd) which can provide entropy directly to the kernel pool or serving via the EGD protocol.
How can we evaluate the quality of the USB TRNG? Results of statistical analysis will provided along with detailed design documents in order to encourage critical community review.