BIVBlog #28: Programming the random number generator firmware

With a microcontroller hooked up between a hardware noise generator and a computer, the next step is to write firmware for it. There is a surprisingly wide range of approaches on how to turn analog noise into high quality random data and this video shows how to implement at least the most promising ones.

Table of Contents

00:00:55 High quality vs. high volume output
00:02:56 Working the numbers
00:03:50 The cost of using interrupts
00:05:08 What about using the analog/digital converter (ADC)?
00:07:10 Initialization routine and main loop
00:07:50 Using profiles to experiment with algorithms
00:08:31 Using “subsystems” to modularize the firmware
00:09:00 Handling the status LEDs
00:10:08 I/O subsystems in general and the USART subsystem in particular
00:11:04 The ripple generator and how to audit the FTDI chip
00:12:30 Serial vs. parallel noise generators
00:13:56 Using extra “flushing” bits
00:14:33 Dealing with noise input bias
00:16:05 Removing bias with a von Neumann extractor
00:17:30 Limitations of the von Neumann extractor
00:19:05 Ways to read bits from the noise generator
00:20:40 Measuring time between (rising) edges
00:21:44 Addressing the decorrelation problem
00:23:41 While mixing the noise reading operations doesn’t work
00:25:14 Preliminary test results
00:27:03 Next steps


Long term IPv6 evangelist/book author/trainer/consultant and generic Unix guy (*BSD, Linux, Solaris, and about a dozen more).

Leave a Reply

Your email address will not be published.