Implementation and Evaluation of Ring Oscillator-based True Random Number Generator

Naoya Torii, Ryuichi Minagawa, Hideaki Kevin Omae, Kotaro Hayashi


A true random number generator (TRNG) is suitable for generating secure keys and nonces. TRNGs implemented in IoT devices must be small in scale, have low power consumption, and be feasible. The random number sequence generated by TRNG needs to have high entropy immediately after startup and a stable state. This paper implements three types of ring oscillator type TRNGs, TERO-based, COSO-based, and STR-based TRNG, on Zynq-7010. When these TRNGs are implemented as a single entropy source, it is challenging to implement them because evaluating the layout and wiring for each FPGA is necessary. This paper evaluates a TRNG configuration, which exclusively ORs the outputs of multiple entropy sources. We show that this configuration can reduce the implementing difficulty and realize high entropy. For the random number sequence evaluation, we use the statistical test of NIST SP800-90B, SP800-22, and BSI AIS 20/31. In addition, the random number sequence immediately after the startup is also statistically evaluated. As a result, our evaluated TRNGs generate high entropy random numbers. They are easy to implement on FPGA when we implement TRNGs with eight single entropy sources for TERO-based TRNG, 48 for COSO-based TRNG, and two for STR-based TRNG, respectively. 


true random number generator; TRNG; health test; SP800-90B; SP800-22; AIS 20/31

Full Text:



  • There are currently no refbacks.