A MicroRNG up close

MicroRNG is a hardware (true) random number generator device that can be used in embedded systems as a reliable entropy source. It can interface with microcontrollers or microprocessors (mainboards) with integrated circuits and modules through a mikroBUS™ socket using SPI or 2-wire UART interface. MicroRNG is designed to comply with NIST SP 800-90B: “Recommendation for the Entropy Sources Used for Random Bit Generation,” and can generate random numbers at a rate up to 1 Mbps in SPI mode and up to 1.5 Mbps in UART mode.

$179

MicroRNG complete technical specification can be downloaded here.

How it works

MicroRNG can operate in either SPI or 2-wire UART mode, which is selected with the ‘JP Mode’ switch located on the board. When the device is powered on or restarted, the ‘JP Mode’ switch configuration determines which interface is to be used.

MicroRNG utilizes random noise generated from two independent and reliable sources based on the electrical noise produced by an avalanche breakdown effect in Zener diodes. The electrical noise generated by each random source is independently amplified, filtered and converted into digital values. The random bytes produced by both noise sources are combined and processed internally with a Linear Corrector, a technique first 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. Alternatively, when operation in 2-wire UART mode, the raw random bytes can be processed internally with one of the following hashing methods: SHA1, SHA2, SHA512, or HMAC160.

As soon as the MicroRNG is powered on or the RST signal is asserted, it will begin running start-up health tests and will become ready in less than 700 milliseconds. If any errors are detected when running start-up health tests, the ‘LED Status’ indicator will blink several times and the ‘Status byte’ will be updated with an error code.

Quality checking

The device embeds comprehensive diagnostics and monitoring features used for validating internal random physical sources and components in real-time. It maintains an internal status, referenced in technical specification by ‘Status byte,’ which can be retrieved using the device API to check the health of the generator.

Tech specs

MicroRNG datasheet can be downloaded at this address.

True random byte download speed 1 Mbps in SPI mode and up to 1.5 Mbps in UART mode
Power supply 3.3V
Max Input High-level Voltage 3.3V
Power consumption max 340mW consumption in normal operation mode and 125mW in sleep mode
Weight 5 grams (0.1 oz)
Data connectivity and control interface SPI, 2-wire UART interface
Random source Two independent circuits based on avalanche breakdown effect in reversed-biased Zener diodes
Post processing algorithms available Linear Corrector (P. Lacharme), SHA1, SHA2, SHA512 and HMAC160
Embedded health check test (HCT) ‘Frequency Table Inspection’ - runs at device start-up
Implemented statistical tests Continuous ‘Repetition Count’ and ‘Adaptive Proportion’ statistical tests
RoHS compliance All parts and materials are lead-free and RoHS compliant
Country of origin U.S.

Statistical tests

MicroRNG device passes the following statistical test suites for measuring the quality of a random number generator: Diehard, NIST, Rngtest, Ent.

You can download sample test reports using links below:

Test reports generated on Mon Nov 11 20:55:26 CST 2019

Reports were generated based on random bytes retrieved from the MicroRNG device and post processed with embedded Linear Corrector (P. Lacharme)

Warranty and return policy

TectroLabs offers a 1-year limited warranty on MicroRNG. We will repair or replace (at our sole discretion) any device that fails due to defect in materials or manufacturing. MicroRNG may be returned within 30 days of purchase for a full refund (buyer will pay for return shipping).