In today’s rapidly evolving digital landscape, the demand for high-quality entropy sources is more critical than ever. The Quantum Entropy Working Group has recently unveiled its QRNG Open API for Quantum Entropy-as-a-Service (EaaS). This pioneering initiative is set to become an industry benchmark for distributing quantum entropy, providing enhanced security and randomness for a wide array of applications.
Led by Palo Alto Networks and supported by innovative QRNG providers, the initiative has greatly benefited from Quside’s expertise since its inception. As a leading innovator in quantum technologies, Quside has fully embraced QRNG Open API, and now offers the API through our Managed Entropy Core service , available via Equinix Fabric. This enables customers to thoroughly integrate quantum entropy capabilities into their systems using a standardized and straightforward API.
Establishing an Entropy Connection from your application is remarkably simple using the Quside’s Managed Entropy Core and the QRNG Open API —it can be done through a standard REST HTTP API call.
The Quantum Random Number Generator (QRNG) Open API provides a unified mechanism to:

For a comprehensive understanding of the API specifications and the various mechanisms involved, please visit the QRNG Open API GitHub Repository.
Once you are connected to Quside’s Managed Entropy Core through Equinix Fabric™, you can acces the API and also leverage the optional extensions implemented by Quside—follow the following examples using the cURL and python tools:
This call provides information on the capabilities offered by the service
curl "https://entropycore.int.quside.com/capabilities"
The response in JSON format gives information on the possible options to retrieve entropy and the information that will be provided as a response to the healthtest primitive
{ "entropy": { "entropy_types": [ "processed", "raw" ], "extensions": [ { "Quside QRNG Entropy Quality Extension": [ "Q-Factor", "H-min", "QES-ID", "timestamp" ] } ], "max_block_count": 16, "max_block_size": 524288, "min_block_count": 1, "min_block_size": 32 }, "healthtest": { "extensions": [ { "Quside QRNG Entropy Test Extension": [ "Q-Factor", "H-min", "QES-ID", "test-detail" ] } ], "test_threshold": [ { "error": 0.93, "good": 0.98, "test_type": "NIST SP 800-22 Rev. 1 - Frequency Monobit", "warning": 0.96 } ] } }
This response includes the information on the optional extension implemented by Quside.
This method returns entropy bytes from the service that can be used for cryptographic applications.
curl "https://entropycore.int.quside.com/entropy" -X POST -d '{"block_size": 32, "block_count": 4, "entropy_type": "processed"}' -H "Content-Type: application/json"
Where you specify the desired format (“processed” in the example), the block size in bytes (32), and the block count (4). The response in JSON format is shown below, including the Quside extensions that inform on the quality of the entropy bytes obtained (Q-factor) and unpredictability measured of the entropy source (Hmin) among other data as the Quantum Entropy Source ID that provided the entropy bytes and the timestamp in ISO8601 format:
{ "entropy": [ "osiEy9lfAwKncEclR1kr+GEKizg4l/iltCVZIrSTxOg=", "GpF/1tSTCFZXyyZY5Cw8bt8IyCIN79gSnLLSIrkgVmM=", "xwUg5w1eGRctRA05Glug9IFrfAZ6i1ivtJgRdHvHI5A=", "jGJA0FA14wIzJtncNM0sDHmgf14bez8dOujcZTU5IXw=" ], "extensions": [ { "H-min": 0.98, "Q-factor": 0.99786, "QES-ID": "df353697", "timestamp": "2024-11-12T17:08:54.175727Z" } ] }
The healthtest method returns the results of the Statistical Test run against the QRNG processed random bytes and when the last tests were executed.
curl "https://entropycore.int.quside.com/healthtest"
The response, in addition to the Statistical test result, includes the Quside extension providing information on the quality of the entropy bytes generated, the unpredictability measure of the entropy source, and the detail of the tests:
{ "extensions": [ { "H-min": 0.98, "Q-factor": 0.99613, "QES-ID": "df353697", "test-detail": "------------------------------------------------------------------------------ RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF PASSING SEQUENCES ------------------------------------------------------------------------------ generator is </tmp/random.bin> ------------------------------------------------------------------------------ C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 P-VALUE PROPORTION STATISTICAL TEST ------------------------------------------------------------------------------ 92 109 85 114 95 94 112 115 81 103 0.134944 994/1000 Frequency - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The minimum pass rate for each statistical test with the exception of the random excursion (variant) test is approximately = 980 for a sample size = 1000 binary sequences. For further guidelines construct a probability table using the MAPLE program provided in the addendum section of the documentation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " } ], "test_result": [ { "test_result": 0.994, "test_type": "NIST SP 800-22 Rev. 1 - Frequency Monobit", "time_stamp": "2024-11-12 09:31:03.837084" } ] }
Another easy and useful usage example would be using Python as the programming language. If your application is Python-based, you can establish an Entropy Connection to Quside’s Entropy Core through Equinix Fabric™ by simply using the requests and JSON packages.
import requests import json # Define the base URL base_url = "https://entropycore.int.quside.com" # Function to perform a GET request def get_request(endpoint): url = f"{base_url}/{endpoint}" response = requests.get(url) return response.json() # Function to perform a POST request def post_request(endpoint, data): url = f"{base_url}/{endpoint}" headers = {'Content-Type': 'application/json'} response = requests.post(url, data=json.dumps(data), headers=headers) return response.json() def print_response(response): print(json.dumps(response, indent=2)) # Call 1: POST request to /entropy with JSON data data2 = {"block_size": 32, "block_count": 1, "entropy_type": "processed"} response1 = post_request("entropy", data2) print("\nPOST request to /entropy\n") print_response(response1) # Call 2: GET request to /capabilities print("\nGET request to /capabilities\n") response2 = get_request("capabilities") print_response(response2) # Call 3: GET request to /healthtest print("\nGET request to /healthtest\n") response3 = get_request("healthtest") print_response(response3)
You can find the complete Entropy Connection User Guide, including both Open API and Quside’s proprietary implementations, at https://quside.com/wp-content/uploads/2024/02/Entropy-Connection-User-Guide.pdf