Title: Quantum Random Number Generator
1Quantum Random Number Generator
- Project 40
- Jason Agne and Jwo-Shiun Yang
2Introduction to the Project
- Practical Applications
- Encryption/Security
- Simulations
- Video Games
- History
- Current source of random numbers is the
computer clock not perfect - Quantum random number generation relies on
inherent uncertainties of Quantum Mechanics it
must be random - The trick is to exploit that and turn it into a
digital signal.
3Introduction to the ProjectThe old approach
Detector
11001
Laser
Beam Splitter
Current Commercial QNG 10 Mbits/s
4Introduction The old approachLimitations
Single photon production is not easy especially
at an exact rate (impossible)
But to properly be a digital output, it must be
exact and constant
Timing ranges were used to rectify this timing
issue
5Introduction The old approachLimitations
On a single-photon level, there can only be a
probability of emission
P
1
This requires an output to wait for a
determined time to ensure the system had an
adequate chance to emit a photon
t
6Introduction Our approach(proposed by Prof.
Kwiat)
Rather than worry about the uncertainty of the
timing, we exploit it!
P
1
- Laser is turned on
- Time until first emission is recorded
- Time until second emission is recorded
t1
t2
t
7Introduction Our approach(proposed by Prof.
Kwiat)
Rather than worry about the uncertainty of the
timing, we exploit it!
is
a random number!
t1
t2
-
Not only that, but it can correspond to many
bits, not just one. (resolution of detection)
Suppose we have a laser emitting single Photon
per pulse at 10MHz Bit rate ( of bit per
photon) (Frequency) 17 bits 10MHz
170Mbits/s
8Three semesters of effort
- Spring of 2006 Waveform generator
- Suhail Barot
- Aditya Vadrevu
- Abhinauv Kapoor
9Three semesters of effort
- Spring of 2006 Waveform generator
- Fall of 2006 High-speed Time to Digital
Convereter (TDC) - Charles Ruiz
- KanKan Yu
- Mike Noone
10Three semesters of effort
- Spring of 2006 Waveform generator
- Fall of 2006 High-speed TDC
- Spring of 2007 The Hasher
11Overview of our project
- Function occurred in four steps
- Program the TDC using Xilinx FPGA board
- Underwent an Exponential Debiaser
- Filtered into an appropriate Time Bin
- Was stored in memory as a usable output
12TDC-Time to Digital Converter
- From ACAM mess electronics
- Internal Registers needs to be configured
Stop-Trigger
Start-Trigger
ACAM TDC-GPX
13TDC State Machine
min. require
tS-AD Address setup time 2 ns
tS-DW Write data setup time 5 ns
14TDC State Machine
min. require
tS-AD Address setup time 2 ns
tV-DR Read data valid time 5 ns
15Program Testing
Configuring registers 4 and 5
4
5
4
5
Chip Select
ADDR(2)
ADDR(0)
Write
Register 4 5
ADDR 0101 0110
D(27-22) 010000 000011
D(24)
?x 2.08MHz 480 ns Check with ( of reg)( of
state each)(Clk period) 212(1/50MHz) 480 ns
D(26)
16Program Testing
Dout (V) 0.007 0.017 0.007 0.014 0.1 0.091 0.102 0.019 0.006 0.379 0.368 0.362
Logic 0 0 0 0 0 0 0 0 0 1 1 1
Hex 0 0 0 0 0 0 0 0 7 7 7 7
0.376 0.360 0.373 0.357 0.359 0.352 0.011 0.016 0.440 0.091 0.009 0.091 0.013 0.105 0.110 0.350
1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1
F F F F C C C C 8 8 8 8 1 1 1 1
High Output from TDC 0.34V
Low Output from TDC
17Bins
- Bins correspond to a range of values.
- Used to recalculate a distribution
- A uniform distribution of outputs is necessary,
as, for random numbers to be considered random,
each possible number should be equally probable.
18Four-bin example
This is an example of a biased output
The count is the running sum of each output of
the TDC
Separating these into four bins means that
anything within the range of a bin will put out
one of only four numbers
19Four-bin example
- A regular exponential distribution is converted
into only four possible outputs - In this case, we see there is a clear bias
towards bin 1.
20Rebinning
- This is remedied by altering the bin ranges.
- Those with a higher count get a shorter range,
thus reducing the rate of counts to match the
other bins.
Each number will then correspond to a two-bit
output, and each with a 25 probability.
21Data from the TDC
- The distribution is very likely to be
exponential, and possibly to an extreme degree
(depending on operating conditions) - We designed an exponential debiaser that attempts
to re-bin an extreme exponential input - This is done before the data even enters the real
time bins
22The Exponential Debiaser
- A comparatively short module that takes a value
set for the debiaser, and divides it into
sub-bins based on that number - A total of 30 unique Exponential modules were used
23The Exponential Debiaser
- Designed for inputs with an extreme exponential
bias. - The contents of the first sub bin are stretched
out across all but the last. - All but the first sub-bin is squeezed into the
last sub bin.
24The Exponential Debiaser example
- Everything on the left side of 1 will get
stretched out to 2 - Everything on the right side of 1 will be
condensed into 2
25The Exponential Inhibitor
- The distribution is now far less exponentially
biased (but not completely) - This was an example of a four bin recalculation.
Our Inhibitor can produce a maximum of 215
26Exponential debiaser loses data
- Increments in powers of 2
- Divides into 2n sub-bins (where n can be a max of
15) - Each bin will then have a range of 226-n
- For n 15, each number not in the first bin will
be compressed into one number in the last bin,
and being truncated in the process - This shouldnt be used except for dealing with a
heavy exponential bias
27The Time Bins
- 4096 Bins
- Each with a Unique ID
- ID corresponds to a bin number
28The Time Bins
- Range is also stored
- Incoming data is tested against the range along
with information about the max of the previous
bin - If it is found to be in that range, the bin
number is passed instead of the random number - That number also becomes flagged
29The Time Bins
- From then on, it will be recognized as having
found its bin, and corresponding random number
(the flag disables any second recognitions - This is a long process, but the best way we came
up with, to stay in sync with the input
30Writing the Ranges
- We wanted to allow for full control over the bin
widths - The register for each range is 216 bits wide
31A small delay
- These time bins each run on one clock cycle
(20ns) - There are 4096 of them, which means there is a
80 micro-second delay between the input and
output - The rate of output, however, is still the same
32Test for Randomness
- Not a detailed test for randomness
- The device was designed for readings from a
device that was inherently random. If the data is
tampered with, it will cease to be random at all - Three registers that tallied a particular pattern
at three four-bit ranges from the output - Each bit of equivalent significance, of these
registers, was compared every clock cycle. - A total of eight bits, when more than four were
not equal, an error was flagged.
33Challenges/Improvements
- Problems with loading the TDC
- Uses amp-driven logic, instead of Voltage (the
FPGA does not acknowledge this) - Output of the FPGA is not stable (loading must be
done slowly) - Programming size constraints
- 4096 bins, each its own module, did not fit into
the FPGAs memory
34Recommendations
- It is recommended that the TDC be made compatible
with TTL logic (it uses current signals).
Additional circuit design which is need for all
the data bus sign (28 bits) - If one can find a more reliable alternative to an
FPGA, it would likely be in their best interest - with Larger built-in memory. Such as the Virtex
series FPGAs from Xilinx
35Thank You
- Professor Kwiat (The one who came up with this)
- Evan Jeffrey (Professor Kwiats grad. student)
- Bob Schoonover (Our TA)
- Prof. Janak Patel (for keeping great ECE 385
lecture notes)
36Questions?