Operation

The SwiftRNG Zn integrates two random noise sources based on analog electronic circuits that generate random electrical signals from reverse-biased Zener diodes using the Zener breakdown effect, which is caused by quantum tunneling. Zener breakdown is observed in Zener diodes with a breakdown voltage (Vz) below 5 V, or between 5 V and 7 V.

The electrical noise generated by each source is independently amplified and converted into digital values as bytes. The random bytes produced by both noise sources are combined and processed internally with a Linear Corrector using a 0.5 compression rate, a technique proposed by P. Lacharme (“Post-Processing Functions for a Biased Physical Random Number Generator”, FSE 2008, LNCS vol. 5086, pp. 334-342, Springer-Verlag, 2008).

The SwiftRNG Zn implements an embedded health check test (HCT) that continuously monitors the quality of the random noise sources immediately after the electrical noise is digitized and before any processing takes place. The embedded monitoring logic notifies the host computer software if it detects an unexpected deviation from normal operation or a complete malfunction of either random source. Internal diagnostics can also be triggered through the device API or the software API.

In addition, the software kit continuously runs the Repetition Count and Adaptive Proportion tests (NIST SP 800-90B) on the host computer to verify the quality of the random bytes retrieved over USB.

The device is powered entirely by the USB bus, requires no additional power source, and is protected by an overload protection circuit. All SwiftRNG Zn devices are equipped with ESD protection and EMI filtering circuits. After the device is plugged into a USB host, it is ready to accept commands in less than a second (this time is used to run start-up tests and to wait for USB driver readiness).

Supported systems

  • Linux (x86, x64, ARM)
  • FreeBSD 12/13/14
  • macOS (Intel and Apple Silicon)
  • Windows 10/11 (64-bit) and Windows Server 2016/2019 (64-bit)

Fabrication and testing

All SwiftRNG Zn devices are designed and assembled in the United States. After each device is assembled, both random noise sources are individually inspected and verified using an oscilloscope and a spectrum analyzer to confirm that the electrical noise characteristics are within the expected ranges. The device does not require any tune-up after it is assembled, and the quality of the entropy produced remains constant. Before each SwiftRNG Zn is shipped, at least 1 TB of random bytes produced by the device are validated with statistical tests for randomness (Diehard, Dieharder, NIST, and Ent), and the frequency tables for each device are inspected.

Device API

The SwiftRNG Zn device API operates on 1-byte commands. The following table contains the complete command set with descriptions.

Command as ASCII char Response Description
x 16,000 random bytes + the status byte The response will contain 16,000 high-quality, non-biased random bytes processed internally with a Linear Corrector (P. Lacharme) and an additional byte for the status byte. The status byte will contain 0 value for success or error code.
m 8 bytes of the device model + the status byte The response will contain 8 bytes for the device model as ASCII codes. The status byte will contain 0 value for success or error code.
v 4 bytes of the device version + the status byte The response will contain 4 bytes for the device version as ASCII codes. The status byte will contain 0 value for success or error code.
s 15 bytes of the device serial number + status byte The response will contain 15 bytes for the device serial number as ASCII codes. The status byte will contain 0 value for success or error code.
f 512 16-bit integers that represent frequency tables of the noise sources + the status byte The first 256 16-bit integers are frequency table of the first noise source and the next 256 16-bit integers are frequency table of the second noise source. The status byte will contain 0 value for success or error code.
< 16,000 random bytes + the status byte The response will contain 16,000 of RAW unprocessed and unmodified random bytes generated from the first noise source. The status byte will contain 0 value for success or error code.
> 16,000 random bytes + the status byte The response will contain 16,000 of RAW unprocessed and unmodified random bytes generated from the second noise source. The status byte will contain 0 value for success or error code.
d status byte Triggers the built-in device diagnostics. The status byte will contain 0 value for success or error code.

Operating temperature

  • Maximum device operating temperature: 149°F (65°C). The temperature is measured on the bottom surface of the device in the middle area.
  • Ambient temperature: minimum 32°F (0°C), maximum 81°F (27°C). The connected device should be located at least 1 inch away from other USB devices in an area with free or forced air circulation.

Other information

  • Weight: 22 grams (0.77 oz)
  • Power consumption: no more than 180 mA in active mode and 90 mA when inactive
  • Lead-free and RoHS compliance: all parts and materials used in SwiftRNG Zn devices are lead-free and RoHS compliant
  • Certified for FCC (Class B), ISED (Class B), and CE compliance. See the compliance page for details.
  • Filled inside with an epoxy compound for protection and heat dissipation