Computer systems employ random numbers for a variety of applications including statistical sampling, computer simulation, and cryptography. Random numbers are incredibly important in cryptography because they are used to generate encryption keys. If the numbers are not absolutely random, sophisticated analysis could be used to determine the original number and break the encryption.
To gain these random numbers, a seed number is used. The seed number can be provided to an algorithm that uses the seed number to produce the random numbers. However, since the seed number is known, resulting numbers are not actually random numbers, but instead are pseudo-random. Therefore, if a party discovers the seed number, security can be compromised.
To address this problem, Army researchers have developed a hardware-based random number generator. A voltage is triggered in a reverse-biased semiconductor junction element such as a diode. This voltage spike can vary randomly due to physical characteristics of the reverse-biased semiconductor junction element and/or a bias voltage. An analog to digital converter (ADC) translates the voltage spike into a floating point number. Multiple spikes will generate multiple numbers. Applications of this small, relatively simple system include generation of data-encryption keys, simulation and modeling, random sample selection from large data sets, or gaming applications.
The ability to generate truly random numbers inside such a small package could significantly improve security of all types of devices. The widespread use of low-cost, relatively simple devices that are currently available often means that many developers are using pseudo-random number generators or even a fixed key that never changes over the life of the device, leaving their systems too vulnerable. The new Army technique would make using random numbers truly random.
- Random voltage spike can be converted into a floating point number that is truly random
- The ADC can make voltage selections pseudo-randomly based off a seed number, thus adding a level of pseudo-randomness to the already random number generator
- US patent 9,547,476 available for license
- Opportunity to collaborate with Army researchers