A random number generator (RNG) is an essential function for security solutions. The security strength of many systems and applications depends on a high quality RNG. The National Institute of Standards and Technology (NIST) has proposed in document NIST800- 90C the construction of a qualified RNG as a combination of true random number seeds, deterministic generator methods and post-processing algorithms. However, a true high-quality random seed is hard to design. An entropy source must provide ideal randomness and be derived from physical sources. Moreover, according to NIST regulations, four separate entropy sources are needed to construct a fully qualified true random number generator (TRNG).
Our PUFtrng leverages the perfect randomness of NeoPUF to generate the qualified TRNG without the need for high-quality entropy sources. This allows for a simpler design to generate random bits and leads to efficient power consumption as well. Moreover, our circuit design enables PUFtrng to have the same level of randomness without the need for additional data post processing, leading to a high throughput bit rate.
True randomness with efficient power consumption and high-speed throughput: PUFtrng
A conventional TRNG requires high-quality entropy sources and post-processing algorithms to generate high-quality random number bits. To design such high-quality entropy sources, many factors should be considered such as operation conditions, entropy behavior, generation rate, etc. Moreover, in order to enhance security strength, these live seeds should be modified by an approved post-processing method before they are used by a consuming application. The counter mode of the advanced encryption standard (AES-CTR) and hash (SHA2-256) function are the two post processing algorithms used most frequently.
In contrast, PUFtrng uses an entropy-assisted design to achieve the required output randomness quality. PUFtrng only uses NeoPUF, a simple entropy source, and a conditioner for reseeding to create an entropy engine that reaches true randomness . NeoPUF is a fixed random number pool with an ideal Hamming weight of 0.5, which is used as the multiplier for both entropy source and entropy engine to increase the overall entropy quality. NeoPUF is the key contributor for the enhanced randomness of entropy engine output, making it a true random number generator. Due to the reliability of NeoPUF, randomness doesn t change in different environments. Moreover, the entropy engine also includes a hardware conditioner to ensure the true randomness of its output bits.