Core Concepts
A pseudo-random number generator is designed and implemented on an FPGA board using the chaotic dynamics of a double pendulum system, leveraging environmental sensor data as the seed.
Abstract
The paper presents the design and implementation of a pseudo-random number generator (pRNG) using a double pendulum system on an FPGA board. The key highlights are:
The pRNG algorithm is derived from the chaotic dynamics of a double pendulum, which exhibits strong sensitivity to initial conditions. Environmental sensor data, including magnetic field, sound, light, and temperature/humidity, are used as the seed to initialize the algorithm.
To handle the complex mathematical operations required by the double pendulum equations, custom functions for basic arithmetic (addition, subtraction, multiplication, division) and trigonometric (sine, cosine) operations are developed in Verilog HDL. These functions can handle signed integers with decimal values.
The hardware implementation on the CMOD A7 35t FPGA board includes modules for interfacing with the environmental sensors, performing analog-to-digital conversion, and transmitting the generated random numbers to an Arduino Nano for display on an LCD screen.
Experimental results demonstrate that the generated random numbers exhibit no discernible pattern, with a period of over 1 million cycles and over 1 billion possible combinations for the 10-digit output.
The authors showcase a novel approach to designing a pRNG by leveraging the inherent randomness in a chaotic physical system, implemented on an FPGA platform. The work highlights the challenges in translating the complex mathematical model to hardware and the solutions developed to address them.
Stats
The following sentences contain key metrics or important figures used to support the author's key logics:
The pRNG generates a 10 digits number, with over 1 billion possible combinations.
A histogram of 1,048,575 random numbers generated shows no discernible pattern.
The period for the random number generator does not repeat before a million cycles.
Quotes
"The double pendulum is categorized as a dynamic chaotic system [1]."
"The environmental data are used to set the conditions (pRNG seed) such as weight, length, and gravitational acceleration onto a double pendulum (chaotic pendulum) algorithm to generate the random numbers."
"The project will focus on interfacing the sensors with the FPGA and developing suitable algorithms to ensure the generated numbers exhibit strong randomness properties."