Live data from Hacker News

OneRNG – Open Hardware Random Number Generator

onerng.info

11–20 of 89 posts

Re: OneRNG – Open Hardware Random Number Generator

#11

This seems sound. However, I'm in doubt about some of their points: > You can ask it to dump the current firmware to you It can dump the firmware but it can still execute something else than this (or in addition to) this firmware, can't it? > You can see all the components on the board The fact that I can see these tiny thingies doesn't do much good either? Can I, seeing them, tell what they do? No. Building one of t…

> Building one of these yourself seems to solve both problems.

I'd love to see a 3D printer that specifically built verifiably secure hardware.

Re: OneRNG – Open Hardware Random Number Generator

#12
post #2

That's awfully complicated for a hardware RNG. A channel-hopping receiver? The classic solution is a radiation source, which quantum mechanics says is random. http://www.fourmilab.ch/hotbits/hardware3.html

From the same site, quantitative analysis:

"The chi-square test is the most commonly used test for the randomness of data, and is extremely sensitive to errors in pseudorandom sequence generators. The chi-square distribution is calculated for the stream of bytes in the file and expressed as an absolute number and a percentage which indicates how frequently a truly random sequence would exceed the value calculated. We interpret the percentage as the degree to which the sequence tested is suspected of being non-random. If the percentage is greater than 99% or less than 1%, the sequence is almost certainly not random. If the percentage is between 99% and 95% or between 1% and 5%, the sequence is suspect. Percentages between 90% and 95% and 5% and 10% indicate the sequence is “almost suspect”. Note that our JPEG file, while very dense in information, is far from random as revealed by the chi-square test.

Applying this test to the output of various pseudorandom sequence generators is interesting. The low-order 8 bits returned by the standard Unix rand() function, for example, yields:

    Chi square distribution for 500000 samples is 0.01, and randomly would exceed this value more than 99.99 percent of the times. 
While an improved generator [Park & Miller] reports:

    Chi square distribution for 500000 samples is 212.53, and randomly would exceed this value 97.53 percent of the times. 
Thus, the standard Unix generator (or at least the low-order bytes it returns) is unacceptably non-random, while the improved generator is much better but still sufficiently non-random to cause concern for demanding applications. Contrast both of these software generators with the chi-square result of a genuine random sequence created by timing radioactive decay events.

    Chi square distribution for 500000 samples is 249.51, and randomly would exceed this value 40.98 percent of the times. "
- http://www.fourmilab.ch/random/

Re: OneRNG – Open Hardware Random Number Generator

#13

This seems sound. However, I'm in doubt about some of their points: > You can ask it to dump the current firmware to you It can dump the firmware but it can still execute something else than this (or in addition to) this firmware, can't it? > You can see all the components on the board The fact that I can see these tiny thingies doesn't do much good either? Can I, seeing them, tell what they do? No. Building one of t…

> Building one of these yourself seems to solve both problems. I'd love to see a 3D printer that specifically built verifiably secure hardware.

Ah, but can you trust the c̶o̶m̶p̶i̶l̶e̶r̶ 3D printer?

Re: OneRNG – Open Hardware Random Number Generator

#14

This seems sound. However, I'm in doubt about some of their points: > You can ask it to dump the current firmware to you It can dump the firmware but it can still execute something else than this (or in addition to) this firmware, can't it? > You can see all the components on the board The fact that I can see these tiny thingies doesn't do much good either? Can I, seeing them, tell what they do? No. Building one of t…

> It can dump the firmware but it can still execute something else than this (or in addition to) this firmware, can't it?

Well, of course, in theory. In practice the total amount of firmware space is limited. It's rather large, as these things go, at 256 or 512 KB depending on the exact model.

If it dumps a firmware close to that size, which passes scrutiny by several people, I would say that the risk that the chip still manages to contain a firmware which creates bad random data and a fake firmware is rather slim.

Of course it's not impossible, and if you made it a contest (which, perhaps it is to some people) I'm sure it could be done.

It's hard to trust digital systems of this complexity; what if you decide you don't trust TI (the makers of the microcontroller) in the first place, for instance? Building your own processor at this performance and size level isn't trivial.

Re: OneRNG – Open Hardware Random Number Generator

#16
post #3

Well, I'm happy to see that for once, they understand that the single most important thing is that it's verifiable . So many crypto-related systems ask you to trust the provider implicitly it's not even funny. I don't care who you are, if I can't look at the source (all the way down) of your product and build it myself, it's not going to make the cut as a "secure" system. You can provide additional guarantees and pro…

> You can provide additional guarantees and proofs, but showing me the source is item number 0.

And item number 0.5 is allowing me to build the source and upload it to a pristine EEPROM chip.

Re: OneRNG – Open Hardware Random Number Generator

#17
post #16
post #3

Well, I'm happy to see that for once, they understand that the single most important thing is that it's verifiable . So many crypto-related systems ask you to trust the provider implicitly it's not even funny. I don't care who you are, if I can't look at the source (all the way down) of your product and build it myself, it's not going to make the cut as a "secure" system. You can provide additional guarantees and pro…

> You can provide additional guarantees and proofs, but showing me the source is item number 0. And item number 0.5 is allowing me to build the source and upload it to a pristine EEPROM chip.

Oh, I was considering that as part of the "build it myself" point, but yeah, totally.

Re: OneRNG – Open Hardware Random Number Generator

#18

This seems sound. However, I'm in doubt about some of their points: > You can ask it to dump the current firmware to you It can dump the firmware but it can still execute something else than this (or in addition to) this firmware, can't it? > You can see all the components on the board The fact that I can see these tiny thingies doesn't do much good either? Can I, seeing them, tell what they do? No. Building one of t…

Note: I'm Paul the designer

You're completely right someone could put some other firmware on the image but have it return the correct one - we solve this by:

- padding the image to the size of the ROM (256k, the runtime image is ~10k)with random data making it incompressible - signing the image (including the random bit) so that the image can't be altered

On a linux system the udev install script kicks off a process that starts with verification of the firmware image and finishes with putting it into service if verification passes.

This is open hardware - you can program it yourself, we'll be releasing both the hardware design and all the software in a little while - along with programmer for doing it - you just wont be able to create an image signed by us - but you can sign images and share them with your friends.

Note: what you can't do is program the device over the USB

As far as lifting the lid and verifying what's underneath is concerned we don't expect every user to open it and look at the board and understand how it works (we hope some people will and will verify our work) - but what you can do is look under there and verify that the board looks the same as images that we publish.

Post reply on HN