True Random Numbers Generator Implementation

Noise Sources in Circuits#

  • Thermal shot noise (vibration energy in circuit)
  • Metastability (right in figure)
  • Jitter (left in figure)
DQ~QIf the input is changed duringthe setup/hold time, the flipflop will be metastablecharge easch side to 1/2 and each inverter isbalanced, get metastable effect when neithernverter can overpower the other. This is veryunstable.falling edge nominally here, however itmay occur at other times. Some of thisvariation is due to true randomness.

Metastability-based TRNG#

  • Push a perfectly balanced circuit with feedback to a middle voltage value (0.5â‹…Vdd0.5\cdot V_{dd})
    • Very hard to get without bias
    • After some time, random noise will push output voltage out of equilibrium
    • The resulting output, 1 or 0, should be random

PUF-based TRNG#

  • Build arbiter-based PUF
  • Look for any challenge bit combination that give a highly volatile output

Ring Oscillator Based TRNG#

  • Random noise will cause frequency of ring oscilator to constantly change (this is called "jitter")
  • Compare the jitter in multiple nearby ring-oscillators to eliminate systematic noise
ו•••••••••••••••••DQ

Issue with TRNG Output#

  • Can be globally or locally biased towards 1 or 0

  • Bias is bad for the system, good for attackers

Bias Correctors#

  • Von Neumann

    • Take TRNG outputs in pairs
    • If both bits in the pair are the same, discard them
    • If the bits are different, take the first bit as your output
  • XOR Reduction

    • Take TRNG outputs in pairs
    • XOR the bits in the pair together
    • The result of the XOR is your new random bit
  • What is the cost of using a bias corrector?

    • Get fewer random outputs
      • In XOR, you get half
      • In Von Neumann, you can get far less than half
Last updated on