This application is directed, in general, to random number generators and, more specifically, to true random number generators (TNRGs) based on ring oscillators (ROs).
A random number generator (RNG) is an algorithm or circuit operable to generate a sequence of numbers or symbols that bear no discernable relationship to one another, i.e., appear random. RNGs have many significant uses, including gaming, statistical analysis, simulation and, perhaps most crucially, cryptography. While algorithmic pseudo-random number generators (“PRNG”s) are capable of generating difficult-to-predict numbers, memory limitations force their output eventually to repeat. This compromises and renders them of limited use for particularly demanding applications.
Assuming “true” random numbers exist, natural (i.e., physical) processes, as opposed to man-made algorithms, provide the most likely source for true random numbers. Many natural processes yield numbers that defy current prediction techniques, but almost all are prohibitively expensive to implement in hardware (e.g., an integrated circuit (IC) that can be readily employed in a computer) or otherwise unsuitable (e.g., cannot generate true random numbers at a suitable rate).
One natural process, however, has proven to be a useful basis for a true random number generator (“TRNG”), and that is electronic noise, particularly evidencing itself as phase noise (or “jitter”) in a ring oscillator (RO). As those skilled in the pertinent art are familiar, an RO is constructed by series-coupling an odd number of signal inverting gates (e.g., inverters) in a loop. An input state of one of the inverting gates is then toggled, causing a cascading state change in each subsequent inverting gate that resonates around the RO at a frequency that is largely a function of the time constants of the inverting gates. ROs are commonly used as a source of clock signals and therefore engineered for frequency stability using various known techniques for attenuating jitter. However, if jitter is left unchecked, ROs become sources of randomness, or “entropy,” and thus capable of serving as the heart of a TRNG. Various conventional techniques have been developed to take advantage of the jitter an RO can exhibit.
One aspect provides a TRNG. In one embodiment, the TRNG includes: (1) an RO including inverting gates having power inputs and (2) a time-varying power supply coupled to the power inputs to provide power thereto and including power perturbation circuitry operable to perturb the power provided to at least one of the power inputs.
Another aspect provides a method of generating true random numbers. In one embodiment, the method includes: (1) causing a ring oscillator having inverting gates to oscillate, (2) perturbing power provided to at least some of the inverting gates to change an operation of the at least some of the inverting gates and (3) latching an output signal provided by the RO.
Yet another aspect includes a TRNG system. In one embodiment, the system includes a TRNG having: (1a) an RO including inverting gates having power inputs and (1b) a time-varying power supply coupled to the power inputs to provide power thereto and including power perturbation circuitry operable independently to perturb the power provided to at least some of the power inputs, (2) further ROs coupled to the time-varying power supply and operable to drive the power perturbation circuitry and (3) a pseudo-random number generator coupled to an output of the TRNG and operable to generate a pseudo-random number sequence based on a seed provided by the TRNG.
Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Various conventional approaches have been made to accentuate jitter in an RO-based TRNG, such as using multiple ROs, frequency dividers and jitter amplifiers. While these have been more or less effective at creating a suitable TRNG, it is realized herein that these conventional approaches involve manipulating the frequency domain of the RO by slewing the signals provided to or by the inverters in the RO to achieve a desired, “random” output distribution that the TNRG generates. In other words, the conventional approaches exploit frequency as their sole degree of freedom.
It is realized herein that an additional degree of freedom exists that can be exploited in lieu of or in addition to frequency: voltage. It is further realized herein that the power supplied to an RO can be perturbed (i.e. varied over time), and that doing so changes the behavior (e.g., the time constants) of the inverters in, or other components associated with, the RO. It is still further realized herein that changing the voltage of the power supply has the effect of introducing additional noise into the RO. As a consequence, the randomness of the resulting output distribution of the RO may be enhanced. Stated another way, the power supply noise amplifies any phase noise that exists in the RO. More specifically, it is realized herein that the inverters may be selectively starved of current to cause their time constants to vary unpredictably. It is still further realized that the power supplied to each inverter in an RO may be varied independently to increase the randomness in the resulting output distribution.
Introduced herein are various embodiments of an RO-based TRNG, a method of generating true random numbers and an RO-based TRNG system. In general, the embodiments employ a power supply that may be configured to time-vary the power supplied to the RO, increasing the entropy of its output. Certain of the embodiments employ a power supply having multiple outputs such that different voltages can be supplied to different components in the RO or associated circuitry.
Although not shown in
To operate the RO-based TRNG of
A NAND gate 220 is included in the loop and operable to allow an ENABLE signal to be asserted. When asserted, the ENABLE signal causes an input state of one of the inverting gates (specifically the inverting gate 2101 to be toggled. This, in turn, causes a cascading state change in each subsequent inverting gate 2102, . . . , 210N that resonates around the RO 110 at a frequency that is largely a function of the time constants of the inverting gates 2101, 2102, . . . , 210N. The RO 110 produces a jittered output as shown, which may be provided to further circuitry, such as a latch or an entropy analyzer.
The time-varying power supply 120 includes power perturbation circuitry operable to perturb the power provided to at least one of the power inputs of the inverting gates 2101, 2102, . . . , 210N in the RO 110. In the embodiment of
In general, the power perturbation circuitry is operable to change the amount of power provided to the at least one of the inverting gates 2101, 2102, . . . , 210N. In one embodiment, an inverting gate may operate at a nominal VDD of between about 2.4 volts and about 3.3 volts. Thus, the power perturbation circuitry may be operable to increase VDD to over about 3.3 volts and under about 2.4 volts. It is presumed that the inverting gate will experience a changing time-constant, increasing the jitter in its output.
In the illustrated embodiment, the power perturbation circuitry is operable temporarily to starve the at least one of the inverting gates 2101, 2102, . . . , 210N of a nominal operating current. Those skilled in the pertinent art are familiar with current starving, in which a current-consuming circuit, such as an inverting gate, is deprived of the current it requires to carry out its function at nominal speeds. As those skilled in the pertinent art are aware, current-starving a circuit slows the rate at which a signal propagates through it. When the circuit in question is an inverting gate, current starvation increases the time elapsing between the toggling of the state of the signal input and the toggling of the state of the signal output. In one embodiment, an inverting gate may operate at a nominal VDD of between about 0.7 and about 1.0 volts. Current starvation may begin to occur at about 0.4 volts. Thus, the power perturbation circuitry may be operable to decrease VDD, in a time-varying manner from between about 0.7 and about 1.0 volts to about 0.4 volts. This is but one example. Those skilled in the pertinent art will understand that nominal operating voltages and levels at which current starvation occurs may differ depending upon circuit topologies and technologies.
The power gates M11, M21, M12, M22, . . . , M1N, M2N are illustrated as being p-channel metal oxide semiconductors (PMOSs). Thus, power gates M11, M21, M12, M22, . . . , M1N, M2N turn off when signals are asserted at their respective gates and turn on when signals are deasserted at their respective gates. The power gates M11, M12, . . . , M1N. are configured to receive respective switching signals S1, S2, . . . , SN. The power gates M21, M22, . . . , M2N. are configured to receive respective enable signals EN1, EN2, . . . , ENN.
To operate the RO-based TRNG of
In the embodiment of
A system controller may be employed in the embodiment of
Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.
Number | Name | Date | Kind |
---|---|---|---|
4905176 | Schulz | Feb 1990 | A |
20060218212 | Mattison | Sep 2006 | A1 |
20090106339 | Vasyltsov et al. | Apr 2009 | A1 |
20090222502 | Ikegami et al. | Sep 2009 | A1 |
Entry |
---|
T. Nakura , M. Ikeda and K. Asada, “Ring oscillator based random number generator utilizing wake-up time uncertainty”, Proc. IEEE Asian Solid-State Circuits Conf., pp. 113-116, 2009. |
Amaki, Takehiko, Masanori Hashimoto, and Takao Onoye. “An oscillator-based true random number generator with jitter amplifier.” Circuits and Systems (ISCAS), 2011 IEEE International Symposium on. IEEE, 2011. |
Bochard, Nathalie, et al. “True-randomness and pseudo-randomness in ring oscillator-based true random number generators.” International Journal of Reconfigurable Computing 2010 (2011). |
Brar, Keerat, and Shashi Prashanth Karanam. “True Random Number Generators.”. |
Jessa, Mieczyslaw, and Lukasz Matuszewski. “The use of delay lines in a ring-oscillator-based combined true random number generator.” Signals and Electronic Systems (ICSES), 2012 International Conference on. IEEE, 2012. |
Markettos, A. Theodore, and Simon W. Moore. “The frequency injection attack on ring-oscillator-based true random number generators.” Cryptographic Hardware and Embedded Systems—CHES 2009. Springer Berlin Heidelberg, 2009. 317-331. |
Matuszewski, ukasz, and Mieczyslaw Jessa. “An Auxiliary Source of Randomness for Combined TRNG Based on Ring Oscillators.” |
Suresh, Vikram Belur. On-chip True Random Number Generation in Nanometer CMOS. Diss. University of Massachusetts Amherst, 2012. |
Târa, I. G., G-D. Budariu, and Constantin Grozea. “Study on a true random number generator design for FPGA.” Communications (COMM), 2010 8th International Conference on. IEEE, 2010. |
Vasyltsov, Ihor, et al. “Fast digital TRNG based on metastable ring oscillator.”Cryptographic Hardware and Embedded Systems—CHES 2008. Springer Berlin Heidelberg, 2008. 164-180. |
Yoo, Sang-Kyung, et al. “Improving the robustness of ring oscillator TRNGs.”ACM Transactions on Reconfigurable Technology and Systems (TRETS) 3.2 (2010): 9. |
Number | Date | Country | |
---|---|---|---|
20150199176 A1 | Jul 2015 | US |