Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!ogicse!uwm.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!sol.ctr.columbia.edu!news.cs.columbia.edu!ji
From: ji@cs.columbia.edu (John Ioannidis)
Newsgroups: sci.crypt
Subject: Re: Source of random bits on a Unix workstation
Message-ID: <C5Jp0K.4p5@cs.columbia.edu>
Date: 15 Apr 93 21:57:55 GMT
Article-I.D.: cs.C5Jp0K.4p5
References: <897@pivot.sbi.com> <C5JA6s.A59@cs.psu.edu>
Sender: news@cs.columbia.edu (The Daily News)
Organization: Columbia University Department of Computer Science
Lines: 35

In article <C5JA6s.A59@cs.psu.edu> so@eiffel.cs.psu.edu (Nicol C So) writes:
>In article <897@pivot.sbi.com> bet@sbi.com (Bennett Todd @ Salomon Brothers Inc., NY ) writes:
>>This came up because I decided to configure up MIT-MAGIC-COOKIE-1 security
>>for X11R5. For this to work you need to stick some bits that an intruder
>>can't guess in a file (readable only by you) which X client applications
>>read. They pass the bits back to the server when they want to establish a
>>connection.
>>
>>...
>>What I settled on was grabbing a bunch of traffic off the network.
>>Basically, I ran
>>
>>	etherfind -u -x greater 0|compress
>>
>>and skipped over 10K of output, then grabbed my bits. As best I can tell,
>>these are bits that can be expected to be reasonably uniformly distributed,
>>and quite unguessable by an intruder.
>
>For your application, what you can do is to encrypt the real-time clock
>value with a secret key.

For a good discussion of cryptographically "good" random number
generators, check out the draft-ietf-security-randomness-00.txt
Internet Draft, available at your local friendly internet drafts
repository. 

A reasonably source of randomness is the output of a cryptographic
hash function (e.g., MD5), when fed with a large amount of
more-or-less random data. For example, running MD5 on /dev/mem is a
slow, but random enough, source of random bits; there are bound to be
128 bits of entropy in the tens (or hundreds) of megabytes of data in
a modern workstation's memory, as a fair amount of them are system
timers, i/o buffers, etc.

/ji
