Hackaday Prize Entry: Nuclear Powered Random Number Generator

Random number generators come in all shapes and sizes. Some are software based while others, known as true random number generators, are hardware based. These can be created from thermal noise, the photoelectric effect and other methods. But none of these were good enough for [M.daSilva]. He would base his off of the radioactive decay of Uranium 238, and construct a working nuclear powered random number generator.

diagram

Because radioactive decay is unpredictable by nature, it makes for an excellent source for truly random data. The process is fairly simple. A piece of old fiestaware plate is used for the radioactive source. Put it in a lead enclosure along with a Geiger tube. Then wire in some pulse shaping circuitry and a microcontroller to count the alpha particles. And that’s about it. [M.daSilva] still has to do some statistical analysis to ensure the numbers are truly random, along with making a nice case for his project. But all in all, it seems to be working quite well.

Be sure to check out the video for quick rundown of [M.daSilva’s] project. If randomness is your thing, make sure you check out entropy harvested from uninitialized RAM, and the story behind the NIST randomness beacon.

The 2015 Hackaday Prize is sponsored by:

42 thoughts on “Hackaday Prize Entry: Nuclear Powered Random Number Generator

          1. A similar design, yes, but in that case, hackaday could post “geiger counter for random numbers, see google for details”, and be done with it.

            Perhaps this design has some clever tricks that other people would like to know about. Or maybe it has some silly mistakes that can be improved by skilled readers.

      1. Here’s a mistake:

        time2 = interval[3] – interval[4];

        interval[4] is undefined.

        Also, you don’t update a or b when time1 equals time2, but still print out the random bit.

  1. “[M.daSilva] still has to do some statistical analysis to ensure the numbers are truly random”

    If this method is truly superior, there’s no purpose in doing the analysis. After all, the statistical analysis can’t tell you if the numbers are better than good pseudo random.

    1. To know if it is a truly superior method you HAVE to compare it to other methods via statistical analysis. If you do not verify it, how could you be sure it is random ?

      Check the variance and the mean of your output to know how random the numbers are. Anyway a pseudo random generator could be reproduced, with a radioactive source, it can’t be. The exact same project with the same radioactive source (Uranium 238) in same quantity will NOT give the same output.

      You can also take a look at https://www.random.org/analysis/ to compare a random generator and the PHP rand() function which should be random.

      1. Running the statistical analysis rules out some mistakes, but does not guarantee superiority over other methods that also pass the statistical analysis test, like a good pseudo random generator.

  2. I did a similar thing with an americum source from a smoke detector and a web cam.
    (you put the source on the CCD and it detects the gamma rays)
    only about 2.5Kilobytes a second though.

  3. “Geiger-Müller tubes aren’t eternal: they wear out after a certain amount of counts (10^8 typically).”

    This is only true if you have an old tube that’s filled with an organic quench gas. Modern tubes have halogen gases that can recombine and have much longer life spans.

    1. That’s what I though! But if you read the SBM-20 datasheet, you’ll see they have a “maximum counts” at around 10^8, depending on the datasheet http://www.gstube.com/data/2398/ (here it’s 2*10^10)

      I’ve read that even if the tube is quenched with halogen gas, they do wear out after a certain amount of pulses, the halogen just delays that effect by a (substantial) amount of time

  4. “Less predictable than software based algorithm.”

    Its really easy to create PRNG in software.

    I’ve recently created a (Galois) LFSR based PRNG.
    I use a 13bit, 14bit, 15bit and 16bit LFSR and average the low bytes.
    It gives me the gaussian distribution I needed. (XOR will give a uniform distribution)
    There is a pattern but its approx 10^17 samples long…

    It’s not random but close enough. Adding more LFSR will make it better.
    i’ve yet to test it with a randomness testing suit. The plots look promising,

      1. A LFSR, which is totally predictable and not random, will work on just about any hardware, not all low power embedded CPU’s have an AES call. Some would run out of RAM trying to implement an AES algorithm.

        It is funny but cheap (biased) random number generator push their output through hashing functions to whiten their randomness. They have flawed randomness but because of the strong hashing algorithm will pass pretty much all randomness tests.

  5. I like the project. I’d be willing to build one.

    I do have a question for some of you who might be or are more knowledgeable about said hardware based randomness.

    There were two products that I remember that seemed to have a straight forward implementation (without the bread-boarding or Geiger counter)

    One is on tindie
    “tindie ubldit truerng-hardware-random-number-generator”
    truerng device isn’t sold with acompaning schematic or netlist

    The other was a KS campaign that did finish. OneRNG
    “kickstarter moonbaseotago onerng-an-open-source-entropy-generator”
    and “github com OneRNG”
    The schema.png and top.png looks good
    bottom.png is truncated?

    Anyway this was featured:
    http://hackaday.com/2014/10/31/dual-mode-avalanche-and-rf-random-number-generator/

    Has anyone used or tested either of devices and how does it compare to say this Geiger based one?

    -=-=-=-=-=-=-=-

    I was thinking would it be possible to make a mechanical based source of randomness and record that? I was toying with the idea of a photodiode and led setup (probably need alot of led’s and reverse polarity led’s to get more pool data) that works similar to the garage door opener safety?

    In short a sort of mini conveyor belt or vacuum pump that picks up the sand that was dropped and drops it back into the funnel that is directly in the line of sight of the led/photodiode. I would venture a webcam (non-wifi) and drop the sand in front of it against a backdrop (with the same setup) however I am uncertain that either the photo-diode or webcam wouldn’t be vulnerable to TEMPEST/AirGap pickup.

    Thoughts folks?

    {Yes, I am a biological carbon based robot
    looking to optimize my firmware
    and find the proper female to replicate our DNA
    any schematics for mind control rays/beams
    much appreciate}

      1. HAHA! :D Nice post Truth! So, technically it could be made smaller, done with sand (or black and white seeds) and put in on a desktop and blackbox it. If it sounds like rain it’s on type deal.

        That Dice-o-matic though? Ugh, I can’t imagine anyone wanting to stay in the same room with that thing and listen to more then 10 minutes of operation.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.