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!"