+     com!usenet
From: (Paul Koning)
Newsgroups: sci.crypt

Subject: Re: IBM-PC flawless true random number generator
Message-ID: <>
Date: 22 Jun 92 14:42:54 GMT
References: <>
Sender: (USENET News System)
Organization: Digital Equipment Co., distributed systems architecture
Lines: 65

In article <>, (Nico E. de Vries)  writes:
|>some days ago (a week?) I posted an open "ad" for my free random
|>generator source. I got about 60 requests but if you haven't got it
|>yet feel free to email me. 
|>The source is not extremely commented (only the code is commented,
|>not the thoughts behind it) therefore this posting.
|>To make one thing clear which some people misunderstood, althought
|>the fact that the random generator is a 100% source one it is
|>not a software but a hardware random generator! The "trick" is I use
|>standard hardware present in any IBM compatible PC and not some
|>add on board.
|>The hardware I use are two clock crystals, the real time clock one and the
|>microprocessor one.

This looks like the common mistake of assuming that crystal oscillators
are uncorrelated.  In fact, that's not even close to true.

A number of years ago, a certain large computer company was working on
an early implementation of Ethernet.  As you know, this relies on random
numbers and uncorrelated behavior among the nodes.  Some paper analysis
was done which "showed" that the various oscillators would, statistically,
be synchronized about every 10^10 years.

Then a 3-node network was built, and it locked up in about 10 minutes.
The cause?  Crystals don't have anything close to a Gaussian distribution;
instead, the distribution is bimodal with very sharp peaks.  (The reason
is simple: the manufacturing process involves selection, and crystals
go into the highest-price bin their measured frequency justifies.  Thus
the .01% crystals have two sharp peaks: one at +.01%, and one at -.01%
from the nominal frequency.)

|>I did several statistical tests on the program and couldn't find any flaws
|>in it. I hope however others will try at their best to test it as well
|>and I urge them to post their findings (reply to this posting?). IMHO
|>the generator is completely undeterministic but one never knows.

One should know -- and one could know.  In applications like this, you
need to consider the program "guilty until proven innocent".  In particular,
running a few tests that don't "find any flaws in it" doesn't tell you

Coincidentally, I was just a few minutes ago reading an article by E.W.Dijkstra
explaining why it is absurd to think of computer science as an experimental
science.  Here we have a case in point...

	paul koning

|>Nico E. de Vries
|>_ _
|>O O  USENET  FIDO 2:281/708.1  COMPUSERVE "soon" (tm)
|> o   This text reflects MY opinions, not that of my employer BITECH.      
|>\_/  This text is supplied 'AS IS', no waranties of any kind apply.      
|>     Don't waste your time on complaining about my hopeless typostyle.
|>"Unfortunately, the current generation of mail programs do not have checkers
|> to see if the sender knows what he is talking about" (A.S. Tanenbaum)

(Unfortunately, the same thing is true for word processors, judging by
some recent books...)