[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Random Hiss from Mac mike
Take a look at RFC 1750. It discusses randmoness. If your
input to MD5 consists of two long strings of constants, your output
from MD5 only has really a very few bits of entropy (I think you end
up with 7, or possibly 14 if there are two transitions. Not a lot of
entropy at all.)
| I've been looking at using the Mac's Sound Input Manager for hardware RNG.
| The advantage of it is that (1) most macs have a microphone port these
| days, (2) it doesn't involve any user interaction, (3) the API is easy.
| What I don't know, is how secure it is. Or more precisely, I don't know
| how much entropy is contained in the signal.
| In the simplest case, where the microphone is not attached, the signal
| consists of long runs of '0x80's alternating with '0x7f's. Now, I have no
| problem transforming this into uniformly distributed RN's : just hash the
| buffer with MD5.
Again, the output of a hash is only as good as its input. If
you input 40 random bits, and 88 known bits, we only need to search
the 40 known bits. If you input a string of the form 00000011, with 2
runs of some length, we don't have to search 11100111 as a
possibility. There are only 8 strings which match if your constraints
are 8 bits, starting with 0, and only a single transition to a
different state. So, by knowing those rules, we only have to search
2^3 strings instead of 2^8.
If there isn't a microphone, and the OS gives you a steady
stream, then the sound port is a bad source of randomness, even with a
hash. Use mouse movement, keyboard input, or the parity of long
strings of either of those.
"It is seldom that liberty of any kind is lost all at once."