This directory defines three executables: ranD, ranH and ranM.  These can
be used in a UNIX pipe to confuse and diffuse values from stdin to stdout.
One use is to take a source of non-repeatable measurements and yield what
passes for true random numbers.  Eg.,

	gzip -c </dev/audio | ranH -n 2 -x 4 | ranD | ranM >random-pipe

These can be mixed and matched at will.  Each takes a certain amount of
input from the stdin, so if you drive from a constant length input, too
many rounds might leave you with no output bytes.  A paper describing these
methods is in preparation.

				 - Carl Ellison  (cme@acm.org)

==============================================================================

	File Contents

-rw-r--r--  1 cme      	     390 Jan 20 02:00 Makefile
Basic makefile

-rw-r--r--  1 cme             0 Jan 20 02:22 README
This file.

-rw-r--r--  1 cme          2084 Jan 20 02:00 des.h
RSAREF2.0's DES definitions

-rw-r--r--  1 cme          1103 Jan 20 02:00 global.h
RSAREF2.0's global definitions

-rw-r--r--  1 cme          1649 Jan 20 02:00 md5.h
RSAREF2.0's MD5 definitions

-rw-r--r--  1 cme          2446 Jan 20 02:18 ranD.c

	ranD 

Takes triple-DES keys from the first 2KB of stdin, then encrypts the
remainder, putting it to stdout

-rw-r--r--  1 cme          4533 Jan 20 02:00 ranH.c

	ranH -n y -x z

Takes MD5 of (16+w) bytes of stdin (y <= w <= z) and puts out 16 bytes to
stdout (or 15 bytes if a ranno value is needed to choose the next w), then
loops until EOF.

-rw-r--r--  1 cme          2270 Jan 20 02:00 ranM.c

	ranM

Takes stdin to initialize rnd()'s array, then uses rnd() output to do an
improved Algorithm M (cf., Knuth Vol.2) on stdin, writing that to stdout.

-rw-r--r--  1 cme         11087 Jan 20 02:00 rnd.c
Utility to ranM

-rw-r--r--  1 cme          8321 Jan 20 02:00 rsaref.h
RSAREF2.0's definitionsEND_OF_FILE
