2MBits/s USB True Random Number Generator (world's highest bit rate/$)
Designed by Kidekin in South KoreaThis product is no longer available for sale.
The seller may be offering an improved version or it may be hanging out on the beach, enjoying the retired life.
$14.00
Free Shipping!
$159.00
Free Shipping!
$189.00
Free Shipping!
$54.00
Free Shipping!
Digital True Random Number Generator This is a TRNG in the USB key form factor whose entropy source is made out of digital circuitry rather than analogue one. It delivers full entropy bits at a rate …
Read More…This is a TRNG in the USB key form factor whose entropy source is made out of digital circuitry rather than analogue one. It delivers full entropy bits at a rate higher than 2Mbits/s (275Kbytes/s). According to Wikipedia, Kidekin TRNG offers the most bang for your bucks. As the entropy source is purely digital, it is much more stable than analogue sources with respect to operating conditions as well as process variations. The randomness comes from an array of small free running oscillators, like in most papers on the subject. Unlike typical implementation, the oscillators are register-less LFSRs with remapping of the null state. This allows to harness entropy from two phenomenon: the chaotic behavior of such LFSRs and the lack of synchronization between them. This also avoid the "self alignment" tendency often found with arrays of ring oscillators. Kidekin TRNG implement 8 such LFSRs running in parallel, output is sampled at 96MHz. The sampled data is then compressed by a standard CRC-8 circuit to produce output bytes.
Conceptual schematic of a 4 bit register-less LFSR:
The raw random bits have a very good entropy out of the box:
(ent, which reports the shannon entropy, makes rounding errors on big data files. It reported 8.0 bits/bytes on a 953MB file).
The software package contain many reports from AIS31, NIST's STS and dieharder programs, on data set of up to 4GB.
It allows to make the full entropy claim and follows NIST's SP800-90B recommendations: it is a CBC-MAC using AES-128 encryption. It is done in hardware and cannot be switch off. As a result the device does not have any configuration, making it user friendly and hard to misuse. The access to the raw entropy bits is useful only during the design phase anyway, to know how many blocks the CBC-MAC should process to achieve full entropy. With 7.9 bits of entropy per byte, 3 blocks are enough, actually this would be enough even with 6.7 bits of entropy per byte, so this provides a large safety margin. This is an option because some people may prefer to mix the raw bits with other entropy sources and then perform their favorite cryptographic post processing.
The casing is a white vinyl sticker simply wrapped around the PCB. It protects against light coffee spills only.
Dimensions: 26 x 102 x 7 millimeters
As the casing is handmade, the dimensions may also vary from one sample to another by few millimeters.
The TRNG has no control commands, so it just output random numbers as long as the host ask for it. The USB communication is done via an FTDI chip, so your favorite OS is supported as long as an FTDI driver exist for it. According to FTDI's website:
FTDI D2XX driver download page: http://www.ftdichip.com/Drivers/D2XX.htm (Note: the VCP driver is not needed).
Kidekin TRNG is tested on the following OS only:
Many different programs are provided, for each, executable for Windows and Linux are provided. Sources and build instructions are provided as well. The programs are written with simplicity in mind: easy to use, easy to read, easy to adapt, easy to build. You don't have to be a C++, java or make-file guru.
The program trng_capture allows to write random data to a file or the standard output. The standard output is a convenient way to directly feed random numbers to another software. Binaries for windows and linux are provided as well as the C++ sources and simple build batch files and "howto". trng_capture allows to choose between binary or text output mode, in text mode the output is the conversion of random numbers to hexadecimal, so it looks like "A3BCFD67..." without any white space character.
This application note consist of two programs:
The client-server architecture is a way to easily access the TRNG with any programming language, all you need is to connect to a socket and request data. This is demonstrated with a java implementation of trng_client. Like in the capture application note, sources (C++ and java), binaries and guidances are provided.
This application note show how to mound the TRNG as a Linux special device similar to /dev/random. After running an instal script, each time the TRNG is plugged-in, the device /dev/kidekin_trng will be mounted and ready for read operation in user mode. This is the most natural way to use the TRNG on linux: just read from the device as you would from /dev/random. Since the device has a specific name, it does not interfere with existing applications and your application can have exclusive use of it. The install script just copy a file containing udev rules, this works out of the box without installing any other software or packages.
/dev/kidekin_trng typical performances: about 40 seconds to generate 10 mega bytes.
This application note show how to feed Linux's /dev/random with the TRNG. This way any program using /dev/random is seamlessly accelerated. This is especially useful on gaming servers or web servers which need to generate cryptographic keys. This is just some udev rules however it does require an additional package (rng-tools). An installer shell script is provided to copy the right files at the right places with minimal user effort.
/dev/random typical performances: first call very fast because it just read buffered data, second call is way slower as the system is waiting to gather enough fresh entropy.
/dev/random with kidekin TRNG performances: first call also very fast because it just read buffered data, second and subsequent calls still beyond 2MBits/s. Last call read 10 mega bytes to minimize the effect of buffering on the performance measurement. The performance achieved with /dev/random is slightly lower than reading directly /dev/kidekin_trng or using dedicated software however it allows to use standard software.
Quantity | Price |
---|---|
1-4 | $79.00 |
5-9 | $76.00 |
10+ | $73.00 |
$79.00
Free Shipping!
$79.00
Free Shipping!
$199.00
Free Shipping!
$3460.00
Free Shipping!
By clicking Register, you confirm that you accept our Terms & Conditions
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!