|
|
|
|
|
by elromulous
1474 days ago
|
|
Neat. While there are a bunch of Geiger counter RNG kits you can get, I appreciate the author's thoroughness. I will say, one thing that's unclear to me from the write up(s), is how the author implemented the logic for deciding an individual bit value. The typical way folks do this (with a geiger counter), is to measure three events per bit (although you could potentially optimize this in a sequence). With 3 events, you then have two durations, the time between events 0 and 1, and events 1 and 2. Based on which duration is longer decides the value of the bit. |
|
The numbers are generated directly from the current timer/counter value at the moment of the event. I'm not at all measuring time BETWEEN events. It's just a counter that overflows ~300 times per second (20MHz clock in a 16 bit counter), while the radioactive events happen every ~1-3 seconds. This ensures that the numbers are uniformly distributed and uncorrelated.
I am actually throwing away some enthropy bits doing this, as there will be significant bits to the left that i'm discarding. A somewhat next step in the future could be the assesment of how many bits can the counter be, without impacting the quality of the output. Maybe i can get something like 20 bits per event.