Welcome to the Dora Hacks Quantum Random Number Generator Challenge!
Welcome to the Dora Hacks challenge focused on Quantum Random Number Generation (QRNG) using IBM QPUs! Our challenge track is designed to introduce your team to the practical application of generating and analyzing quantum random numbers as well as classifying quantum noise reflected in QRNG data. Random number generation is an essential component in creating high entropy encryption keys, and QRNGs are the truest source of randomness in nature. True random number generation will become more vital as hacking algorithms and AI continue to push the boundaries of cryptography. By leveraging the inherent unpredictability of quantum mechanics, QRNGs offer a level of randomness that classical random number generators cannot match.
Resources to Get Started
Introductions to Quantum Random Number Generation and How Quantum Computing Can Be Utilized
- Introduction to Quantum Random Number Generation (QRNG)
- Video demoing IBM Qiskit implementation of QRNG
Dora Hacks Work and Resources for Getting Started
Realization of Bell’s Theorem Certified Quantum Random Number Generation Using Cloud Quantum Computers This research paper details steps for generating DI-QRNG (device-independent) data using the Bell Inequality quantum principle and the “CHSH game” circuit. For the scope of this hackathon, we will be generating QRNG with qubits in superposition for ease of use as well as the ability to characterize device-specific quantum noise and analyze its implications for our data. However, the research post and associated GitHub repo still have lots of useful information regarding quantum data processing, randomness extraction, and noise classification that will be useful for stages 3, 4, and 5 of this challenge.
The Associated Repo Containing Notebook and Python Implementations of the Above Research Article
Challenge Overview
The hackathon is structured into five progressive stages, each building on the previous one to deepen your understanding and skills in quantum computing, QRNG, and a sprinkle of machine learning. Whether you are a novice or have experience with quantum computing, this challenge is designed to provide valuable learning opportunities at every level. Participants can submit their work for any number of stages they complete within the allotted time. The top submissions will also have the opportunity to submit their BUIDL to the NISQ quantum grant for additional funding! We will also be offering three internship spots to the winning teams.
Stages of the Challenge
Stage 1: Implementing a QRNG on IBM QPUs
Objective:
Implement a quantum random number generator on an IBM quantum machine or simulator (if needed) and generate QRNG data.
Description:
Use IBM Qiskit Simulators to create a circuit that measures qubits in equal superposition to generate quantum random numbers. This stage will help you understand the basics of quantum circuits and qubit measurement. Once this is relatively straightforward for you, try and generate QRNG data using actual IBM quantum computers (you will need to create a free account and use your API key) and analyze/visualize your results.
Resources:
- Basic QRNG superposition data generation tutorial using Qiskit sims
- Basic Qiskit quantum circuit construction tutorial
- Running circuits on IBM machines using Qiskit
Stage 2: Achieving High Accuracy with Classification Models
Objective:
Use the provided model to classify QRNG data and aim for high accuracy.
Description:
Train a classifier model to classify whether the data is quantum or classical random numbers, with a target accuracy of over 60% for input lengths of 100-500 bit QRNG data. Attached in the resources section is skeleton code for training and testing a gradient boosting ML model with your dataset, as well as an example dataset you can use to classify quantum vs non-quantum data. Optional: Enhance the accuracy by building/optimizing your own models and exploring various machine learning hypertuning techniques. Optional: Attempt to classify with other variables, such as quantum simulator vs actual quantum computer data, or classify by actual IBM quantum computers. You will have to create your own training data sets.
Resources:
- Skeleton code for gradient boosting model to classify QRNG
- Sample training data (QRNG vs PRNG) to use for classification
Stage 3: Characterizing Noise and Fidelity
Objective:
Analyze the noise and fidelity of the quantum machine used for QRNG.
Description:
Characterize the noise and fidelity of the IBM QPU to understand how these factors impact the quality of the generated random numbers. This stage involves data analysis and understanding the intricacies of quantum hardware performance. For an easier and intermediate step, analyze the noise patterns of IBM/Qiskit quantum simulators. Good data visualizations are a plus. You can find official device-specific quantum noise related data such as decoherence, error rates, etc both on the official IBM quantum platform and through Qiskit.
Resources:
- Detailed information on specific IBM quantum computers
- Includes different types of error rates on individual qubits and quantum gates, as well as other device-specific measurements
Stage 4: Pre-processing and Post-processing for High Entropy
Objective:
Clean the QRNG data you generated on IBM’s quantum computers to generate high entropy, classically distributed quantum random number data.
Description:
Deploy pre-processing and post-processing techniques to enhance the entropy of the generated quantum random numbers. This stage focuses on data cleaning and improving the randomness quality of the QRNG data. Run your processed QRNG data through tests of randomness such as the NIST test suite for statistical randomness and present/analyze your results.
Resources:
- Randomness extraction hashing of raw input using Toeplitz matrix
- How the Dora Hacks team processes raw QRNG data to generate statistically distributed random number output: There are functions to do this in the SciPy library
- NIST Statistical Test Suite for measuring randomness
Stage 5: Measuring Entropy and Real-world Implementation
Objective:
Measure the entropy of QRNG data and compare it against PRNG and TRNG data. Implement QRNG in a real-world example.
Description:
Evaluate the entropy of your quantum random numbers and compare them with classical pseudorandom number generators (PRNG) and true random number generators (TRNG). Additionally, implement the QRNG data in a real-world application, such as an encryption protocol, to demonstrate its practical utility. Optional: Implement your pre and post-processing methods and/or your noise/fidelity characterization frameworks into the classification model you developed in stage 2 to increase classification accuracy, especially for classifying QRNG vs PRNG data and/or classifying by specific quantum device. (HINT: quantum noise and fidelity will vary between quantum computers, and PRNG data will obviously not have any quantum noise reflected in the data).
Submission Guidelines
- Participants can submit their work for any number of stages they complete.
- The top submissions will be eligible to submit their BUIDL to the NISQ quantum grant for additional funding.
- Detailed documentation and code for each stage are required for submission.
Conclusion
This hackathon is an exciting opportunity to dive into the world of quantum computing and make meaningful contributions to the field of noise-adjusted quantum random number generation. We look forward to seeing your innovative solutions and groundbreaking research. Good luck!
Judging Criteria
Judging Criteria for the Dora Hacks Quantum Random Number Generator Challenge
Innovation and Creativity: 20%
- Evaluation of the uniqueness and originality of the solutions.
Technical Implementation: 20%
- Quality and correctness of quantum circuits, machine learning models, and noise/fidelity analysis.
Accuracy and Performance: 20%
- Ability to achieve high accuracy in classification tasks and effectiveness in enhancing entropy.
Integration and Practicality: 15%
- Practical utility of QRNG data in real-world applications and alignment with real-world constraints.
Documentation and Presentation: 15%
- Clarity, comprehensiveness, and organization of documentation and effectiveness of final presentation.
Completeness and Progress: 5%
- Progress through multiple stages and completeness of each stage.
Team Collaboration and Learning: 5%
- Evidence of effective teamwork, collaboration, and learning throughout the hackathon.