Every true random number
generator (TRNG) requires a physical source of entropy. Entropy is in general a
measure of disorder in a physical system. In terms of Information Theory,
entropy can be though of as a measure of how unpredictable the measured properties
of the entropy source are. A simple analogy is the flip of a coin. If each flip
is entirely unpredictable, that is, each flip has exactly a 50/50 chance of
being heads (a "fair" coin), the entropy is said to be 1. If a coin had two
heads, every flip of that coin would be completely predictable and the entropy
would be 0.
The entropy source in the QNG
Model R2000KU is a combination of thermal or Johnson noise and transistor
noise. Thermal noise is produced by thermally excited vibration of electrons in
every circuit element with resistance. Its statistical properties are well known
and its noise spectrum is flat or "white." Transistor noise is more complex and
its amplitude is frequency dependent. The exact mixture of transistor noise
components also depends on the type of transistor, such as a junction or MOS.
At low frequencies the transistor noise spectrum is dominated by the well-known
1/f response. Above the "knee" in the 1/f spectrum, shot noise and thermal
noise become dominant, producing a relatively flat noise spectrum. Four
independent, high-frequency oscillating signal sources, each including combined
noise signals of the type described above, continuously operate at different
frequencies between 200 and 400 MHz. The resulting noisy oscillator signals are
each sent through multi-stage delay lines to produce 16 additional noisy
outputs. Permutations of these additional noisy outputs are used to produce 32
sampled binary signals. The sampled binary signals are combined and resampled
at an output frequency of 112 MHz. The effect of the delay lines and the many
permuted binary samples is to greatly increase the rate of sampling of the
entropy, that is, the unpredictability of the combined output bits.
The R2000KU contains three
independent generators of the type described above. The statistics of each of
these three generators is continuously monitored in the generator hardware. The
monitoring includes 1/0 bias, 1st order autocorrelation and an
estimated minimum entropy. The outputs of each of the three generators is then sent
through a linear feedback shift register (LFSR) whitening function to correct
defects in statistical randomness. The LFSR's do not change the total amount of
entropy, but distribute it equally over the bits in the output sequences. The
three corrected outputs are combined by XOR function and finally 56 of these
bits (112 bits if the output rate is set to 1 Mbps) are combined in another XOR
to produce each final output bit. The internal hardware monitoring requires at
least two of the three generators to have an estimated entropy of at least 0.9
bits/bit. If this requirement fails, the output from the generator is halted. Output
bits are also tested for entropy, and the generator will be halted if the
output entropy falls below 0.99 bits/bit. The internal hardware testing also
acts as a startup test program. At startup random data will not be output until
a block of 1,048,576 bits (220 bits) from at least two of the three
redundant generators has produced the required minimum entropy level.
Software in the host computer
monitors the flow of data from the generator. If the monitoring program detects
a halt condition, a request for the internal statistics will be automatically
generated. These statistics are checked to determine if there has been an
actual fault in the hardware, and if this check indicates a fault, an error
message will be generated and no random data will be provided. The automatic
check of the hardware may also indicate there was simply a delay caused by
normal functioning in the computer's operating system, programs or other
attached components. If the check shows the hardware is operating correctly,
the monitoring software will restart the generator output and random data flow
will resume. The internal statistical test results are accessible at any time
through simple commands in the user interface.
Power for the generator is
provided through the USB connector and is filtered at entry into the grounded,
1/16 inch aluminum device enclosure. Independent regulation of power for the
generator section prevents any external effect on the random number generation by
fluctuations in the power source.
The theoretical effect on the output
sequence statistics of XORing a number of bits, n, in an input sequence of
given statistics is known.
For n=56, the maximum defect in bias or autocorrelation is less than 100 ppm to
the fifth power, or 1 part in 1020. This assumes statistical defects
as large as 100 ppm in the output of the LFSR whitening function, while the
actual level is typically below 10 ppm. A sequence of any testable length with statistical
defects so low will be indistinguishable from a theoretically perfect random sequence.
The R2000KU output is guaranteed to pass any provably correct test for
randomness. The entropy level of the output bits will also be indistinguishable
from 1.0 since more than 100 bits of true entropy (nominally 150-160 bits) are
used to produce each output bit. The generator output bits are transferred at a
rate of 2 Mbps (jumper selectable to 1 Mbps) via USB interface to the R2000KU
driver in your computer. These bits are made available to your programs by
ActiveX communications in a number of different formats including 32-bit
integers, 48-bit [0, 1) uniformly distributed fractions and mean=0.0, standard
deviation=1.0 Gaussian variates of maximum ±8.0 SD.
The random generation method used
in the R2000KU
is highly resistant to failure due to long-term aging effects and is tolerant
to expected variations in components from different production runs. The high
level of redundancy provided by the three independent generators and the large
number of entropic bits used to produce each output bit ensures consistent and
highest quality true random numbers for any application.