From: ericb@hplsla.hp.com (Eric Backus) Date: Thu, 22 Oct 1992 23:28:55 GMT Subject: Re: Simple hardware RNG Message-ID: <5830006@hplsla.hp.com> Organization: HP Lake Stevens, WA Path: cactus.org!milano!cs.utexas.edu!zaphod.mps.ohio-state.edu!sdd.hp.com!hp- + cv!hp-pcd!hplsla!ericb Newsgroups: sci.crypt References: <1992Oct22.070717.28400@cs.aukuni.ac.nz> Lines: 62 Peter writes: >The following is a simple hardware noise generator which you can >throw together using junk box parts in about 10 minutes. It's based >on thermal noise in a zener diode, and is powered by its own supply >to reduce the chance of noise from the computers supply being coupled >in. ... >The only thing which needs adjusting is the duty cycle, which can be >changed by varying the 10k pot. ... >If anyone has any comments or improvements I'd be interested in >hearing from them. Fundamentally, I think this idea works. I have built a zener-diode noise source similar to this, that I then xor'ed into a hardware feedback-shift-register PRN generator. The noise coming out of this appears to be quite random. Some ideas for you: 1. I don't understand the need for the 10K pot. Isn't your noise source AC-coupled into the op-amp? Seems like adjusting the pot shouldn't have much effect. My noise source had no pot. 2. You are relying on the noise from the zener diode, which we assume to be completely unpredictable. However, people have spent years figuring out how to make zener diodes with low noise levels. So, your noise signal may be small. You want to ensure that other signals don't get coupled in and swamp out your good random noise with other junk. (If your op-amp input voltage noise is very big, it could swamp out the zener noise, but that's probably not bad.) One thing I did was take the output of the op-amp, and run it through two different R-C first-order low-pass filters. These two signals went into a comparator, effectively making a bandpass filter and at the same time giving me a TTL signal output. On the low frequency end, I wanted to avoid picking up 60 Hz stuff. On the high end, I wanted to ensure that no high-frequency system clocks got in. I'm not sure that how much high-frequency stuff needs to be filtered out. One problem with filtering it, is that it limits how fast you can grab random bits out of the noise source. With no high-freqeuncy filter, you are effectively using the bandwidth of the op-amp as your high-frequency cutoff. 3. As I recall, 6.2V is the magic zener voltage level which has the lowest noise, so you want to design your circuit with a zener that is either much bigger or much smaller than this value. My noise source used a 10V zener. You probably want the cheapest zener diode you can find. 4. Although the noise from a zener is supposed to be completely unpredictable, it does not have a flat frequency spectrum or very many other properties that are desired for random numbers. Therefore, you must use this noise source along with some other noise source. My design used a hardware feedback shift register, but there is no reason you couldn't use a good software random number generator. ---------- Eric Backus ericb@hplsla.hp.com