current state of iqoqi’s quantum random number generator breakfast-talk 22.06.2010 alex treiber...

14
Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber [email protected]

Upload: johnathan-cook

Post on 03-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Current State of IQOQI’s Quantum Random Number Generator

Breakfast-Talk 22.06.2010

Alex Treiber

[email protected]

Page 2: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

IQOQI’s QRNGs

Based on Thomas Jennewein‘s QRNGT. Jennewein, U. Achleitner, G. Weihs, H.Weinfurter, and A. Zeilinger, A Fast and Compact Quantum Random Number Generator, Review of Scientific Instruments 71, 1675–1680 (2000).

Optics: Blue LED + BS + PMT

ECL comparators and Flip-flop

FPGA for sampling, evaluation and USB

BS

S

RQLED

FPGA(Xilinx

Spartan 3)CLK

USB

Optics Electronics

OUT

ECL

PMT

Page 3: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Duties of the FPGA

Sampling (10kHz to 100MHz, user defined)

Symmetry evaluation

Randomness evaluation (runs-test) “Valid” LED on front panel

Two control loops (PWM)

- optimisation of symmetry (high entropy)

- LED intensity

Q DQ

CLKCLK

USB

OUT

SymmetryEvaluation

UTMI

FPGA

BS

S

RLED

ECL

RandomnessEvaluation

Intensity Valid LED

Page 4: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Sampling

Det 1=S

Det 0=R

Q

CLK

OUT 1 0 0 1 0 1 0

FPGA samples the Flipflop output with a user-defined rate (up to 100MHz)

Typical timing:

Page 5: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Really random?

C. Calude, M. Dinneen, M. Dumitrescu, K, Svozil, How Random Is Quantum Randomness? An Experimental Approach, arXiv:0912.4379v1

Tested RNGs: IQOQI QRNG, idQuantique Quantis, Mathematica, Maple

Five different tests (entropy, compression, book-stack, Solvay-Strassen, random-walk), each 10 times

Conclusion[…] overall, quantum random generators appear to be different from pseudo-random generators; with the Vienna strings emerging as the clear outlier (in all tests with various degrees of confidence) […]

Page 6: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Test suites

Five tests enough?

No Use a standard test suite

DieHard (Robert Marsaglia, 1995)

Statistical Test Suite (NIST, 2001)

DieHarder (Robert G. Brown)

- contains DieHard, STS and others

- 107 tests, each 100 times

- last version: Oct. 2009

- requires at least 1 GB files

Page 7: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

#==================================================================## dieharder version 3.29.4beta Copyright 2003 Robert G. Brown ##==================================================================# rng_name | filename |rands/second| file_input_raw| Random021.dat| 3.25e+06 |#==================================================================# test_name |ntup| tsamples |psamples| p-value |Assessment#==================================================================# diehard_birthdays| 0| 100| 100|0.08247890| PASSED diehard_operm5| 5| 1000000| 100|0.07620363| PASSED diehard_rank_32x32| 0| 40000| 100|0.57898856| PASSED diehard_rank_6x8| 0| 100000| 100|0.00000000| FAILED diehard_bitstream| 0| 2097152| 100|0.00000000| FAILED diehard_opso| 0| 2097152| 100|0.00000000| FAILED diehard_oqso| 0| 2097152| 100|0.00000000| FAILED diehard_dna| 0| 2097152| 100|0.00000000| FAILED diehard_count_1s_str| 0| 256000| 100|0.00000000| FAILED diehard_count_1s_byt| 0| 256000| 100|0.00000000| FAILED diehard_parking_lot| 0| 12000| 100|0.00589179| PASSED diehard_2dsphere| 2| 8000| 100|0.82103324| PASSED diehard_3dsphere| 3| 4000| 100|0.38416615| PASSED diehard_squeeze| 0| 100000| 100|0.00000000| FAILED diehard_sums| 0| 100| 100|0.03964794| PASSED diehard_runs| 0| 100000| 100|0.02339595| PASSED diehard_runs| 0| 100000| 100|0.51776461| PASSED diehard_craps| 0| 200000| 100|0.00000000| FAILED diehard_craps| 0| 200000| 100|0.00000000| FAILED marsaglia_tsang_gcd| 0| 10000000| 100|0.00000000| FAILED marsaglia_tsang_gcd| 0| 10000000| 100|0.00000000| FAILED sts_monobit| 1| 100000| 100|0.01116767| PASSED sts_runs| 2| 100000| 100|0.00000000| FAILED sts_serial| 1| 100000| 100|0.49957123| PASSED sts_serial| 2| 100000| 100|0.00000000| FAILED sts_serial| 3| 100000| 100|0.00000000| FAILED sts_serial| 3| 100000| 100|0.00000000| FAILED sts_serial| 4| 100000| 100|0.00000000| FAILED sts_serial| 4| 100000| 100|0.00000000| FAILED sts_serial| 5| 100000| 100|0.00000000| FAILED sts_serial| 5| 100000| 100|0.00000000| FAILED sts_serial| 6| 100000| 100|0.00000000| FAILED sts_serial| 6| 100000| 100|0.00000000| FAILED sts_serial| 7| 100000| 100|0.00000000| FAILED sts_serial| 7| 100000| 100|0.00000000| FAILED sts_serial| 8| 100000| 100|0.00000000| FAILED sts_serial| 8| 100000| 100|0.00000000| FAILED sts_serial| 9| 100000| 100|0.00000000| FAILED sts_serial| 9| 100000| 100|0.00000001| FAILED sts_serial| 10| 100000| 100|0.00000000| FAILED sts_serial| 10| 100000| 100|0.00000178| FAILED

sts_serial| 11| 100000| 100|0.00000000| FAILED sts_serial| 11| 100000| 100|0.00554045| PASSED sts_serial| 12| 100000| 100|0.00000000| FAILED sts_serial| 12| 100000| 100|0.00342450| WEAK sts_serial| 13| 100000| 100|0.00000000| FAILED sts_serial| 13| 100000| 100|0.01912665| PASSED

sts_serial| 14| 100000| 100|0.00000000| FAILED

sts_serial| 14| 100000| 100|0.45969512| PASSED sts_serial| 15| 100000| 100|0.00000000| FAILED sts_serial| 15| 100000| 100|0.78370019| PASSED sts_serial| 16| 100000| 100|0.00000000| FAILED sts_serial| 16| 100000| 100|0.03630893| PASSED rgb_bitdist| 1| 100000| 100|0.00000000| FAILED rgb_bitdist| 2| 100000| 100|0.00000000| FAILED rgb_bitdist| 3| 100000| 100|0.00000000| FAILED rgb_bitdist| 4| 100000| 100|0.00000000| FAILED rgb_bitdist| 5| 100000| 100|0.00000000| FAILED rgb_bitdist| 6| 100000| 100|0.00000000| FAILED rgb_bitdist| 7| 100000| 100|0.00000000| FAILED rgb_bitdist| 8| 100000| 100|0.00000000| FAILED rgb_bitdist| 9| 100000| 100|0.00000000| FAILED rgb_bitdist| 10| 100000| 100|0.00000000| FAILED rgb_bitdist| 11| 100000| 100|0.00000000| FAILED rgb_bitdist| 12| 100000| 100|0.00000000| FAILED rgb_minimum_distance| 2| 10000| 1000|0.01494450| PASSED rgb_minimum_distance| 3| 10000| 1000|0.00154972| WEAK rgb_minimum_distance| 4| 10000| 1000|0.60482393| PASSED rgb_minimum_distance| 5| 10000| 1000|0.70511628| PASSED rgb_permutations| 2| 100000| 100|0.34235760| PASSED rgb_permutations| 3| 100000| 100|0.86890546| PASSED rgb_permutations| 4| 100000| 100|0.21494509| PASSED rgb_permutations| 5| 100000| 100|0.59106760| PASSED rgb_lagged_sum| 0| 1000000| 100|0.00000335| FAILED rgb_lagged_sum| 1| 1000000| 100|0.00041163| FAILED rgb_lagged_sum| 2| 1000000| 100|0.00989398| PASSED rgb_lagged_sum| 3| 1000000| 100|0.00259564| WEAK rgb_lagged_sum| 4| 1000000| 100|0.06399568| PASSED rgb_lagged_sum| 5| 1000000| 100|0.00115085| WEAK rgb_lagged_sum| 6| 1000000| 100|0.48988508| PASSED rgb_lagged_sum| 7| 1000000| 100|0.02460248| PASSED rgb_lagged_sum| 8| 1000000| 100|0.00523681| PASSED rgb_lagged_sum| 9| 1000000| 100|0.00007564| FAILED rgb_lagged_sum| 10| 1000000| 100|0.04677801| PASSED rgb_lagged_sum| 11| 1000000| 100|0.00016413| FAILED rgb_lagged_sum| 12| 1000000| 100|0.06228074| PASSED rgb_lagged_sum| 13| 1000000| 100|0.01848025| PASSED rgb_lagged_sum| 14| 1000000| 100|0.02429956| PASSED rgb_lagged_sum| 15| 1000000| 100|0.02444103| PASSED

DieHarder Results I

Page 8: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

What was wrong?

ECL comparators were floating

Optical part not shielded (too many photons from outside)

Default parameter improper

Control loops not reliable

Onboard randomness test not meaningful

Good news: we could (almost) fix all problems

Page 9: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

#========================================================================## dieharder version 3.29.4beta Copyright 2003 Robert G. Brown#========================================================================# rng_name | filename |rands/second| file_input_raw| q1_5MHz_1.dat| 1.76e+07 |#========================================================================# test_name |ntup| tsamples |psamples| p-value |Assessment#========================================================================# diehard_birthdays| 0| 100| 100|0.42792545| PASSED diehard_operm5| 5| 1000000| 100|0.03697549| PASSED diehard_rank_32x32| 0| 40000| 100|0.46441942| PASSED diehard_rank_6x8| 0| 100000| 100|0.33915293| PASSED diehard_bitstream| 0| 2097152| 100|0.81081015| PASSED diehard_opso| 0| 2097152| 100|0.30000974| PASSED diehard_oqso| 0| 2097152| 100|0.31726000| PASSED diehard_dna| 0| 2097152| 100|0.27335546| PASSEDdiehard_count_1s_str| 0| 256000| 100|0.37126012| PASSEDdiehard_count_1s_byt| 0| 256000| 100|0.40185116| PASSED diehard_parking_lot| 0| 12000| 100|0.34627402| PASSED diehard_2dsphere| 2| 8000| 100|0.73612316| PASSED diehard_3dsphere| 3| 4000| 100|0.95666919| PASSED diehard_squeeze| 0| 100000| 100|0.54262436| PASSED diehard_sums| 0| 100| 100|0.00921142| PASSED diehard_runs| 0| 100000| 100|0.81530352| PASSED diehard_runs| 0| 100000| 100|0.91126300| PASSED diehard_craps| 0| 200000| 100|0.16119635| PASSED diehard_craps| 0| 200000| 100|0.96676853| PASSED marsaglia_tsang_gcd| 0| 10000000| 100|0.23946275| PASSED marsaglia_tsang_gcd| 0| 10000000| 100|0.04561348| PASSED sts_monobit| 1| 100000| 100|0.30930831| PASSED sts_runs| 2| 100000| 100|0.00583346| PASSED sts_serial| 1| 100000| 100|0.07885875| PASSED sts_serial| 2| 100000| 100|0.00769865| PASSED sts_serial| 3| 100000| 100|0.60870308| PASSED sts_serial| 3| 100000| 100|0.62207017| PASSED sts_serial| 4| 100000| 100|0.04292822| PASSED sts_serial| 4| 100000| 100|0.10920534| PASSED sts_serial| 5| 100000| 100|0.56162316| PASSED sts_serial| 5| 100000| 100|0.21360406| PASSED sts_serial| 6| 100000| 100|0.30747938| PASSED sts_serial| 6| 100000| 100|0.37477593| PASSED sts_serial| 7| 100000| 100|0.87972507| PASSED sts_serial| 7| 100000| 100|0.22326564| PASSED sts_serial| 8| 100000| 100|0.42296250| PASSED sts_serial| 8| 100000| 100|0.01008196| PASSED sts_serial| 9| 100000| 100|0.22975862| PASSED sts_serial| 9| 100000| 100|0.54589223| PASSED sts_serial| 10| 100000| 100|0.20396017| PASSED sts_serial| 10| 100000| 100|0.84905794| PASSED

sts_serial| 11| 100000| 100|0.11783167| PASSED sts_serial| 11| 100000| 100|0.81136758| PASSED sts_serial| 12| 100000| 100|0.25171972| PASSED

sts_serial| 12| 100000| 100|0.95893614| PASSED

sts_serial| 13| 100000| 100|0.04254038| PASSED sts_serial| 14| 100000| 100|0.41334169| PASSED sts_serial| 14| 100000| 100|0.43896175| PASSED sts_serial| 15| 100000| 100|0.65951829| PASSED sts_serial| 15| 100000| 100|0.79833150| PASSED sts_serial| 16| 100000| 100|0.97863323| PASSED sts_serial| 16| 100000| 100|0.85960638| PASSED rgb_bitdist| 1| 100000| 100|0.36194616| PASSED rgb_bitdist| 2| 100000| 100|0.00306661| WEAK rgb_bitdist| 3| 100000| 100|0.08020477| PASSED rgb_bitdist| 4| 100000| 100|0.26389978| PASSED rgb_bitdist| 5| 100000| 100|0.76031260| PASSED rgb_bitdist| 6| 100000| 100|0.78364264| PASSED rgb_bitdist| 7| 100000| 100|0.65092735| PASSED rgb_bitdist| 8| 100000| 100|0.62388358| PASSED rgb_bitdist| 9| 100000| 100|0.31256060| PASSED rgb_bitdist| 10| 100000| 100|0.99742050| WEAK rgb_bitdist| 11| 100000| 100|0.15845754| PASSED rgb_bitdist| 12| 100000| 100|0.83499628| PASSEDrgb_minimum_distance| 2| 10000| 1000|0.83391342| PASSEDrgb_minimum_distance| 3| 10000| 1000|0.93666636| PASSEDrgb_minimum_distance| 4| 10000| 1000|0.96425293| PASSEDrgb_minimum_distance| 5| 10000| 1000|0.59957796| PASSED rgb_permutations| 2| 100000| 100|0.71516737| PASSED rgb_permutations| 3| 100000| 100|0.52658846| PASSED rgb_permutations| 4| 100000| 100|0.88877864| PASSED rgb_permutations| 5| 100000| 100|0.12378512| PASSED rgb_lagged_sum| 0| 1000000| 100|0.19291263| PASSED rgb_lagged_sum| 1| 1000000| 100|0.34584867| PASSED rgb_lagged_sum| 2| 1000000| 100|0.11270643| PASSED rgb_lagged_sum| 3| 1000000| 100|0.30984206| PASSED rgb_lagged_sum| 4| 1000000| 100|0.19750075| PASSED rgb_lagged_sum| 5| 1000000| 100|0.50104956| PASSED rgb_lagged_sum| 6| 1000000| 100|0.41981165| PASSED rgb_lagged_sum| 7| 1000000| 100|0.07927663| PASSED rgb_lagged_sum| 8| 1000000| 100|0.27889421| PASSED rgb_lagged_sum| 9| 1000000| 100|0.83286461| PASSED rgb_lagged_sum| 10| 1000000| 100|0.44481093| PASSED rgb_lagged_sum| 11| 1000000| 100|0.23857647| PASSED rgb_lagged_sum| 12| 1000000| 100|0.15082577| PASSED rgb_lagged_sum| 13| 1000000| 100|0.07655460| PASSED rgb_lagged_sum| 14| 1000000| 100|0.72278013| PASSED rgb_lagged_sum| 15| 1000000| 100|0.00607258| PASSED rgb_lagged_sum| 16| 1000000| 100|0.77962966| PASSED rgb_lagged_sum| 17| 1000000| 100|0.78183082| PASSED

DieHarder Results II

Page 10: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Comparison of some RNGs

Typical DieHarder results

C++ rand() 3x FAIL

Linux /dev/random 6x FAIL

AES OFB 0x FAIL

QRNG, 1MHz 50x FAIL

QRNG after modifications 1x FAIL

QRNG can produce cryptographic random numbers now

(without any post-processing)

Page 11: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Want to use the RNG?

Pay attention to:

the QRNG is not a plug & play device

use the TRNG software for Windows

don’t trust the “Valid” LED on front panel

read the fucking manual (English version coming soon)

stick to the manual

Page 12: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

Thank you for your attention

Page 13: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

In Thomas Scheidl’s PhD thesis

T. Scheidl, A fundamental test and an application of quantum entanglement, PhD thesis, University of Vienna, 2009

Page 14: Current State of IQOQI’s Quantum Random Number Generator Breakfast-Talk 22.06.2010 Alex Treiber alexander.treiber@univie.ac.at

What is inside?

Optik

Elektronik

FPGA

Netzteil