Skip to content

Spooky-Manufacturing/QRNG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QRNG

Quantum Random Number Generator

exploded v1

Motivation

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.

How It Works

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.

qrng schematic

The equivalent quantum logic gate would be the Hadamard gate, in QASM code:

creg c0[1];
h q[1];
measure q[1] -> c0;

Hardware Requirements

  • Arduino Uno (or similar)
  • Breadboard
  • 2x Photoresistors
  • 1x 50/50 Polarizing beam splitter
  • 1x Laser Diode

Software Requirements

  • Arduino IDE (for programming the Arduino)

Firmare

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.

How To Use

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.

Available Commands

  • 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