This page lists online resources for collecting and
processing crypto-strength randomness.
See
this paper
for a motivating example of why this is important to get right.
Writings on randomness
Source code for generating randomness
- A
Yarrow implementation from Zero Knowledge Systems
- Wei Dai's code snippet for generating
randomness on Windows 2000/NT using CryptoAPI
- Theodore Ts'o's
Linux /dev/random source, part of the
Linux 1.3.x kernel
- A Linux
kernel patch for extracting entropy from the Intel 82802
hardware RNG
- Video entropyd
- John Denker's
random number
generation code
- Jack Lacy's CryptoLib, with a great random number generator:
send email for more info
- librand,
a random number package based on event interval variations,
from Matt Blaze, Jack Lacy, and Don Mitchell;
old version available here
- R. Walking-Owl's
NOISE.SYS, for generating crypto-quality randomness under DOS
[home page]
- Carl Ellison's
software for mixing entropy
- Marcus J. Ranum's nifty source
for a randomness driver
- Damien Miller's audio-entropyd,
a daemon for harvesting randomness by sampling your soundcard
- Several
randomness-generating programs
- Netscape's
randomness fix
- A Java true random number class,
based on librand above; untested
[a simplified version]
- GenRand, a Java random number class
-
Audio-based randomness
- An undocumented command-line switch to
generate random bytes with PGP;
but beware: PGP guru
Galactus reports that
the undocumented feature
is bug-ridden; thanks to S for the tip
- A random passphrase
generator in Javascript
- Don Davis on Solaris cryptorand
- The EntropyPool system (in Java)
Source code for testing randomness
Hardware for generating randomness
Source code to other useful crypto modules
Miscellaneous
Send questions, comments, and criticisms to
David Wagner,
daw@cs.berkeley.edu.