Random Number Generation

High-throughput random number generators (RNGs) are required in many applications such as cryptography, signal processing, simulation methods, probabilistic algorithms, etc. Their data rate is not the only important characteristic, their randomness quality is also a key parameter in some critical applications.

Two main kinds of RNGs exist:

  • True random number generators (TRNGs), they use a physical noise source to produce a random signal. TRNGs produce unpredictable random streams but with a limited data rate (up to a few Mb.s-1).
  • Pseudo random number generators (PRNGs), they use computational methods to produce random sequences with a very high data rate but with a (hopefully very long) periodic behavior. PRNGs cannot be used alone in security applications, they need to be initialized by TRNG seeds.

The CAIRN team works on hardware TRNGs with a high throughput and high randomness quality. We also designed and implemented a complete method for the on-line and real-time monitoring of the randomness quality in the RNG chip for ASIC and FPGA implementations.

Several TRNG architectures have been designed and implemented:

  • OCHRE V1: basic TRNG architectures in a 130 nm ASIC ST technology (1 mm2 circuit)
  • OCHRE V2: advanced TRNG architectures with on-line randomness quality monitoring in a 130 nm ASIC ST technology (4 mm2 circuit)
  • High data rate TRNG architectures with on-line randomness quality monitoring for Xilinx, Altera and Actel FPGAs.