Quantum Random Number Generator
The QRNGv1 (Now QRNG_BASIC) was originally a proof of concept for quantum technology applications, specifically in this case for the generation of entropy which has a broad range of uses from generating graphics to encryption keys.
The device uses a polarizing beam splitter to split a laser pulse into two beams with a 50/50 probability of a photon in the beam traveling either path. The photons actually travel as a wave, meaning they both pass through and are reflected by the beam splitter. This creates what's known as the superposition of light where the light remains in both paths able to interfere with itself until it is measured and collapses out of superposition.
The equivalent quantum logic gate would be the Hadamard gate, in QASM code:
creg c0[1];
h q[1];
measure q[1] -> c0;
- Arduino Uno (or similar)
- Breadboard
- 2x Photoresistors
- 1x 50/50 Polarizing beam splitter
- 1x Laser Diode
- Arduino IDE (for programming the Arduino)
Firmware can be found in the respective design folders labelled according to version. The schematics as well are labelled with the version of firmware which supports them.
Currently the QRNG arduino operates via the Arduino Serial Monitor, you can issue single letter commands to it. We plan to add support for the device with our Qubit Controller in the near future.
- v : Version, returns the current firmware verison
- t : Test command, should return 'Success!' on the monitor
- e : Enables extraneous information
- r : Returns a random bit generated by the RNG
- h : Produces a hadamard operation on the qubit, returning the measured angle of the qubit