On Sat, Dec 15, 2001 at 06:14:37PM +0800, Liu Wen wrote:
> Generating random numbers has always been a big problem. Now I have to
> look into this topic in short time, I am reading Art of Computer
> Programming , but I am afraid the content is not up-to-date.
First off, be carefull with "random" in this context. Most random
generation algorithms are designed to be _statistically_ random, i.e. on
average every value is as likely to occur as the others. These kind of
generators are commonly used in statistic modelling. Common generators
are linear feedback shift registers (LFSR) and linear congruential
generators (LCG). These are _NOT_ cryptographically random and can be
cracked with only a few captured random values.
_Cryptographically_ random number generators (sometimes called "true
random number generators") are designed to make it very hard for an
attacker to predict the numbers generated, even with knowledge of prior
numbers and the generating algorithm. The common mechanism here is to
collect randomness/entropy from (weakly) random events such as variation
in disk-seektimes or radioactive decay and destill it to a pool of
"really" random bits. Current state of the art software generators 
usually follow a Yarrow-style design.

> Is there any specific web sites or groups working on this? any links
> or hints would be appreciated. 
For starters:
There are several good papers on Counterpane.com's site, describing both
the Yarrow design and the attacks on other random number generators.
Peter Gutmann also has some excellent papers on software random number
generation. 

Should you wish to go much deeper in this area, feel free to contact me.
In particular the estimate of the randomness of the inputs is a
difficult area, as well as detection of failed inputs (i.e. when do you
know when a random number is no longer random?). You'll need a hefty
amount of mathematical background for the statistics and a professional
paranoia mindset.

Enjoy!
Wouter Slegers
Your Creative Solutions
"Security solutions you can trust!"

Reply via email to