I am playing with an one-time pad generator. I have a FM radio receiver card in the computer, as /dev/dsp3. I wrote a small simple program that takes the filename and file size as arguments, then produces the desired file as full of random numbers.
The algorithm of generating the numbers is this: 1) Get 8 bytes from /dev/urandom. (Just for sure.) Put them into the variable "output". 2) Initialize the MD5 function. 3) Update MD5 with the value of the variable "output". 4) Update MD5 with 128 bytes from /dev/dsp3. 5) Finish the MD5 calculation, retrieve 16 bytes of result into the variable "output". 6) Append the content of "output" to the output file. 7) Repeat 2-6 until I get the desired number of bytes. There is no weakness in it that I could come up with (presuming the audio input is sufficiently random, which in case of badly tuned station it seems to be; white noise generator would be better, though). However, with my lack of experiences I am not sure the output has enough of entropy, or if it on the other hand isn't a drastic overkill. Are there any hints/caveats for this approach? It's admittedly a quick hack glued together in couple minutes of spare time on the basis of an immediate idea. Thanks for any comments. :)