SoftwareX (Sep 2024)
Easy to integrate API for accessing true random numbers generated with IDQ’s Quantis Appliance
Abstract
Generating quality random numbers is essential for many computer applications, from preserving data privacy through cryptography and federated learning to artificial intelligence and machine learning. The role of random numbers in such applications is to add the necessary entropy to produce secure keys that protect data, to select data for training and testing machine learning models, or to improve the efficiency of solution space searches in evolutionary algorithms and heuristic methods. The available software methods can only generate pseudo-random numbers, while conventional hardware methods extract randomness from the environment, and these physical processes possess specific self-similar patterns. In contrast, quantum random number generators (QRNGs) produce truly random numbers by exploiting the randomness of quantum state measurement. Software platforms that provide random numbers over the cloud, rendered with network-attached quantum random number generator devices, exist; however, they were not developed as a native C language solution for embedded applications. Therefore, we introduce libqrng, written in C, which offers access to IDQ’s Quantis Appliance high-quality random numbers through an easy-to-integrate API for embedded and distributed computing applications that requires randomness and an interface for using the library from different programming languages (e.g., Python).