Nuclear Random Number Generator

A self-contained, true random number generator which uses radioactive decay as an entropy source.

Similar projects worth following
DISCLAIMER: this project uses radioactive isotopes. Please make sure you take all necessary measures should you intend to replicate it. I cannot be held responsible for any misuse, or accidents that may occur. Be safe!

This project is aimed at creating a true random number generator. Why? Because I want to have a concrete use for some Geiger tubes I have. For now they do nothing more than clicking furiously at some radioactive samples...

It is well known that random numbers generated only with software algorithms have a massive flaw: they're predictable by nature, should one get access to said algorithm.
Radioactive decay is, by definition, completely random: you cannot predict exactly when the next event will occur. This device takes advantage of that and makes an attempt at generating totally random numbers.

The generator consists of three main blocks:

-The actual source and Geiger tube (inside a leaded enclosure);

-A power supply/pulse shaper (which powers the tube with 400VDC, and gather the pulses the Geiger generates);

-The Microcontroller, which handles the talk with the PC.

My project has to meet the following goals:

-Safety. I want the source to be completely shielded, and still allow me to carry it around without risking to compromise the lead lining.

-Power. The whole thing has to be powered by USB. That shouldn't be too much of a problem, as the circuit does not draw more than 100mA at full power.

-Size. Something small, that fits in a small enclosure.

-Simple. It should be able to talk with the computer through a COM port, to use the data easily with any program I want... That should be easy to do with an Arduino Leonardo.

-Lifespan. Geiger-Müller tubes aren't eternal: they wear out after a certain amount of counts (10^8 typically). The source has to be sufficiently radioactive to generate enough pulses, but not too much that it wears out after a month.

  • 1 × SBM-20 Tube An ancient soviet Geiger Tube. Very sensitive and cheap!
  • 1 × Radioactive Source I'll be using a small chip from an old fiestaware plate which contains small amounts of Uranium.
  • 1 × Lead Shielding I don't want any radioation zipping around my computer!
  • 1 × Geiger counter Kit Here I remade a small PCB with everything I needed, but you can also buy a Kit and get the pulses from the µC input.
  • 1 × Microcontroller with USB capability Something that can measure the pulses and send a 0 or 1 to the computer, through a COM port. Here I'll be using an Arduino Leonardo clone.

  • Project video

    M.daSilva08/15/2015 at 22:47 0 comments

    I made a small descriptive video for my project! A picture is worth a thousand words, but what about moving images? ;)

  • We've got some numbers!

    M.daSilva03/29/2015 at 20:10 0 comments

    All right, the PCB is done, the holes drilled, and the components soldered in place. After some testing, I plugged the thing in a 5V supply, and Tada! Got HV on the Geiger input!

    I quickly programmed a small sketch that does the math and counts the pulses in the Arduino Leonard. The binairy data is sent through the serial port, and arrives on my computer. I'll post the sketch later on.

    For now, it seems that the numbers are random, but I'll need to analyse them more thoroughly...

  • Shielding the source and tube

    M.daSilva03/25/2015 at 12:28 0 comments

    I've finished printing the circuit board, it should be completed by this evening.

    In the meantime, I made some progress on the source.

    The Geiger tube is wrapped around the lead shielding with the radioactive source. I closed the ends by gluing lead strips around the edges, and used a lab NaI scint counter to check for leakage. Nothing seems to get out of it, we'll see in the long term how the shielding holds.

    A small, self-contained source plus tube!

  • Yay! Progress!

    M.daSilva03/21/2015 at 16:06 0 comments

    So... I've decided to use another Geiger Tube. Instead of using the SI-3BG, which isn't very sensitive, I'll use the classical СБМ-20 (SBM-20), it'll generate more counts, but will need a bigger enclosure.

    The first enclosure (which will hold the radioactive sample, shielding plus Geiger tube) is a small plastic box I bought on eBay for about 5 bucks. The tube fits inside nicely!

    I'm still working on the 400V power supply. I've already made a first try which includes the clicker (copied directly from Brohogan's design), but I'll chop off that part in the next version, andjust keep the power supply and the microcontroller interface...

    That circuit board should be ready by next week!

  • First thoughts

    M.daSilva03/11/2015 at 10:24 0 comments

    The first thing I want to care about is the most critical part: the radioisotope and Geiger tube, plus shielding.

    My choice of isotopes is pretty limited:

    -U-238, contained in some old Fiestaware plates;

    -Am-241, from smoke detectors;

    -Th-232, from lantern mantles;

    -Ra-226, from radium watch hands.

    My choice is mainly dictated by how safe I want it to be: nothing in a powdered form, I want a solid source, that won't scatter easily if breached.

    The Ra-226 is out of the question, as it is simply painted on zinc sulfide, the contamination risk is way too high.

    Am-241 emits lots of alpha, but much less gamma, so not that great, since my GM tubes are only beta and gamma sensitive. Besides, there's a contamination risk should the source be released from its bracket.

    I'm still hesitating on Th-232 or U-238: the lantern mantle has the advantage of being easy to wrap around the tube, but can scatter if burned (the cotton burns out, leaving a brittle ceramic structure that breaks easily and gets in the air, causing a serious contamination danger). On the other hand, the Fiestaware plate chip is solid and shouldn't scatter in case of a fire, but is much hotter (read radioactive) than the other samples I have; more shielding may be required.

    As for the Geiger tube, I'll get started with a си-3бг (SI-3BG) beta and gamma sensor. It isn't very sensitive, that's why I need a source to get enough counts and use the thing. However, this tube is very small, so it should be easy to fit it in a small leaded enclosure.

    I will use lead for shielding. As Th-232 and U-238 does not emit enough beta to create significant bremsstrahlung radiation, especially with the weak sources I use. Actually such shielding may look like overkill, but I want this thing to fit inside a pocket! I don't want to detect anything outside the casing.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates