The Randomness Beacons project at NIST intends to promote the availability of trusted public randomness as a public utility. Such utility can be used for example to promote auditability and transparency of services that depend on randomized processes.
The project is spearheaded by the Cryptographic Technology Group in the Computer Security Division of the Information Technology Laboratory (ITL), and has counted with the participation of many collaborators over the years (see historical note below).
The project has four main tracks:
The project is also interested in assisting complementary initiatives of research and development about trusted randomness, e.g., about quantum random-number generators and certifiable randomness.
WARNING: Do NOT use Beacon generated values as cryptographic secret keys!
Track A: promote a reference for randomness beacons
The current reference (2.0) for randomness beacons is the NIST Internal Report (NISTIR 8213) “A Reference for Randomness Beacons: Format and Protocol Version 2” (draft).
The publication is available free of charge from https://doi.org/10.6028/NIST.IR.8213-draft.
The period of public comments is from May 06, 2019, to August 05, 2019: firstname.lastname@example.org.
We expect this reference document to promote the development of technology related to uses of public randomness for privacy-preserving auditability applications of societal benefit.
Some features of a beacon, as defined by the new reference:
- Periodically pulsates randomness (e.g., once a minute).
- Each pulse has a fresh 512-bit random string, cryptographically combining entropy from at least two separate random number generators (RNGs).
- Each pulse is indexed, time-stamped and signed.
- Any past pulse is publicly accessible.
- The sequence of pulses forms a hash chain.
- Far-apart pulses can be efficiently verified via a short chain (skiplist).
- A pre-commitment of local randomness enables securely combining randomness from multiple beacons.
Track B: maintain a NIST Beacon implementation
It is challenging to implement a secure and reliable randomness beacon matching the devised reference. Ensuring a reliable production of timely randomness requires understanding the functioning of the Beacon engine and its interface with associated machinery. Enabling the retrieval of any past pulse and associated information requires implementing and maintaining a high-availability public online interface.
The NIST Randomness Beacon is available online at https://beacon.nist.gov/home
The following image is a high-level depiction of some components of the Beacon service. The NIST Beacon integrates a PML-developed quantum-RNG (identified in the figure as #3) based on photon detection.
A Beacon implementation does not require knowing who are the actual users of the published randomness. The Beacon service only interacts with users via the public query-reply web-interface.
The Beacon engine has limited interactions accepting input from the outside:
- it interacts with a time server for the purpose of clock synchronization;
- it may use publicly verifiable "external values" for proving that some pulses could have not been pre-computed before certain time-marks.
Track C: promote the deployment of Beacons by multiple independent organizations
List of Beacons in the process of implementing the new reference for randomness Beacons.
We would like others to join … and we expect this list to continue growing.
Track D: promote usages of beacon-issued randomness
We plan to develop guidance about the usage of Beacon-issued randomness. A few examples are given in the reference for randomness beacons.
Example applications of Beacon randomness:
Select test and control groups for clinical trials.
Select random government officials for financial audits.
Assign court cases to random judges.
Sample random lots for quality-measuring procedures.
Provide entropy to digital lotteries.
Some generic goals:
External links of interest