Infinite Noise TRNG

Open hardware USB true random number generator

Jul 05, 2018

Project update 8 of 10

Orders Shipped...

All orders placed before June 21st have been shipped, but unfortunately four devices that did not pass QA found their way into shipping bags. Read on to get all the details and find out if your order is affected. The pick-and-place video and some production details are also included in this update.

Shipped orders

Your devices serial’s are not associated with your order in any way, so I can’t exactly tell who’s affected, but I was able to narrow it down to shipping dates and batch numbers.

Here is an overview about the already shipped orders - including all information to identify the four affected devices:

Devices shippedShipped with defectDateComment
26 (Early-Bird) 02018-04-05all good!
39 (Early-Bird) 22018-05-02devices from batch 6 and 7
73 22018-06-07devices from batch 13 and 16
55 02018-06-12fixed the bug & retested all
32 02018-06-15
57 02018-06-18
15 02018-07-05
2974

In addition to all of your orders, a shipment of 100 devices is now on its way to the Crowd Supply warehouse, from where the remaining (and all upcoming) orders will ship.

If you placed your order recently - and can’t wait any longer - please let me know and I’ll ship it directly from Germany.

When you receive your order

In any case, check your serial on 13-37.org/verify. The four affected devices from batch 6,7,13 and 16 will show the status DOA (dead on arrival).

You can also just try it out by plugging it in - it won’t light on fire, but the drivers don’t like it, as it will trigger the sanity check mentioned on the campaign page:

Additionally there are some other basic sanity checks, like looking for more than 20 consecutive 1’s or 0’s.

resulting in the error:

Maximum sequence of 20 of 0's or 1's exceeded If you see this, contact me at rma@13-37.org and you’ll get a replacement ASAP -

To make good for it, you will get a limited special edition with an even more transparent enclosure! I received a few of these with my last order of 500 enclosures - hopefully I can get some more of those in the future.

Tests that never fail

Some do fail in reality, but overall, I was kinda surprised of the success rate. And while packing your orders, I stumbled upon a device that did not work during spot tests, so I decided to take a closer look - and identified those four already shipped devices with the same defect. I’m so sorry!

It’s quite tricky to test ten devices in parallel, that’s why I did not simply check the return code, which would have been enough to identify the failed devices.

Now I’m parsing the output of each device’s driver instance (running with —debug —no-output) to check for common failure modes.

It was a real stupid mistake not catching the worst failure-mode for an RNG: giving out long sequences of 1’s and 0’s. As explained in the campaign page, the driver actually stops when it receives such data - and the tests actually failed - but the rest of my script didn’t handle it correctly (and finally programmed the serial number..).

Test reports

In update #3, I promised a test report available at the verification service, which I’m not yet able to delver on, as I have concerns of revealing too much information about your device’s behaviour.

Thus far, I’ve kept the debug output from the tests, which is how I was able to identify the affected devices at all. As soon as I work out a way to boil the test report down to a harmless number, I will delete those reports.

For now I’ve added the some lines to my test output, so I can manually check on the entropy, amplification factor (K) and the distribution of 0’s and 1’s. And, of course, I fixed the bug (which was: simply not checking for "Maximum sequence of 0’s or 1’s"), which already triggered for some devices.

Troubleshooting

There is one thing missing in the user manual - a troubleshooting section, which could help you to handle a device that does not work as expected.

So here is a table of the failure-modes I’m aware of. An error does not neccesarily mean that your device is broken, so please try the provided solutions before contacting me at rma@13-37.org for a replacement.

Error messageDescriptionSolution
Device is not recognized at allUSB connection issuesCheck USB connection. For Bill's Edition: clean USB pins with alcohol
USB read/write failedAn error in USB communication occuredThis could be just a connection issue or a defect, so further testing may be required. Often it's caused by USB hubs, so try connecting it directly.
Maximum sequence of 20 of 0's or 1's exceededJust what it says - there have been more than 20 consective 1's or 0's coming from the deviceIn most cases, this is a hardware defect (or a simple and stupid attack)
NOT OK to use dataSomething nasty is going on (Attack or Defect)I'm working on instructions on how to debug this kind of error - even when you don't own a RF power sensor/spectrum analyzer. A good way to rule out attacks is to operate it in a shielded environment/add some shielding. This also occurs if there are timing issues in the USB transmission, like when running in virtual machines!

Warranty

It seems to be a good point to inform you about the two year warranty that every device comes with. And as said before, it’s not neccesarily void if you’ve opened your device for inspection. But be very careful when doing so.

I’ll also publish a video on how to open it without breaking your device. Visual damage may still occur to the enclosure - it’s definitely tamper-evident even without the serial number labels.

Replacement parts

There’s one thing missing in the BOM listed on the campaign page: the enclosure.

It’s New Age Enclosures P0P-140703U, which is a custom version of the publicly available P3A-140703U, made from transparent polycarbonate instead of black/white ABS.

The USB cap is actually from a different enclosure, it’s New Age Enclosures 0P-210603C.

You can find these replacement parts available in my shop on 13-37.org soon!

Pick and Place video

Finally, here is a short production video of the LitePlacer pick-n-place in action:

It’s not perfect yet:

There is also a full-length version available, but it takes 50 minutes to place a panel of ten Infinite Noise. Make sure to turn the volume down, as it really produces infinite noise.

Here an overview of the interesting sections:

Timecode (short version)Playback speedTimecode (full version)Action
0:008x0:00Load nozzle #2 & measure PCB
0:058x0:30Place all resistors and capacitors (skipped in the short version)
0:358x36:55Place SW1 and SW2
1:108x41:25Load nozzle #3
1:128x41:45Place CMP and AMP
1:108x41:25Load nozzle #4
2:004x47:35Place FT240XQ USB chip

Sign up to receive future updates for Infinite Noise TRNG.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects