video_entropyd

For security reasons (when doing network traffic or generating secure keys for example) one wants as much entropy-data in the kernel random-driver as possible. The random-driver takes partially care for this. But in situations in where there's a lot of demand for entropy-data, it might not be able to gather enough entropy-data by itself.
That's where this program is for: adding entropy-data to the kernel-driver. It does that by fetching 2 images from a video4linux-device (with a random delay in between), calculating the difference between those two and then calculating the number of information-bits in that data. After that, the data with the number-of-entropy-bits is submitted to the kernel-random-driver.
After that, the program exits (when run from crontab) or sleeps a random time before redoing the same process.

Download

Latest stable release:video_entropyd-2.0.tgz

Changes

Changes in version 2.0:
- now works with video4linux2 devices as well (e.g. recent linux kernels)
Changes in version 1.0:
- would sometimes fail with error that it could not access the video device
Changes in version 0.8:
- now checks the quality of the random data
Changes in version 0.7:
- no longer needs fvhlib
Changes in version 0.6:
- every time video_entropyd is started, it will now loop until the kernel entropy-spool is totally filled up
- some code was moved to a library
Changes in version 0.5:
- added logging; video_entropyd now tells through syslogd how much bits are added
Changes in version 0.4:
- added makefile
- data is now unbiased before send to the kernel entropy-spool (this is important!)
Changes in version 0.3:
- the program now uses the structures as defined in the kernel-include-files
- fixed bug that made it submit data that was not so random as expected :-)
Changes in version 0.2:
- the program would add 0 bits when a device has only 1 capture-buffer. that is now fixed

Links

  • TimerEntropyd is like audio-entropyd but requires no soundcard or webcam. It uses the timers which are in every system.
  • AudioEntropyd (or 'AED') is like VideoEntropyd, the difference is that AED gets entropy-data from a soundcard or any other sounddevice.
  • inventgeek.com - use a radiation-source from a smoke-dector and a webcam for generating random numbers.
  • fourmilab - another article about generating true random numbers using an radioactive source.
  • This website: http://www.cs.berkeley.edu/~daw/rnd/ lists a whole lot of links to information on entropy-gathering on computers.
  • lavarnd.org - generating random values using a lavalamp and a webcam.

    Hardware solutions

  • Soekris engineering sells a board for aprox. $80 with a hardware RNG on it.
  • ComScire has an USB solution producing upto 1Mb of random data per second.
  • Orion has an RS232 solution producing 7.6Kb per second.
  • hg400 USB2.0 connected hardware RNG. data-rates from 16Mb upto 32Mb.
  • protego.se an RS232 and USB solution.
  • qrbg - a USB connected quantum RNG. 12Mb/s
  • idquantique - another quantum solution. 4 upto 16Mb


Check out my united states Mega Millions lottery winning help page