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.
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.
http://chemistry.about.com/od/nuclearchemistry/fl/How-Radioactive-Is-Fiesta-Ware.htm
No schematic? … No board files? … No explanation of the Geiger counter design?
: (
No Bitching? .. No Moaning?.. No Google skills? :)
If the author didn’t publish the schematics/board files/design, then Google isn’t going to find it, no matter how wicked your skills.
The design can easily be replicated with a little Google “who done it” work from other projects.
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.
It doesn’t.
Apparently it does contain at least one silly mistake: the assumed limited life span of the GM tube.
Oops! I knew it was missing something!
The actual design comes from an open-source Geiger kit sold here: https://sites.google.com/site/diygeigercounter/
I’ll post the whole schematics, plus the board design files on GitHub
Here it is! https://github.com/ManoDaSilva/RNG
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.
Thank you for the update to the original post!
Sorry… Everything is on github.
https://github.com/ManoDaSilva/RNG
I wonder how long it will take to generate 512GB of data to run one of the more data hungry dieharder tests ( https://sites.google.com/site/astudyofentropy/background-information/the-tests ).
Great project though, reminds me of hotbits.
“[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.
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.
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.
What is your “good random generator” ? How are you sure it is a good random generator? Because `Running the statistical analysis rules out some mistakes, but does not guarantee superiority over other methods` ?
It has to be superior by design.
So you would consider running the “dieharder” test suite a waste of time ?
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.
Presumably you had to use the position of dots in each frame rather than the timing?
“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.
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
This looks like it’s copied straight from a SparkFun tutorial:
https://www.sparkfun.com/tutorials/132
– Jm
Nope, the design is completely different; I use a 555 timer instead of a flip-flop, and no voltage multipliers.
This one is opensource :
http://mightyohm.com/blog/products/geiger-counter/
Misleading title is misleading.
Certainly not nuclear “powered”
Nuclear seeded?
I would say “triggered”
If something can be <img src="http://maps.google.com/mapfiles/poweredby.png", then this is "nuclear powered".
We seriously need a comment edit button… Or at least a preview. This comment is not
AAAAAAAAAAAAARRRRRRRGH!
“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,
Or just count 1, 2, 3, 4, … and encrypt by AES-256 with secret key.
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.
This reminds me of hotbits, maybe one of the first such nuclear-triggered random number generators, online since 1996. https://www.fourmilab.ch/hotbits/
That web page has a detailed explanation of the hardware he used and the algorithm used to turn randomly timed clicks into ones and zeroes.
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}
You mean like the dice-o-matic ?
https://www.youtube.com/watch?v=7n8LNxGbZbs
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.
Do you need a nuclear source for this? Background radiation should suffice?
3 or 4 count a minute
pity there is no picture for it, but:
https://en.wikipedia.org/wiki/Lavarand
lava lamps, cameras, randomness.
SGI was cool, back then ;)