TRUE RANDOM NUMBER GENERATORS
Entropy Sources
A true random number
generator (TRNG) uses a nondeterministic
source to produce randomness.
Most operate by measuring unpredictable natural processes, such as pulse detectors
of ionizing radiation
events, gas discharge
tubes, and leaky capacitors. Intel has developed
a commercially available
chip that samples
thermal noise by amplifying the voltage measured across
undriven resistors [JUN99]. LavaRnd is an open source project for creating truly random numbers using inexpensive cameras, open source
code, and inexpensive hardware. The system uses a saturated
CCD in a light-tight can as a chaotic source to
produce the seed. Software processes
the result into truly random numbers in a variety
of formats.
RFC 4086 lists the following possible sources of
randomness that, with care, easily can be used on a computer to generate true
random sequences.
•
Sound/video input: Many computers
are built with inputs that digitize some real-world analog source, such as
sound from a microphone or video input from a camera.
The “input” from a sound digitizer
with no source plugged in or
from a camera with the lens cap on is essentially thermal
noise. If the system
has enough gain to detect anything, such input can provide reasonably high
quality random bits.
•
Disk drives: Disk
drives have small random fluctuations in their rotational speed due to chaotic
air turbulence [JAKO98]. The addition
of low-level disk seek-time instrumentation produces a
series of measurements that contain this randomness. Such data is usually highly correlated, so significant process- ing is needed. Nevertheless,
experimentation a decade ago showed that, with
such processing, even slow disk drives on the slower computers of that day
could easily produce 100 bits a minute or more of excellent
random data.
There is also an online service (random.org), which can
deliver random sequences securely over the Internet.
Skew
A TRNG may produce an
output that is biased in some way, such
as having more ones than zeros
or vice versa.
Various methods of modifying a bit stream
to reduce or eliminate the
bias have been developed. These
are referred
to as deskewing algorithms.
One approach to deskew is to pass the bit stream through a hash func- tion, such as MD5 or SHA-1
(described in Chapter
11). The hash function
produces an n-bit
output from an input of arbitrary length.
For deskewing, blocks of m input
bits, with m Ú n, can be passed
through the hash function. RFC 4086 recommends
collecting input from multiple hardware
sources and then mixing these using a hash
function to produce random output.
Operating systems
typically provide a built-in mechanism
for generating ran- dom
numbers. For example, Linux
uses four entropy
sources: mouse and keyboard
activity, disk I/O operations, and
specific interrupts. Bits are generated from these four sources and combined in
a pooled buffer. When random bits are needed, the appropriate number
of bits are read from the buffer
and passed through
the SHA-1 hash function
[GUTT06].
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.