Launch of a new extension called Mini QRNG… True random numbers.
What is Mini QRNG?
Mini QRNG is Software and Hardware that includes three technological solutions to create QRNGs (Quantum Random Number Generators). Classified as follows:
a.- QRNG API. - Quantum random number generator obtained from external servers.
b.- MiniQRNG / Software. - Quantum Random number generator obtained using the physical properties (quantum) of the mobile phone camera.
c.- MiniQRNG / Hardware. - Quantum Random number generator obtained using hardware based on the quantum physics properties of a laser. Later on we will tell you how to build it at home at a low cost and use app inventor with serial or bluetooth communications. Includes circuit diagram with arduino nano.
In the extensions directory is the OpenQbitQRNGwithSSH extension which contains the blocks for the creation of QRNG (Quantum Random Number Generator) from the camera of your mobile device smartphone (QRNG API and MiniQRNG-Software) and also (MiniQRNG-Hardware).
In the HandBooks directory are the user manuals for the use of the OpenQbitQRNGwithSSH extension. In this directory you will find manuals in different languages (Spanish, English, Italian, French, Dutch, German, Russian, Portuguese, Japanese and Chinese)
Very interesting Correct me if I’m wrong but setting the seed to the current millisecond in time, can you simulate a true random number since that millisecond will never repeat?
The origin (milisecond) of the commenting seed is not very viable to generate “true random numbers”.
In order to generate a “true random number” should be reviewed three basic points:
1.- Must review the entropy of the source where the seed will be obtained. This point is fundamental and must not come from any physical or software mechanism that will already have the predefined algorithm, that is, when generating it from a system to calculate a “time” or “hour” even if it is of a value that will never be repeated as the algorithm to obtain it is already well defined, this closes the entropy that may exist.
Example: In the case of the hour (seconds, milliseconds, nanoseconds, etc.) come from a predetermined source, this means that some hacker can anticipate the expected result. Although it is a number that will never be repeated, it is a result that can already be predicted in some way by analyzing the algorithm to obtain it.
3.- If it is possible to run the tests to verify that your random numbers are true and not pseudo-random, these tests are defined in the NIST (National Institute of Standard and Technology)
In summary, when generating a seed for random numbers, it must never come from a system that uses some predetermined algorithm.
In my extension are true random numbers, not simulation. These numbers are “QRNG - Quantum Random Number Generator”, the source that i use is the quantum mechanics based on the entropy of light-potons that a device can produce and i also include the calculation of a entropy in the extension to be able to measure and run NIST tests.
The goal is to put all the tools using quantum computing within everyone’s reach. We have taken the first steps forward towards that goal and want to create the first made home quantum processor. At a low cost, DYI - Do it yourself.
@memopolis
Thank you for this wonderful software/hardware random number generator. You inspired me by building it in hardware. Does the hardware model need to be a specific type of LDR,. or do they all apply?
I use LDR 5537, however i would think that you can use any, everything will depend on the sensitivity of each LDR when it is receiving the laser photons.
The most important thing is when you load the code to the Arduino device, in the DELAY parameter (time), the variable “time” is in milliseconds, this time must be adjusted depending on the LDR it uses or, in its case, to obtain a sample according to your needs.
It must be remembered that the LDR that we handle are very economical, however, they are photoresistors that their sensitivity to the laser can give slow sampling, however, it perfectly serves to obtain the true QRNG.
Another tip is the 50/50 beam splitter can be the most expensive component, if you buy it for professional use it will be high cost, however for practical use and to see how it works you can buy a beam splitter like this that I use and it is cheap.
Still waiting for the ldr’s, very necessary (…) before I can start building it. Did the slow shipping method. All the rest of the components arrived, regarding almost every component came from a different company.
*****Did you put the laser, prism and ldr’s in a box where other light does not get in?
No, you don’t need any box to cover the laser.
The laser when passing through the prism and dividing it (50/50) reaches the resistors directly without problems. You only have to focus the light that comes out of the prism to the resistors.
*****Is the distance you put the ldr’s towards the prism, precise (looking at both of them and a possible difference in distance)?
The distance can be minimum from the laser to the prism and also the minimum distance from the prism to the resistors, I did tests with the distance of the length of the arduino nano that is not more than 4 o 5 centimeters in each element.
The IMPORTANT thing is when you load the program to the arduino, the delay time must be checked according to the sample you want to take.
You can try long delays “delay(1500)” miliseconds where you will see the laser pulse blink down to a minimum delay of “delay(300)” milliseconds like is in the example of the program in the user guide. With this you can see the QRNG sequence in more detail.
Caution, do the tests without children nearby, and the laser should never touch the eyes directly, they can cause damage.