You want to see something really random? Infinite entropy returns

Remember a few posts ago where I talked about entropy, randomness, and how it was under-estimated as important for a high shared-user dynamic environment like public cloud? Some folks commented that the /dev/urandom was good enough. But, when there’s a gadget on the line, why settle?

So I bought the “Infinite Noise TRNG“. In fact, I bought two.

Interestingly, they came w/ 2 ‘user manuals’, and one is colour, one black and white, both the same version. Interesting. Its hand-printed and folded, the devices are also hand-made. Remember when gadgets where hand-made? Pepperidge farms doesn’t!

So, lets plug it in. Shows up as an ‘13-37‘ usb device (below).

This one is neat since it uses a ‘whitening’ algorithm. You see, in random generators, its possible that adjacent bits are correlated, so they run it through Keccak/SHA3 to smooth that out. We have a ‘github repo‘ with the cad images and software, in case we want to build our own. Its worth checking out the link, he goes into details on the design and how it functions.

Lets try:

./infnoise | pv > /dev/random
448KiB 0:00:13 [39.0KiB/s] ==>

OK, seems to generate about 35-45KiB/s of random. Is that infinite? Well, if you run it long enough 🙂

Now, I’m thinking of selling my random numbers to pay for this gadget. Maybe i’ll set up a site you can buy my bits to use in your private keys, seems like a good idea eh? Why generate your own slow, possible not random, when you can buy it from a stranger and feel more secure?

[6388951.178077] usb 2- new full-speed USB device number 41 using ehci-pci
[6388951.403596] usb 2- New USB device found, idVendor=0403, idProduct=6015, bcdDevice=10.00
[6388951.403605] usb 2- New USB device strings: Mfr=1, Product=2, SerialNumber=3
[6388951.403611] usb 2- Product: Infinite Noise TRNG
[6388951.403615] usb 2- Manufacturer:
[6388951.403620] usb 2- SerialNumber: 1337-17C08314
[6388951.431663] usbcore: registered new interface driver ftdi_sio
[6388951.431688] usbserial: USB Serial support registered for FTDI USB Serial Device
[6388951.432016] ftdi_sio 2- FTDI USB Serial Device converter detected
[6388951.432058] usb 2- Detected FT-X
[6388951.432419] usb 2- FTDI USB Serial Device converter now attached to ttyUSB0






4 Responses to “You want to see something really random? Infinite entropy returns”

    1. db

      saddened to see no simpsons ref for this.

  1. Hi Don,

    sorry for these user manuals. Printers are not my friends at all. Already had trouble with them during the Crowdfunding campaign:
    Just bought a new printer a week ago. Hopefully it just works forever this time ;-D

    If you look for infinite entropy you should check the multiplier mode(-m).
    This enables the full power of the SHA3 hashing function used for whitening and you will get much better throughput.

    $ sudo ./infnoise -m 10000 | pv > /dev/random
    56MiB 0:00:06 [71,6MiB/s]

    But writing to /dev/random as you did is not right. It works, but the kernel isn’t aware of the added entropy, so you can’t read from /dev/random at the same rate. Even using the –dev-random mode described below, there are some drawbacks.

    In fact, you could also write to /dev/null at the same rate 😉

    $ sudo ./infnoise -m 10000 | pv >/dev/null
    56MiB 0:00:05 [71,5MiB/s]

    Instead, you should use the –dev-random mode like this:

    $ sudo ./infnoise -m 10 –dev-random –debug
    Entropy pool size:4096, fill watermark:3072

    It also works together with the multiplier, but not as fast as piping to a file (like /dev/null used above).
    However you can still achieve up to 2MB/s with a multiplier in the thousands range.

    Just make sure to NOT use version 0.3.0 in multiplier mode as it has a bug.
    v0.2.6 and 0.3.1 are good to go!
    A multiplier of 10000 is probably too much for any real use case.

    Thanks for your order and writing this post!


    1. db

      I like the garage-built look!

Leave a Reply

Your email address will not be published. Required fields are marked *