Gomti: A collection of PLL-based True RNG on FPGA

Speaker: NIIBE Yutaka

Track: Security

Type: Short talk (20 minutes)

Room: Anamudi

Time: Sep 11 (Mon): 17:00

Duration: 0:20

Gomti [0] is a collection of PLL-based True Random Number Generator. Currently, we have implementations for FPGA: ice40 HX8K and Gowin GW1NR-9/C. With Gomti, we can build a good USB TRNG device, for example, using TEC0117 board.

In 2013, I released NeuG 1.0 [1], an implementation of TRNG on STM32F103, based on the sampling noise of ADC. It has been useful in the situation where no good noise source is available. I had an presentation in Debconf15 [2]. While it is empirically useful, it lacks mathematical or physical model.

Around 2015, there were projects like OneRNG [3] and ChaosKey [4] which is based on diode noise source.

In 2022, I sought around TRNG technology again, with following constraints:

  • Easier to implement (cost-wise, technology-wise)
  • Patent free
  • Better reproducibility
  • Build-able with common parts
  • Build-able with free tool (as in freedom)

Given the situation we have a good free tool for FPGA (Yosys and nextpnr [5]), I realized that PLL-based TRNG can be built fulfilling the constraints above, reading papers of [6], [7], and [8].

People who have an interest around hardware development and FPGA can enjoy Gomti to build their own USB TRNG device. Security geeks may find a practical and interesting source of entropy.

Let us discuss about reproducible and transparent random number generation.

[0] Gomti: https://sr.ht/~gniibe/gomti/

[1] NeuG: https://www.gniibe.org/memo/development/gnuk/rng/neug.html

[2] More Entropy, Please: https://summit.debconf.org/debconf15/meeting/265/more-entropy-please/

[3] OneRNG: https://onerng.info/

[4] ChaosKey: https://altusmetrum.org/ChaosKey/

[5] Yosys and nextpnr https://yosyshq.net/yosys/ https://github.com/YosysHQ/nextpnr

[6] Viktor Fischer & Miloš Drutarovský

True Random Number Generator Embedded in Reconfigurable Hardware

[7] Florent Bernard, Viktor Fischer and Boyan Valtchanov

Mathematical model of physical RNGs based on coherent sampling

[8] Miloš Drutarovský and Martin Simka and Viktor Fischer and Frederic Celle

A Simple PLL-Based True Random Number Generator for Embedded Digital Systems