The generation of random binary numbers for cryptographic use is often addressed using pseudorandom number-generating functions in compilers and specialized cryptographic packages. Using IBM’s Qiskit reset functionality, we were able to implement a straight-forward in-line Python function that returns a list of quantum-generated random numbers, by creating and executing the circuit on IBM quantum systems. We successfully created a list of 1000 1024-bit binary random numbers as well as a list of 40,000 25-bit binary random numbers for randomness testing, using the NIST Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications. The quantum-generated random data we tested showed very strong randomness, according to the NIST suite. Previously, IBM’s quantum implementation required a single qubit for each bit of data generated in a circuit, making the generation of large random numbers impractical. IBM’s addition of the reset instruction eliminates this restriction and allows for the creation of functions that can generate a larger quantity of data-bit output, using only a small number of qubits.
Julie Germain
Thursday Block I