Quantum Random Number Generator

Download random numbers from the QRBG Service
quantum, random, number, bit, generator, qrbg121, non-deterministic, quantum cryptography
QRBG121 is a fast non-deterministic random bit (number) generator whose randomness relies on intrinsic randomness of the quantum physical process of photonic emission in semiconductors and subsequent detection by photoelectric effect. In this process photons are detected at random, one by one independently of each other. Timing information of detected photons is used to generate random binary digits - bits. The unique feature of this method is that it uses only one photon detector to produce both zeros and ones which results in a very small bias and high immunity to components variation and aging. Furthermore, detection of individual photons is made by a photomultiplier (PMT). Compared to solid state photon detectors the PMT's have drastically superior signal to noise performance and much lower probability of appearing of afterpulses which could be a source of unwanted correlations.

Because of their non-deterministic nature and near-to-maximal entropy, quantum random number generators are ideally suited for most critical applications such as cryptography, production of PIN and TAN numbers, simulations in industry or science, statistics research etc.

QRBG121 can be used either connected to a PC computer or as a standalone device.

In the computer mode, the device is connected to a PC computer via USB(2) port. Drivers and applications provided on the software disk allow to download random numbers into a file. Furthermore, a library and software examples in C, C#, and VisualBasic are provided which makes possible easy integration of the QRBG in any user developped application.

In standalone mode, the device is powered through the OEM connector provided at the rear side. The random bits are output in serial manner.

Technical specifications
Bit rate 12Mbit/s +/-5%
Bias (b)* < 0.00001
Serial autocorrelation (a) ** < 0.0002
Thermal noise < 0.0005% (5ppm)
Interface USB2 and OEM
OEM outputs 5V CMOS logic level, serial
Supported OS's Win98/Me/2000/Xp, Linux
Power supply none (powered by the USB/OEM port)
Size 55 x 65 x 90 mm
Weight 370g

* Bias is defined as the difference between the measured probability of ones and the ideal probability: b = |p(1) - 0.5|.
** Serial autocorrelation cofficient a is defined in D. Knuth, art of programming Vol II:
. where Y_i are individual bits.
We actually check that first 16 coeficients (k=1...16) are within the limit given in the table.

Randomness tests results

The US National Institute of Standards and Technology has proposed the "Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications", STS. We have tested 500 sequences of 1,000,000 bits produced by the QRBG121 with all 16 tests available in the suite. The tests were pased with excellent marks. Detailed results can be found here.



We have also performed tests with the "DIEHARD" battery of strong statistical randomness tests, probably the most respectable test suite, invented by prof. Georges Marsaglia from the Florida State University. We have used the latest version which comprizes 17 different statistical tests. Some of them require very long sequences: the minimum to run all the tests is 268 megabytes. Tipical test results of a 300 megabytes of random data produced by the QRBG121 can be found here. Most of the tests produce one p-value, whereas some produce several p-values. A test is said to fail if a single p-value related to it is either very close to 0 or to 1 (up to 6 or more decimal places). The QRBG121 passes all the DIEHARD tests.



Min-entropy is an important parameter in theory of extractors and information-theoretic secure communications. Its definition is (Wikipedia):
The min-entropy is always less than or equal to the Shannon entropy; it is equal when all the probabilities pi are equal. When min-entropy is measured over a set of data (for example string of random bits) it presents a worst-case probability of all possible patterns of given length. We have caried out measurements of min-entropy (blok length n=8 bits, non-overlapping) of serveral sample files of random binary bits produced with the QRBG121. The expected min-entropy is a function of number of tested blocks N (file length) and block length n, and should slowly converge towards n as the number of blocks goes to infinity. Table below shows measured min-entropy and theoretically expected values for the test.

1E57.8132 7.8135 +/- 0.0222
1E67.9360 7.9384 +/- 0.0077
1E77.9820 7.9802 +/- 0.0025
1E87.9929 7.9937 +/- 0.0008
1E97.9979 7.9998 +/- 0.0003
The conclusion from these measurements is that the min-entropy test does not show any anomalies of random data produced by the QRBG121 even for strings as long as 1,000,000,000 bytes.

Sample Binary Files

The generator QRBG121 actually produces random bits one by one. Our downloading software aranges bits in bytes (in the little endian order) and simply writes them to a file on disk.

Some sample binary files produced by the QRBG121 can be found below.

qrbg-10k.bin (10,000 bytes)
qrbg-100k.bin (100,000 bytes)
qrbg-1M.bin (1,000,000 bytes)

You are kindly invited to read the scientific article about the principle of operation of this product: 0609043v2.pdf also published as: Rev. Sci. Instrum. 78, 045104 (2007).