SwiftRNG Z integrates two random noise sources based on analog electronic circuits that generate random electronic signals from reverse-biased Zener diodes using the Zener breakdown effect (due to quantum tunneling). The Zener Breakdown is observed in Zener diodes that have Vz less than 5V and a negative thermal coefficient (TC).
The electrical noise generated by each random 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, a technique proposed by P. Lacharme (“Post-Processing Functions for a Biased Physical Random Number Generator”. In: FSE 2008. LNCS, vol. 5086, pp. 334-342. Springer-Verlag. 2008), using a 0.5 compression rate.
The SwiftRNG Z 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 monitoring logic will check the quality of the random bytes produced by running ‘Repetition Count Test’ and ‘Adaptive Proportion Test’. The embedded monitoring logic will notify the host computer software if it detects an unexpected deviation from normal operation or complete malfunctioning of any of the two random sources.
In addition, ‘Repetition Count Test’ and ‘Adaptive Proportion Test’ tests are continuously performed through provided SwiftRNG Software API on the host computer to ensure the quality of the final random bytes retrieved through the USB interface.
This device is completely powered by a USB bus. It doesn’t require additional power source and it is protected by an overload protection circuit.
All SwiftRNG Z devices are equipped with ESD protection and EMI filtering circuits. After the device is plugged into a USB host, it becomes ready to accept commands in less the a second (this time is used to run start-up tests and waiting for USB driver readiness).
When using SwiftRNG Z it is possible to trigger device internal diagnostics logic through the device and software API.
- Linux (x86, x64) — Through the provided ‘swrandom’ kernel module, the random bytes generated by the SwiftRNG Z will be available for download from the device /dev/swrandom on Ubuntu, Red Hat, CentOS 7, CentOS 6.6 and other Linux based x86-64 systems.
- macOS 10.6 and up
- Windows 7, 8.1, and 10 (x86, x64)
Fabrication and testing
All SwiftRNG Z devices are 100% designed and manufactured 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 test that the electrical noise characteristics are within 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 Z is shipped, at least 1 TB of random bytes are produced by the SwiftRNG Z and validated. Random bytes generated are tested by running statistical tests for randomness such as: Diehard, Dieharder, NIST, and ENT. In addition, the frequency tables for each device are inspected.
SwiftRNG device API operates based on 1 byte commands. The following table contains the complete command set and descriptions.
||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.|
||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.|
||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.|
||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.|
||512 bytes that represent frequency tables of the noise sources + the status byte||The first 256 bytes are frequency table of the first noise source and the next 256 bytes 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.|
||status byte||It will trigger the built-in device diagnostics. The status byte will contain 0 value for success or error code.|
- 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: Min 32°F (0°C), Max 81°F (27°C). The connected device should be located at least 1 inch away from other USB devices in an area with a free or forced air flow circulation.
- Weight: 21 grams (0.7 oz)
- LeadFree/RoHS compliance: All parts and materials used in SwiftRNG devices are lead free and RoHS compliant
- SwiftRNG Z draws no more than 180 mA
- Filled inside with an epoxy compound for protection and heat dissipation