[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Need Suggestions for Random Numbers



Greetings from the Galapagos islands!

I am working on a PC implementation of a one-time pad cipher, and
am trying to develop a way to produce an "acceptable" random file
to be xor'd with the plaintext.

I have seen here and elsewhere descriptions of hardware random
number generators (Geiger counters measuring random nuclear
decay, microphones picking up background hiss etc.), but I need
something that can be implemented entirely in software.

I recognize that there is probably no "perfect" software
solution, but some techniques are better that others.  (i.e.:
I want to avoid making a REALLY stupid mistake here!)

Listed below are a few ideas I have come up with, but I need some
feedback from more knowledgeable sources.    Any suggestions or
comments would be greatly appreciated.  If you reply to me
directly, I will summarize for the list.

Please don't suggest book/journal references that are not
accessible via the internet.  It would take me about 6 months to
order books from here.  (Everything I know about the
outside world arrives via my Pegasus/KA9Q mailer :-)

Also, can anyone recommend a statistical test for randomness, or
for detecting repeating patterns in a "random" file?

(I remember some years back someone demonstrated the Apple II random
number generator was flawed by converting the random numbers to
screen coordinates and "painting" the screen.  No matter how long
you ran the program, certain areas of the screen were never filled
in. In other words, certain numbers were never generated.)

Thanks in advance for any assistance.


Jim Pinson                    Galapagos Islands, Ecuador.
[email protected]       PGP public key available by finger


----------Possible methods------------
(note: using the Borland C++ compiler)

- Generate a random file using Borland's random number
  generator, then run the output through an encryptor (PGP,
  DES etc.).   Possible variation: running through several
  different encryptors or multiple passes through a single
  encryptor.

- Generate two random files using different random number
  generators, then xor'ing the two files together to
  produce the final file.

- Generate a "bunch" of small random number files, reseeding the
  generator before each run.  The resulting files would then be
  concatenated to produce the final file.  (my thought here is to
  keep the random files small enough to avoid the eventual repeat
  of sequences that I understand occur in random number
  generators).

- Combinations of the above?

- Other:  Suggestions welcome.

-------------end-------------

On the subject of using audio input for generating random
numbers:  has any one tried using an audio file created by the
Windows sound recorder program?

What would be a good source of random meaningless sound? (an
quiet room, ocean surf, repeats of Gilligan's Island, old
presidential speeches (pick your favorite president). :-)