Can there be a hardware random number generator that solely relies on such cosmic particles etc. hitting it?
Bonus: Use it as signs from God (reminiscing of Terry Davis of TempleOS)
Can there be a hardware random number generator that solely relies on such cosmic particles etc. hitting it?
Bonus: Use it as signs from God (reminiscing of Terry Davis of TempleOS)
It measures the time between two events (call this T1) and then the time between the next two events (call this T2).
If T1 > T2, you've got a 1. If T1 < T2, you've got a 0. If T1 = T2 throw it out.
As this is measuring the time between events rather than the rate of events, a decaying source just gives less bits over time rather than less randomness.
> The trick I use was dreamed up in a conversation in 1985 with John Nagle, who is doing some fascinating things these days with artificial animals. Since the time of any given decay is random, then the interval between two consecutive decays is also random. What we do, then, is measure a pair of these intervals, and emit a zero or one bit based on the relative length of the two intervals. If we measure the same interval for the two decays, we discard the measurement and try again, to avoid the risk of inducing bias due to the resolution of our clock.
I'm sure the device is on a scale where this effect is tiny, but the description sounds like the creator is aiming for absolute theoretical correctness rather than "good enough" randomness which is not so hard to come by.
The difference between 10^23 and (10^23) - 1 would be lost in the clock resolution of the computer it is hooked up to.
The statistical tests of randomness are described at https://www.fourmilab.ch/hotbits/statistical_testing/stattes... from ent ( https://www.fourmilab.ch/random/ )
Entropy = 7.999975 bits per byte.
Optimum compression would reduce the size
of this 11468800 byte file by 0 percent.
Chi square distribution for 11468800 samples is 402.53, and randomly
would exceed this value 0.01 percent of the times.
Arithmetic mean value of data bytes is 127.5423 (127.5 = random).
Monte Carlo value for Pi is 3.141486168 (error 0.00 percent).
Serial correlation coefficient is -0.000053 (totally uncorrelated = 0.0).
I'd be impressed to find any other data source that is more random than hotbits (autocorrect keeps wanting to make this hobbits).----
(late edit)
https://www.fourmilab.ch/hotbits/how3.html specifically addresses this though:
> For example, you might worry about the fact that the intensity of the radiation source is slowly decreasing over time. Cæsium-137's 30.17 year half-life isn't all that long. One half-life in the future, we'll measure T1 and T2 intervals, on the average, twice as long as today. This means, then, that even on consecutive measurements there is a small bias in favour of T2 being longer than T1. How serious is this? Well, expressed in seconds, the half-life is about 9.5×108 and we receive count pulses at a rate of 1000 per second or so. So the time needed to perform the measurements to produce one random bit is on the order of 10−12 half-lives, and T2 will then tend to be longer by a factor of the same magnitude. Since the inter-count interval is around a millisecond, this means T2 will be, on average, 10−15 seconds longer than T1. This is comparable to the long-term accuracy of the best atomic time standards and is entirely negligible for our purposes. The crystal oscillator which provides the time base for the computer making the measurement is only accurate to 100 parts per million, or one part in ten thousand, and thus can induce errors ten million times as large as those due to the slow decay of the source. (This is, again, unlikely to be a real problem because most computer clocks, while prone to drifting as temperature and supply voltage vary, do not change significantly on the millisecond scale. Still, jitter due to where the clock generator happens to trigger on the oscillator waveform will still dwarf the effects of decay of the source during one measurement.)
I suppose you could get more randomness using von Neumann's method for a biased coin - either waiting for multiple time periods, or with multiple decay sources in parallel. Or XOR the bits with a shitty but cheap source of randomness. But it's more valuable to be able to put an upper bound on your bias is - here, something like 10^-12 - and ensure that's acceptable for your application.
You could compensate for this mathematically - you'd look at the intervals relative to the expected interval for the current radioactive mass, rather than relative to each other.
(Of course, the bias would be on the order of the reciprocal of Avogadro's number, and probably ignorable for all practical uses.)
If you've got a mole of cesium, that's 132 grams and contains on the order of 10^23 atoms. Even after one half life (33 years), that's still on the order of 10^23 atoms. The difference between 10^23 and (10^23) - 1 isn't going to be noticeable.
The statistical tests of some hotbits data - https://www.fourmilab.ch/hotbits/statistical_testing/stattes...
The test that you're likely most interested in is ent ( https://www.fourmilab.ch/random/ ) and the entropy per byte and serial correlation test
Entropy = 7.999975 bits per byte.
Serial correlation coefficient is -0.000053 (totally uncorrelated = 0.0).
From the docs:> Serial Correlation Coefficient
> This quantity measures the extent to which each byte in the file depends upon the previous byte. For random sequences, this value (which can be positive or negative) will, of course, be close to zero. A non-random byte stream such as a C program will yield a serial correlation coefficient on the order of 0.5. Wildly predictable data such as uncompressed bitmaps will exhibit serial correlation coefficients approaching 1. See [Knuth, pp. 64–65] for more details.
If you had a sufficiently precise clock where the difference between the 10^23 and 10^23 - 1 became noticeable, you'd likely see other effects. Cesium 137 decays via beta decay which is influenced by the weak force and neutrino. There is evidence that solar neutrinos slightly perturb the rate of beta decay ( https://physicsworld.com/a/do-solar-neutrinos-affect-nuclear... )
> Further evidence that solar neutrinos affect radioactive decay rates on Earth has been put forth by a trio of physicists in the US. While previous research looked at annual fluctuations in decay rates, the new study presents evidence of oscillations that occur with frequencies around 11 and 12.5 cycles per year. The latter oscillation appears to match patterns in neutrino-detection data from the Super-Kamiokande observatory, in Japan. Other physicists, however, are not convinced by the claim.
... and if you are capable of measuring the differences between N and N-1 atoms in the decay rate or the influence of neutrinos in the decay rate your clock is way too expensive to be used for generating random numbers.
----
(late edit)
https://www.fourmilab.ch/hotbits/how3.html specifically addresses this though:
> For example, you might worry about the fact that the intensity of the radiation source is slowly decreasing over time. Cæsium-137's 30.17 year half-life isn't all that long. One half-life in the future, we'll measure T1 and T2 intervals, on the average, twice as long as today. This means, then, that even on consecutive measurements there is a small bias in favour of T2 being longer than T1. How serious is this? Well, expressed in seconds, the half-life is about 9.5×108 and we receive count pulses at a rate of 1000 per second or so. So the time needed to perform the measurements to produce one random bit is on the order of 10−12 half-lives, and T2 will then tend to be longer by a factor of the same magnitude. Since the inter-count interval is around a millisecond, this means T2 will be, on average, 10−15 seconds longer than T1. This is comparable to the long-term accuracy of the best atomic time standards and is entirely negligible for our purposes. The crystal oscillator which provides the time base for the computer making the measurement is only accurate to 100 parts per million, or one part in ten thousand, and thus can induce errors ten million times as large as those due to the slow decay of the source. (This is, again, unlikely to be a real problem because most computer clocks, while prone to drifting as temperature and supply voltage vary, do not change significantly on the millisecond scale. Still, jitter due to where the clock generator happens to trigger on the oscillator waveform will still dwarf the effects of decay of the source during one measurement.)
As to his activity on this (HN) site? https://news.ycombinator.com/item?id=9048947 ... and chasing links...
Animats 13 hours ago
The John Nagle linked in hotbits:
> The trick I use was dreamed up in a conversation in 1985 with John Nagle, who is doing some fascinating things these days with artificial animals.
Artificial animals in that part links to http://www.animats.com
The link at https://news.ycombinator.com/item?id=9048947 for the user Animats (who has an about and signs posts as John Nagle and links to the above site also)
> Animats on Feb 14, 2015 | root | parent | next [–]
> Yes, it's me. I did my networking work at Ford Aerospace in the early 1980s. But I left in 1986. It still bothers me that the Nagle algorithm (which I called tinygram prevention) and delayed ACKs interact so badly. ...
> A binary digit (bit) can be either 0 or 1. There are several Random.org radios located in Copenhagen, Dublin, and Ballsbridge, each generating 12,000 bits per second[8] from the atmospheric noise picked up.[9] The generators produce a continuous string of random bits which are converted into the form requested (integer, Gaussian distribution, etc.)
What do you mean by that ? There are only so many particles of ionizing radiation traversing a given surface per unit time (fortunately for us).
The CCD sensor, connected as USB camera, will record thousands of flashes/sec capturing the alpha radiation.
Airborne radiometric ground surveys run calibration flights at varying altitude to build an estimate of cosmic activity in order to subtract that from ground events originating from Uranium, Potassium, Thorium, Radon, etc.