On Sunday, April 21, 2002, at 09:53  PM, Joseph Ashwood wrote:

> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: "Tim May" <[EMAIL PROTECTED]>; "Eugen Leitl" <[EMAIL PROTECTED]>
> Cc: <[EMAIL PROTECTED]>
> Sent: Sunday, April 21, 2002 1:33 PM
> Subject:  Re: Two ideas for random number generation
>
>
>> Why would one want to implement a PRNG in silicon, when one can
>> easily implement a real RNG in silicon?
>
> Because with a pRNG we can sometimes prove very important things, while 
> with
> a RNG we can prove very little (we can't even prove that entropy 
> actually
> exists, let alone that we can collect it).

Not to be pedantic, but we cannot _really_ prove that entropy is being 
collected from a PRNG, either.

In fact, there really _is_ no entropy from a PRNG: the bits are 
deterministic from the PRNG, meaning they actually have no uncertainty, 
no entropy. To the person who selected the program and the seed, _he_ 
certainly sees no randomness, no entropy. Relativity. Usual 
Kolmogorov/Chaitin stuff here.

Operationally, when faced with a purported source of "random numbers," 
naive calculations of entropy are often made. This is true for the 
output of a Johnson noise diode, or a radioactive decay circuit, or the 
RAND Corporation's Table of One Million Random Digits.

But all of the calculated ("measured") entropy numbers collapse to zero 
or some small number if and when someone figures out that he knows how 
to predict the nth digit.

The usual arguments I hear about why PRNGs are better is that they a) 
can give reproducible sequences for testing software (often much more 
useful than physically-derived numbers would be, for obvious statistical 
reasons), b) in some sense there is more assurance that a BBS generator, 
for example, has not been manipulated.

If I wanted a good PGRNG (Pretty Good RNG) I'd favor one that mixes a 
physical source, mixes entropy extracted from user actions (keystroke 
intervals, mouse movements, over a lot of days), and distills it all 
some more with a BBS.

(The meta-solution for good numbers is then to mix different kinds of 
RNGs, to take a BBS output and XOR it with a Lava Lamp sequence, to seed 
a PRNG with mouse strokes, etc. As with ciphers, composition of many 
functors tends to help, unless one of the stages has bad properties, 
e.g., avalanche conditions. (Blowfish (3DES (Bassomatic (foo))) will be 
at least as strong as (Blowfish (foo)), all other things being equal.)

--Tim May
"You don't expect governments to obey the law because of some higher 
moral development. You expect them to obey the law because they know 
that if they don't, those who aren't shot will be hanged." - -Michael 
Shirley

Reply via email to