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.
MicroRNG complete technical specification can be downloaded here. MicroRNG quick start guide when used with Raspberry Pi can be found at this address. MicroRNG quick start guide when used in UART mode on Windows platform can be found at this location.
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 typical connection in SPI mode:
MicroRNG typical connection in 2-wire UART mode:
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.
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.
|True random byte download speed||1 Mbps in SPI mode and up to 1.5 Mbps in UART mode|
|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.|
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)
- NIST test report
- Ent test report for 229 MB of random binary data stream
rngtesttest report for 229 MB of generated random bytes
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 minus credit card processing charge (buyer will pay for return shipping).