Random number generation systems and methods
Inventors
Ray, Biswajit • Milenkovic, Aleksander
Assignees
University of Alabama in Huntsville
Publication Number
US-11620108-B1
Publication Date
2023-04-04
Expiration Date
2039-05-17
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Abstract
A random number generation system may generate one or more random numbers based on the repeated programming of a memory, such as a flash memory. As an example, a control system may repeatedly store a sequence to a block of flash memory to force a plurality of cells into a random state such that, at any given instant, the values in the cells may be random. The control system may identify which of the cells contain random values and then generate based on the identified values a number that is truly random.
Core Innovation
The invention is a random number generation system that utilizes repeated programming of flash memory cells to induce a random state in the cells. A control system programs the same value, typically a value associated with an erased state, to a block or individual cell of flash memory multiple times, causing some of the cells to enter a random state where the values in those cells fluctuate unpredictably due to increased read noise and reduced voltage margin.
The system identifies cells that have entered the random state by reading back the values in the programmed block and detecting which cells have bit values that differ from the written sequence over repeated reads. These randomly fluctuating bits are then used to generate a truly random number sequence, providing a source of true randomness without requiring specialized hardware.
The problem addressed by this invention is the inadequacy of conventional random number generators, which often produce deterministic, pseudo-random numbers that can be susceptible to hacking, and require complex or expensive hardware or rare seed values. The disclosed method allows for true random number generation by leveraging existing flash memory, thereby reducing the need for additional hardware and associated costs, and simplifying integration into resource-constrained systems.
Claims Coverage
The patent includes several independent claims outlining the main inventive features related to random number generation using flash memory.
Consecutive programming of flash memory cell to force random state
A system comprising flash memory and a control system that consecutively programs a value associated with an erased state to a cell of the flash memory a sufficient number of times to force the cell to a random state. The system then generates a random number based on a value read from the cell while it is in the random state.
Consecutive programming of flash memory block and analysis for random state cells
A system comprising flash memory and a controller configured to consecutively program a value associated with an erased state to each of a plurality of cells of a block of the flash memory a sufficient number of times to force at least some of the cells to a random state. The controller analyzes values read from the block to identify which are from cells in the random state and generates a random number based on these identified values.
Method of random number generation by programming plurality of memory cells
A method comprising consecutively programming a value associated with an erased state to each of a plurality of cells of a block of flash memory, thereby forcing at least some of the cells into a random state, reading values from the plurality of cells, and generating a random number based on the read values.
Method of random number generation from single flash memory cell in random state
A method comprising consecutively programming a value associated with an erased state to a cell of flash memory a sufficient number of times to force the cell to a random state, reading a value from the cell while it is in the random state, and generating a random number based on the read value.
The inventive features collectively cover systems and methods to generate random numbers by repetitively programming flash memory (either a single cell or multiple cells) to induce a random state and using the resultant fluctuating values as a source of true randomness.
Stated Advantages
Enables generation of truly random numbers without requiring additional or specialized random number generation hardware.
Reduces space and cost requirements by leveraging existing flash memory commonly available in many devices.
Allows retrofitting of existing devices, such as cellphones, with random number generation ability via software without hardware modification.
Simplifies integration of random number generation into space- and resource-constrained systems, avoiding the need for bulky or expensive hardware.
Provides a robust algorithm for generating numbers that are truly random, enhancing security for encryption and other applications.
Documented Applications
Encryption and decryption of data in communication systems, including use in Internet-of-Things (IOT) devices and home automation systems.
Generating cryptographic keys for data encryption in computer systems.
Applications requiring randomization and fairness, such as electronic gambling, statistical sampling, computer simulation, and video games.
Interested in licensing this patent?