Efficient generation of random numbers plays significant role in cryptographic applications. Such a generator has to produce unpredictable and un-correlated random bits. Random number generators are classified as pseudo-random number generators (PRNGs) and true random number generators (TRNGs). The first ones have the disadvantage that they can be proven predictable, while the latter ones can produce true random bits but it is not easy to re-produce specific sequences or implement them in constrained environments and there may exist correlations and biases of produced sequences. A third class of random number generators has been introduced, called hybrid-random number generators (h-RNGs), where there is a combination of a cryptographically strong PRNGs or TRNGs which are seeded, and possibly re-seeded, through a source of randomness with high entropy. In this paper, we present an overview of various sources of randomness that can be used either as direct random number generators or as seed sources in h-RNGs, for application in embedded systems.
Read full abstract