Maker Pro
Maker Pro

Simple random number hardware generator using low voltage 3.3V levels

N

Nicholas Kinar

Jan 1, 1970
0
Hello--

I am wondering if anyone knows of a published reference containing a
simple circuit which can be used to generate true random numbers at a
lower (3.3V) level. There are a few excellent circuits currently posted
on the Internet, but I'd like to find something that gives a more
in-depth theoretical treatment.

What about the design of white noise generators? I would wonder if
there's a book out there that has a section dealing with the design of a
simple white noise generator using a diode or transistor.

Nicholas
 
N

Nicholas Kinar

Jan 1, 1970
0
Noise generators are the key; no all-logic circuit can generate a
"true" random sequence (but they can get close - especially if the
circuit uses a look-up table).
Avalanche diodes are nice in that the noise level is large to start
with; otherwise any resistor would be usable...

Thanks, Robert. I think that avalanche diodes are considered to be the
one of the most widely-utilized methods of making noise. The trick
would be to ensure that the diode produces random numbers over all
temperature ranges.
 
N

Nicholas Kinar

Jan 1, 1970
0
Real thermal noise is LOW in amplitude, a single transistor
doesn't have enough gain to do the job. Usually one starts with a
diode in avalanche (the avalanche process has lots of gain),
and that requires higher voltages (typically 12V and up).
It doesn't take much current, though; make a HV supply
from your low voltage source.

I was wondering why most circuits show a supply of at least 12V. Thank
you for clarifying this!
 
N

Nicholas Kinar

Jan 1, 1970
0
Build a classic pseudo-random shift register and XOR some
physically-generated noise into the chain somewhere. The result will
have the excellent statistics of the digital sequence but will never
repeat and will be truly random. Essentially this takes a
pseudo-random state machine and forces random state jumps, destroying
the predictability of the machine.

It's hard to generate quality random numbers from an analog noise
source. Opamps are especially bad, having 1/f noise, popcorn noise,
goofy frequency rolloffs. Digital stirring helps a lot.

Thanks, John. I believe that there is a good circuit which deals with
pseudo-random number generation in Art of Electronics by H & H. I
suppose that I would sample the output of a white noise generator (i.e
take the LSB from the ADC conversion) and then XOR the sampled bit with
the shift register. Easy enough way to generate random numbers.
 
N

Nicholas Kinar

Jan 1, 1970
0
Actually that is a key question that no one has asked. What is the
random number generator to be used for? Do you need true random numbers
with 1 bit of entropy per bit, pseudo random numbers with no entropy, or
a mixed result?

Thanks, David.

I'm using the random number as an initial seed for the generation of a
Maximum Length Sequence (MLS), which will be used as a source signal in
an acoustic response analysis system. Although it would suffice (I
think) to load the bits of the register with boolean values of 1, I
would like to generate a number of random bits, and use these random
bits to load the register.
 
V

Vladimir Vassilevsky

Jan 1, 1970
0
John said:
Build a classic pseudo-random shift register and XOR some
physically-generated noise into the chain somewhere. The result will
have the excellent statistics of the digital sequence but will never
repeat and will be truly random. Essentially this takes a
pseudo-random state machine and forces random state jumps, destroying
the predictability of the machine.

Any deterministic manipulation with the initial data can't make it more
random then it is. Hashing only hides the obvious dependencies.

Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
 
T

Tim Williams

Jan 1, 1970
0
RF transistors break down as low as 3V, but is that really avalanche, or is
it zener effect?

Tim
 
K

krw

Jan 1, 1970
0
Thanks, John. I believe that there is a good circuit which deals with
pseudo-random number generation in Art of Electronics by H & H. I
suppose that I would sample the output of a white noise generator (i.e
take the LSB from the ADC conversion) and then XOR the sampled bit with
the shift register. Easy enough way to generate random numbers.

The LFSR simply makes your somewhat random event _look_ more random.
The LFSR adds nothing to the randomness and will only mask errors in
your random source (a *very* difficult thing to do and even harder to
prove).
 
T

Tim Williams

Jan 1, 1970
0
artie said:
Look for Xilinx XAPP 052 (July 7, 1996) which has descriptions and tap
tables for linear feedback shift register generators with periods of up
to 2^168 - 1 -- clock that as fast as you can, and it's still going to
take a while!

Any pseudorandom generator is inherently limited by the number of states --
in 168 or so bits, an attacker can fully determine the state of said
generator. It's nice that it's a simple linear feedback shift register --
real easy to solve for. Whatever processing goes after it might mix it up,
but as a linear combination of few other states, that's apparently
trivial...

The Mersenne Twister is claimed to be one of the best, although of course
it's limited by the amount of state data it keeps. It's fairly bulky, so
has a bit going for it.

Tim
 
C

Clifford Heath

Jan 1, 1970
0
David said:
I would have thought a fully deterministic LSFR of sufficient length
with a predefined initial seed would, in this case, work best.

I'm not an expert, but I understand that many of the obvious
and commonly-used hardware methods of making noise, while they
might cycle through the maximum length before repeating, have
quite poor short-term spectral characteristics. Please do read
the literature and choose an appropriate method, or use suitable
whitening techniques. Especially since spectral purity seems to
be important in this application...

Clifford Heath.
 
N

Nicholas Kinar

Jan 1, 1970
0
FWIW

I would have thought a fully deterministic LSFR of sufficient length
with a predefined initial seed would, in this case, work best. You would
be able to test all the audio properties and know that every unit built,
and every run made, performs appropriately.


Sure, this is probably the way to go. However, for prototyping, I would
also like to explore the possibility of what happens when each source
signal used for a single measurement is statistically independent of the
signal used for another measurement.
 
N

Nicholas Kinar

Jan 1, 1970
0
Please do read
the literature and choose an appropriate method, or use suitable
whitening techniques. Especially since spectral purity seems to
be important in this application...

Of course, the literature will be important when attempting to work with
this.
 
N

Nicholas Kinar

Jan 1, 1970
0
Of course, there are a number of "black-box" devices offered by
manufacturers which can easily generate random numbers:

(1) True random number generator IC (RPG100):
http://www.fdk.com/cyber-e/pi_ic_rpg100.htm

(2) Random number generator module (R300A):
http://www.protego.se/

These can be simply placed into a system, and this is an attractive way
to place random number functionality into the circuit. However, it is
impossible to know the complete theory behind such devices.

Nicholas
 
Top