Quantizr / QRNG

Algorithms and test results for an optical quantum random number generator
MIT License
0 stars 0 forks source link

Curious about your creation of the QRNG #1

Open ChubyCat opened 2 years ago

ChubyCat commented 2 years ago

I am sorry that I am writing this as an issue, I am new to git hub. I found your comments and posts on the Spooky Manufacturing page about his QRNG, and I am wondering how your design differed from his. I understand that you used a LED as a single photon detector, but were there any more differences? Thank you.

Quantizr commented 2 years ago

Rereading my comments on Spooky Manufacturing's QRNG I'm kinda cringing at my lack of coherence... It's all just a mess of whatever thoughts I was thinking at the time...

Anyway, to answer your question, my design was based around the design and algorithms provided by the so called "Randy" device in this paper, https://journals.aps.org/prresearch/pdf/10.1103/PhysRevResearch.2.023287.

The paper describes has a few key differences from my design, notably the use of an actual lab-grade SPAD rather than LEDs and FPGAs instead of a simple Arduino microcontroller. I used three algorithms in my design, but only the so called "Difference" algorithm passed all the tests for randomness (NIST and ENT test suites), I am still not sure why that is.

As for the major difference between my design and the one by Spooky Manufacturing, my design actually detects individual photons (although with extremely low quantum efficiency), allowing for quantum random number generation. (It's the same basic design used by many papers, including the one linked earlier).

Spooky's design does not detect individual photons, but claims to be able to detect the difference in number of photons arriving on each of the two photoresistors. As I stated in the comment on the Spooky page, the measurement error on photoresistors is greater than the difference in photons arriving to to each photoresistor, and even if the photoresistors were able to accurately output a voltage corresponding to incoming photons, an Arduino would not be able to accurately measure that voltage with its ADC (which is only 10 bit).

Info about how LED's can be used as SPADs can be found here https://pdfs.semanticscholar.org/ccfe/7e134c56b48c29b06e3e0d2f9a7ce596390e.pdf (My design use the passively quenched approach, the only real advantage of the actively quenched design, in the context of RNGs, is faster bit generation)

Hopefully this all made sense, if you have any other questions feel free to ask. I'm also interested in knowing why you're curious about QRNGs, cause outside of cool science fair projects, I haven't figured out a good reason for why people would be interested in these, especially as the bitrate of DIY versions isn't really useful for much.