Hardware Implementation of Double Pendulum Pseudo Random Number Generator

Jarrod Lim,Tom Manuel Opalla Piccio,Chua Min Jie Michelle,Maoyang Xiang,T. Hui Teo
2024-04-25
Abstract:The objective of this project is to utilize an FPGA board which is the CMOD A7 35t to obtain a pseudo random number which can be used for encryption. We aim to achieve this by leveraging the inherent randomness present in environmental data captured by sensors. This data will be used as a seed to initialize an algorithm implemented on the CMOD A7 35t FPGA board. The project will focus on interfacing the sensors with the FPGA and developing suitable algorithms to ensure the generated numbers exhibit strong randomness properties.
Cryptography and Security,Signal Processing
What problem does this paper attempt to address?
The problem that this paper attempts to solve is to design and implement a Pseudo - Random Number Generator (pRNG) based on the double - pendulum system. Specifically, the authors hope to generate highly random pseudo - random numbers by using the chaotic characteristics of the double - pendulum system and combining environmental data as seeds. These random numbers can be used in application scenarios such as encryption. ### Main Problems and Solutions 1. **Design and Implementation of Pseudo - Random Number Generator**: - **Problem**: Traditional pseudo - random number generators may rely on deterministic algorithms, resulting in the generated random number sequences being predictable in some cases. - **Solution**: Use the chaotic behavior of the double - pendulum system to generate pseudo - random numbers. Due to its high sensitivity to initial conditions, the double - pendulum system can produce complex and unpredictable behaviors, thus providing better randomness. 2. **Hardware Implementation**: - **Problem**: How to implement complex mathematical operations and chaotic system simulations on hardware. - **Solution**: Use the FPGA (Field - Programmable Gate Array) board CMOD A7 35t to implement the algorithm. Obtain environmental data (such as magnetic field, sound, light intensity, temperature, and humidity) through sensors and use these data as seeds for random number generation. 3. **Hardware Implementation of Mathematical Functions**: - **Problem**: Verilog HDL code cannot directly handle floating - point operations with decimal points. - **Solution**: Design a variety of basic mathematical operation functions (addition, subtraction, multiplication, division, sine, cosine, etc.) to handle numerical operations with decimal points. These functions simulate floating - point operations through custom logic and ensure the accuracy and efficiency of the results. ### Key Formulas The equations of motion of the double - pendulum system are as follows: \[ \omega_1' = -\frac{g(2m_1 + m_2)\sin\theta_1 - m_2g\sin(\theta_1 - 2\theta_2) - 2\sin(\theta_1 - \theta_2)m_2[\omega_2^2L_2 + \omega_2^2L_1\cos(\theta_1 - \theta_2)]}{L_1(2m_1 + m_2 - m_2\cos(2\theta_1 - 2\theta_2))} \] \[ \omega_2' = \frac{2\sin(\theta_1 - \theta_2)[\omega_1^2L_1(m_1 + m_2) + g(m_1 + m_2)\cos\theta_1 + \omega_2^2L_2m_2\cos(\theta_1 - \theta_2)]}{L_2(2m_1 + m_2 - m_2\cos(2\theta_1 - 2\theta_2))} \] where: - \( \omega_1 = \theta_1' \) - \( \omega_2 = \theta_2' \) - \( \omega_1' = \theta_1'' \) - \( \omega_2' = \theta_2'' \) - \( x \): the horizontal position of the pendulum bob - \( y \): the vertical position of the pendulum bob - \( \theta \): the angle of the pendulum (0 represents vertically downward, and counterclockwise is positive) - \( L \): the length of the rod (constant) - \( T \): the tension of the rod - \( m \): the mass of the pendulum bob - \( g \): the acceleration due to gravity ### Summary This paper successfully designs and implements an FPGA - based pseudo - random number generator by combining the chaotic characteristics of the double - pendulum system and environmental data. This method not only improves the unpredictability of random numbers but also demonstrates the feasibility of hardware implementation of complex mathematical operations.