What is this all about?
This website provides online and live quantum random numbers to the public. Anyone can download the random numbers free of charge.
If you have any comment or suggestions, we would be happy to hear it. Also you require bigger sequences or if you want to have your very own quantum random number generator, please contact us at: email@example.com.
How fast are the numbers being generated?
The hardware is constantly generating random bits at a rate of 5.7Gbits/s. Currently, the rate at which the live bits are streamed is being limited by the bandwidth of the internet connection.
What do we mean by ‘true randomness’?
In a truly random sequence, given as many past bits, we will not be able to predict the next bit with greater than 50 percent probability of success.
See how well you can predict the next eight bits of our numbers.
Why do we think that we have true randomness?
We are measuring the quantum fluctuations of the vacuum and quantum mechanics predicts that it will be random. If we can find some patterns in the numbers then physicist would have to work on a better theory to explain what is going on. Or maybe there were loose cables in our experiment. Moreover, we devised a method to isolate the contributions of the quantum fluctuations from other sources of noise, such as electronic noise, in our random numbers.
How do we know that we have true randomness?
We don't. All we can say is that the statistics of the output are consistent with true randomness. There are some statistical tests on the links page. Each of the test will return a p-value. These p-values give the probabilties of obtaining the observed (or a more extreme) results assuming that the underlying distribution is random.
From time to time, our random sequence will return a low p-value. This is because even a seemingly non-random sequence is sometimes produced at random. But over a large enough sample, these p-values should have a uniform distribution.
What are pseudorandom numbers and how are they different from true random number generators?
Traditionally, computers rely on mathematical algorithms to generate ‘random’ numbers. These type of random numbers are called pseudorandom numbers. For a finite sample, good pseudorandom number generators will also reproduce statistics that are consistent with true randomness.
But all pseudorandom number generators rely on a seed to generate the random sequences. This means that anybody who has access to the seed will be able to generate the same sequence of random numbers.
Moreover, most pseudorandom numbers have a finite period. Good pseudorandom number generators (e.g. Mersenne Twister MT19937) have humoungous periods. But eventually, if we wait long enough, the sequence will repeat itself.
However for our random number generator, even if two exactly identical generators were placed in identical environments with identical initial conditions, the two streams of number generated will still be totally uncorrelated to each other.
How can I download the numbers directly to my computer?
There is an HTTP GET based API that returns JSON responses. This API documentation page demonstrates the input parameters for the requests.
There are several independent projects on GitHub that provides an interface to directly access the live random numbers. Some of them are listed below
- If you need to use the QRNG in your the C# codes, sublight provides a C# class that is available for download.
- The quantumrandom project by Luke Macken provides a Python interface as well as a Linux command line tool. The source code is available on github.
- The node-qrand project by cbumgard provides an interface in Node.js language.
- An interface for various languages (Ruby, C, C++, sh, Java, Python) is provided by the anurandom project created by pcragone on github.
- The ANUQRandom project by freematrix provides an .NET library to query the QRNG.
- The anuquantumrand project by Brian Saltz Jr provides a Java interface to the QRNG.
- The Perl module Net::Random on CPAN by David Cantrell provides an interface to the ANU QRNG as well as other online RNGs.
- In Matlab, these codes can be used to access the JSON QRNG server. You will need the JSON Parser package by Joel Feenstra.
Disclaimer: While we appreciate and welcome open source collaborations, these codes are contributed by independent parties and are not part of the ANU. The ANU cannot be responsible for the codes you choose to install.
Are the random numbers unique and secure?
Each time you open one of the 'live stream' or 'block' pages the server will deliver new and unique random numbers. Moreover, these pages are authenticated, and encrypted to add extra security. So, as long as nobody hacks our server, or is able to break the encryption protocol, the random numbers you obtain from this website should be unique and secure.
We do not keep a copy of the numbers that are served. If you misplace your numbers, we have no way to tell you what those numbers were.