Table of contents

Operation

Each of the two random noise sources of the SwiftRNG are analog electronic circuits that generate random electronic signals from reverse-biased Zener diodes. The electrical noise generated by each random source is independently amplified and converted into digital values as bytes. The bytes produced are combined to produce a low bias random byte stream.

To further reduce bias, the resulting byte stream is processed by a conditioning component with conditioning function SHA256 approved by National Institute of Standards and Technology as described by NIST SP 800-90B DRAFT document section 6.4.2

The SwiftRNG 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 further processing takes place.

The monitoring logic will check the quality of the final random bytes produced by continuously running ‘Repetition Count Test’ and ‘Adaptive Proportion Test’ tests. The embedded monitoring logic will notify the host computer software if it detects an unexpected deviation from normal operation or complete miss functioning of any of two random sources. 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.

The SwiftRNG PCB layout is designed to isolate and minimize the impact of the random electrical noise from the USB data and power lines. The device is equipped with ESD protection and EMI filtering circuit. After the SwiftRNG 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).

Supported systems

  • Linux (x86, x64) — Through the provided ‘swrandom’ kernel module, the random bytes generated by the SwiftRNG will be available for download from the device /dev/swrandom on x86-64 systems such as Ubuntu, Red Hat, CentOS 7, CentOS 6.6 and other Linux based x86-64 systems.

  • OS X 10.6 and up

  • Windows 8.1, and 10 (x86, x64)

Fabrication and testing

The SwiftRNG device is 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 test that the electrical noise characteristics are within expected ranges. The device does not require any tune-up after it is assembled. Before it is shipped, at least 1TB of random bytes produced by SwiftRNG are tested by running well known statistical tests for randomness such as: Diehard, Dieharder, NIST, and ENT.

SwiftRNG device API

SwiftRNG device API operates based on 1 byte commands. The following table contains the complete command set and descriptions.

Command Response Description
‘x’ 16,000 random bytes + the status byte The response will contain 16,000 low biased (RAW) random bytes 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.
‘0’ status byte Set device power profile number 0 for the slowest speed and lowest power consumption. The status byte will contain 0 value for success or error code.
‘1’ status byte Set device power profile number 1. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘2’ status byte Set device power profile number 2. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘3’ status byte Set device power profile number 3. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘4’ status byte Set device power profile number 4. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘5’ status byte Set device power profile number 4. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘6’ status byte Set device power profile number 6. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘7’ status byte Set device power profile number 7. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘8’ status byte Set device power profile number 8. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.
‘9’ status byte Set device power profile number 9 for the highest speed and power consumption. The status byte will contain 0 value for success or error code. This command is ignored by SwiftRNG LE.

Operating Temperature using SwiftRNG

  • Maximum device operating temperature: 149°F (65°C). The temperature is measured on the bottom surface of the device in the middle area.
  • Maximum ambient temperature: varies between 76°F (24° C) and 100°F (37°C) based on the power profile number selected. 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.
Power Profile Number Maximum Ambient Temperature
9 (default) 76°F (24°C)
8 77°F (25°C)
7 79°F (26°C)
6 81°F (27°C)
5 83°F (28°C)
4 85°F (29°C)
3 87°F (30°C)
2 89°F (32°C)
1 93°F (34°C)
0 100°F (37°C)

Operating Temperature using SwiftRNG LE

  • Maximum device operating temperature: 149°F (65°C). The temperature is measured on the bottom surface of the device in the middle area.
  • Maximum ambient temperature: 106°F (41°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.

Other Information

  • Weight: 21 grams (0.5 oz)
  • RoHS compliance: All parts and materials used in SwiftRNG are RoHS compliant
  • Power consumption: SwiftRNG draws no more than 200 mA (depending on the selected power profile). SwiftRNG LE draws mo more than 110 mA (fixed power profile)
  • Filled inside with an epoxy compound for protection and heat dissipation