The HotBits hardware uses readily available commercial off-the-shelf items. By interfacing with the computer's serial port and making all the measurements in software, all the complexity of my original 1986 design is eliminated.
To detect radioactive decay events, I use a commercial radiation monitor, the Aware Electronics model RM-80 which contains a “pancake” type Geiger-Müller tube interfaced to a computer's serial I/O port: each count inverts the “ring indicator” signal presented to the computer, which can be used to trigger an interrupt or, as with the HotBits driver, polled by a timing loop. The high voltage for the Geiger-Müller tube is generated within the detector from power provided by control signals on the serial port, so no additional power supply is required. The tube in the RM-80 is halogen quenched and and almost immune to saturation, which allows it to function without problems in the high flux environment of a check source in immediate proximity to the detector. Since we're interested in timing individual events, a detector of this kind is essential; many radiation monitors use an ionisation chamber which measures the average level of radiation but does not permit timing individual decay events.
The RM-80 detector provides a completely off-the-shelf solution
for generation of random numbers by radioactive decay. The
first-generation HotBits generator, launched on the Web in 1996,
modified handheld radiation monitor with
a custom interface to a serial port, connected to a Windows 95 machine
running a software driver
integrated into a mini-Web server. The second-generation HotBits
server of 1998 retained the Windows 95 host and mini-Web server, but
replaced the modified radiation monitor with the Aware Electronics
RM-80 detector and the original Krypton-85 source with the present
Cæsium-137 check source; the increased sensitivity of the RM-80
and its immunity from saturation increased the rate of HotBits
generation from about 30 bytes per second to more than 100. The
third-generation HotBits configuration, inaugurated in September of
2006, retained the RM-80 detector and Cæsium radiation
source, but eliminated the legacy Microsoft software components
in favour of a Linux-based server which is completely integrated
with the HotBits proxy server; the same software now supports both
local generators and proxy access to remote generators and should
be far more reliable than the Windows based machine which, like
most things Microsoft, crashed every couple of months for no
Radiation is ubiquitous in our fair universe so, strictly speaking, there's no need for a radiation source—we could just rely on background radiation, primarily due to cosmic rays and radioactive decay of natural thorium and uranium in the Earth's crust. Background radiation increases with altitude since the higher you go, the less the atmosphere shields you from cosmic rays. At sea level, cosmic rays account for only about 30 millirems per year, but at our altitude of 800 metres in the Jura mountains of Switzerland, the background radiation is about 165 millirems per year. By comparison, an X-ray is about 50 millirems.
Although background radiation can be used, you either have to not need very many random bits or else be very patient, since four counts are required to generate each bit and background radiation counts only occur every few seconds.
This is your detector on background radiation.
To crank up the bit generation rate to something usable for
a server accessible on the Internet, we need a radiation source
more intense than background radiation. An Oxford Nuclear
5 microcurie Cæsium-137 check source fills this bill superbly, creating
decay events sufficiently rapidly to permit generating more than
100 bytes of random data per second.
This is your detector on Cæsium-137.
Check sources of this kind are readily available, can be shipped through the mail, and require no license in most reasonable jurisdictions; people in the United States can order them on-line from United Nuclear.
The source generates radiation through the beta decay of Cæsium-137 and the subsequent rapid gamma emission by the resulting metastable Barium-137 nucleus.
where the beta particle (an electron, just like those illuminating the computer screen on which you're reading this document, only moving faster) is emitted with a maximum energy of 1.176 million electron volts (MeV) and the gamma ray photon with an energy of 662 keV. Cæsium-137 has a half-life of 30.17 years, so about every billion seconds your source will lose half its intensity. The radiation level impinging on the Geiger tube of the detector is about 60 millirems per hour, as measured by the radiation monitor.
If you can't lay your hands on a purpose-built radiation source, a couple of other alternatives are available. Mantles for gasoline (petrol) and some kerosene (paraffin) lamps are coated with Thorium oxide. There is no stable isotope of Thorium; the only isotope found in nature, Thorium-232, decays by alpha emission with a half-life of 14,000 million years, so there's still plenty left over from the supernova that made the heavy atoms in the Sun, the Earth, and you and me. Obviously, with such a long half-life, you're not going to get intense radiation from a Thorium-coated mantle, but it's still a lot better than background radiation for speeding up bit generation. Be careful when handling the mantle—follow the instructions that came with it, wear gloves, and don't do anything that will make dust you might inhale or swallow. You may be able to simply leave the mantle in its original package, but since alpha radiation is not very penetrating, this might not work.
Ionisation-type smoke detectors (as opposed to the photoelectric type) contain a radiation source, usually Americium-241, an alpha emitter with a half-life of 458 years. It is possible to remove the radiation source from one of these units, but it's a bad idea because alpha emitters can be very dangerous should you accidentally expose the radioactive material and ingest it.
Another alternative is to visit a shop catering to rock collectors and buy a specimen of a Uranium-bearing ore such as Carnotite or Pitchblende. Natural Uranium has a half-life of 4,500 million years and, like Thorium, decays by alpha particle emission.
If you don't know what you're doing, radioactive material of any kind is better left strictly alone. I am not encouraging you to fool around with hot stuff—especially when there's no need to, since you can get all the random bits you need from the Fourmilab generator.
The detector is attached to a dedicated HotBits generator machine. Since the driver software prevents interrupts while measuring the interval between successive decay events to obtain precision timing, the HotBits software should not be run on a public server or other heavily loaded machine which requires rapid response time. The generator machine is an entry-level Dell Optiplex 210L office computer with an Intel Celeron 2.8 GHz processor. This machine includes a serial port and Ethernet interface as standard equipment, and is used in factory stock configuration. The HotBits application does not require anything like the speed of this processor, but that was the slowest and cheapest option available when the machine was ordered in August 2006. The monitor may seem a bit much, but it was sitting around unused after the ancient 80486/50 Windows 3.1 development machine to which it was attached was retired, so I ordered the HotBits generator without a monitor and pressed this one into service. As it turns out, the blue electron gun in the CRT appears to be failing, so sometimes the screen fades to shades of red, green, and yellow (it was behaving when I snapped this picture), but that's no problem for this application. The generator machine runs Fedora Core Linux, with release 5 installed when the machine was put into production. No Microsoft products are installed on this machine. I moved the detector and radiation source to the right of the machine for this photo. Usually it sits in the corner of the Hall of the Servers behind the radiation sign. The machine is connected to the DMZ segment of the Fourmilab local network, and is not accessible from the Internet.