[go: up one dir, main page]

|
|
Log in / Subscribe / Register

A verifiable source of random numbers

By Nathan Willis
January 21, 2015

LCA 2015

High-quality entropy is vital for cryptography (among other functions), but adequate sources for it are hard to come by on standard computer hardware. Entropy sources that can be verified as trustworthy are even rarer. At linux.conf.au 2015 in Auckland, Jim Cheetham and Paul Campbell presented a session about OneRNG, their new hardware random number generator (RNG). OneRNG rapidly produces random bits that can be fed into the kernel's entropy pool, but it also offers protection against various security attacks: users can independently verify the integrity of all software, firmware, and hardware components.

[Paul Campbell and Jim Cheetham]

Cheetham started off the talk with a background discussion about random number generation and explained the approach taken by the OneRNG—both how its random numbers are generated, and how they are provided to Linux. A true random number generator is critical, he said. Most of the alleged sources for entropy on a computer—such as network-traffic and hard-disk timing—are not as random as we would like them to be and can even be subject to sophisticated attacks. Furthermore, even a cryptographically secure pseudo-random number generator (CSPRNG) requires true random numbers as seed values.

The OneRNG's primary entropy source is an avalanche diode circuit that generates quantum noise, sampled in the analog domain. The same circuit has been used in other RNGs. This, he said, is one of just a few options for "physics that we cannot predict yet." A second entropy source is also present in the device: a de-tuned radio-frequency (RF) receiver chip that frequency hops at random intervals. Cheetham explained that it is theoretically possible for an attacker to skew the output of the RF receiver circuit by transmitting powerful RF signals, so the receiver is disabled by default. But it is available for users who wish to use it and are prepared to deal with the potential attacks; if properly used it can provide even better entropy than the avalanche diode.

There is also an AES chip present in the integrated circuit, but it is not used by the OneRNG at all because the integrity of its output cannot be independently validated. The issue, he explained, is that it remains conceivable that the US National Security Agency (NSA) or other powerful players have broken AES without anyone else knowing it.

The output of the avalanche circuit (as well as that of the RF receiver, if enabled) is run through a "whitening" CRC16 hash function before it is delivered to the RNG daemon, rngd. A separate rngd process is started for each OneRNG device plugged into a given system, and each rngd process is terminated when the device is unplugged. Each rngd daemon stirs its device's output into the kernel's entropy pool, which is accessible through the usual means: /dev/random and /dev/urandom.

The original goal of OneRNG, the speakers explained, was cryptography, which is "incredibly hungry" for entropy, and also incredibly sensitive. Android's pseudorandom number generator only had a tiny flaw, Cheetham noted, but that was enough for an exploit to rob people of Bitcoins ("note that I'm not saying they lost money," Cheetham quipped, "just Bitcoins."). But, he continued, there are several other important uses for RNGs—most notably scientific research that relies on numerical simulations and the online gambling industry, which has to prove to government regulators that it runs unbiased "games."

Design and verification

Campbell then took center stage, explaining the circuit design and the decisions that went into making the device something that users can audit. All of the software and firmware is open source and publicly available, of course, as are the schematics and board layouts. In addition, Campbell took pains to make the circuitry as simple as possible, so that its functionality is simpler to verify. There is only one "dense block" involved—the CC2531 CPU—and it was chosen because it is an older device available from many sources.

The same chip is also found in many older remote controls; if users are worried about the integrity of the CPU, he added "ask yourself if the NSA compromised this usage—of this chip—five years before this usage was invented." The truly paranoid, he said, can replace the CPU shipped on the device with another one that they acquire themselves.

The firmware included on the OneRNG is signed; users can dump it to a file, verify the signature, and verify that the firmware dump is exactly 256K. In fact, the actual firmware needed by the device is less than 256K; the team padded out the rest of the 256K size (with random data) to prevent attackers from adding an additional payload.

The device's operation can also be double-checked, Campbell said. "Don't trust me to write good code: lift the lid and check." In particular, the whitening function can be disabled, so that users can test the raw avalanche-circuit output. An audience member asked why the whitening step was included at all, given that the circuit is designed to produce true random numbers. Campbell replied that there is a slight DC bias to the entropy as generated by the circuit, so it generates about 5% more ones than zeros.

Due to that bias, the kernel may complain about the quality of the results. Whitening the output removes that obstacle at no additional cost. Correcting the DC bias in hardware would raise the per-unit price to $10,000, he said. As is, the end result is approximately 7.5 bits of entropy per byte, which can be stirred in with other entropy sources to further improve the quality level. The OneRNG is advertised as generating 350Kbps of entropy, Campbell said, although his tests generally show an even better performance (closer to 500Kbps).

Finally, although the OneRNG device is a USB stick, programming the device must be done with a special hardware tool (also open hardware). The OneRNG is not programmable through its USB port, in order to guard against attackers modifying the firmware.

Users should therefore be able to examine the physical circuitry, the firmware, the raw output, and all of the software used to support the OneRNG, verifying that each piece has not been tampered with. Startup scripts should perform the firmware and software verification every time a OneRNG is plugged in. Nevertheless, Campbell said, he advised that all users take the precaution of using multiple hardware RNGs: in addition to the OneRNG, he pointed to Paul Warren's rtl-entropy, Keith Packard and Bdale Garbee's USBtrng, John Denker's Turbid, and Yutaka Niibe's NeuG as other projects to consider.

Funding and further development

OneRNG is intended to be a low-cost tool. After making the first few prototypes, Campbell and Cheetham launched a fundraiser on Kickstarter. The project reached its 100% funding level in just six days (and, in fact, was still running with nearly two weeks left at the time of the talk). Campbell estimated that the total was on track to hit $32,000 (more than triple the target), which he called "really amazing." Since their talk, the total has exceeded that prediction. With more funds available than initially expected, Campbell said he was working on building device programmers with which users can build and upload their own firmware, and has ideas for other stretch goals (at least one of which, an internal version of the device for servers, has since been announced).

The two also discussed a few of the project's ongoing challenges. One is that building a serial-over-USB device like the OneRNG proves to be tricky because ModemManager assumes the device to be a modem and tries to take it over. From the audience, Packard asked why the team doesn't simply make the hardware appear as some other device type; Campbell replied that producing the numbers over a serial port was important because it would enable users on any (i.e. non-Linux) operating system use it as well.

Campbell also reported that it was tricky to start the firmware-verification script, followed by launching the rngd process, in a way that integrated smoothly with Linux init systems. Thus, the project starts the daemon using an at command instead. Finally, he noted that when unplugging the OneRNG it can be easy for udev to get "confused" about which device was removed. "Apparently, no one uses udev removal scripts, probably because udev removal is so broken."

There was a brief question-and-answer period at the end of the talk. One audience member asked if the team had any concerns about ordering its chips from China, given that the team had taken so many measures to guard against tampering by the US government. Campbell replied that he always has some concerns, but that in the past he has only had trouble with one chip being replaced with the wrong (but a similar) part. Usually, he added, working closely with the supplier in question prevents those problems—but the OneRNG team also has code prepared to validate all of the chips it receives.

The Kickstarter fundraiser campaign will conclude on January 28. The first, hand-made OneRNG units should be available in March, with the mass-produced units to follow a couple of months later.

[The author would like to thank LCA 2015 for travel assistance to Auckland.]

Index entries for this article
SecurityRandom number generation
Conferencelinux.conf.au/2015


to post comments

A verifiable source of random numbers

Posted Jan 22, 2015 6:40 UTC (Thu) by warmcat (guest, #26416) [Link] (4 responses)

There's no way to 'verify' the bits this or any other thing issues are random.

All you can do is put a finite number of tests against it and see it does not fail those tests.

But the tests only check for specific statistical properties of the stream. For example many useful tests can by passed by PRNGs that have almost no entropy and others passed by nonrandom sequences whitened by hash algorithms... both completely unsafe as sources of hard randomness.

Basically anybody telling you that their random source can be 'verified' as random cannot deliver on what they're promising...

A verifiable source of random numbers

Posted Jan 22, 2015 9:34 UTC (Thu) by epa (subscriber, #39769) [Link]

Perhaps 'verify' is an unfortunate word. I understood that you could open up the lid of the device and see exactly what hardware and software it is using.

A verifiable source of random numbers

Posted Jan 22, 2015 18:54 UTC (Thu) by wahern (subscriber, #37304) [Link] (2 responses)

You _can_ verify that you're correctly sampling a source. For example, you could purchase a geiger counter and a radioactive isotope (http://unitednuclear.com/index.php?main_page=index&cP...). Extrapolating from known physics (rate of decay of the isotope, particle energy, and sensitivity of the geiger counter) you could place bounds on the accuracy and reliability of your setup, and from there derive numbers on the amount of random bits you can read.

I'm not an electrical engineer, but I don't see why you couldn't do this for an avalanche diode. I imagine it would be much more difficult and laborious to verify the performance of an IC, but you should be able to derive some bounds. It's a matter of economics--how much time and money you are willing to spend.

I suppose we can never _know_ whether a physically random source is truly random. But that's irrelevant. The characteristic that we're interested in is unpredictability, and avalanche diodes, just like radioactive decay, exhibit behavior that we cannot currently predict, and have no reason to believe that we ever could.

Also, you can never be 100% certain of anything. Maybe your geiger counter was tampered with. If you built your own, then maybe spooks broke into your home and tampered with it. These are epistemic, philosophical arguments. When people say verify, they usually mean in a scientific sense--analytical, reproducible, etc, with all the usual caveats, including thorny issues like the credibility of experimenters and probability of chance observations.

A verifiable source of random numbers

Posted Jan 22, 2015 23:11 UTC (Thu) by warmcat (guest, #26416) [Link] (1 responses)

The point is there are impressive buzzwords like 'quantum' and 'radioactive', there is the reality of the measuring arrangements, and finally the only output it can be judged on is a bitsream.

Measuring very weak noise is quite an art if you want it to be unaffected by biases caused by drift, aging, thermal relationships, rf coupling, component variations and so on which affect the statistical properties.

Since where the randomness is claimed to come from can't be sampled without equipment prone to these biases, we should try not to be dazzled by the marketing voodoo of where it was supposed to have come from and only consider the qualities of bitstream we are given, which is completely dependent on the detail of how it is measured (to the point eg switchmode powersuply noise coupling may have overwhelmed what you thought you were measuring and the signal is highly predictable just jittery enough to look random).

A verifiable source of random numbers

Posted Jan 29, 2015 14:50 UTC (Thu) by itvirta (guest, #49997) [Link]

> Since where the randomness is claimed to come from can't be sampled without equipment
> prone to these biases, we should try not to be dazzled by the marketing voodoo of where
> it was supposed to have come from and only consider the qualities of bitstream we are given

As far as I understand, the output of a good CSPRNG should look completely random to someone
unaware of the initial state or key. But completely predictable to someone who knows it, so
looking only at the output but ignoring the process would just fail totally in proving that you
safely get anything random.

A verifiable source of random numbers

Posted Jan 22, 2015 9:28 UTC (Thu) by jnareb (subscriber, #46500) [Link] (7 responses)

> The OneRNG's primary entropy source is an avalanche diode circuit that generates quantum noise, sampled in the analog domain. The same circuit has been used in other RNGs. This, he said, is one of just a few options for "physics that we cannot predict yet."

Actually if it is truly *quantum* noise, the physics says that it cannot be predicted. The 'local hidden variables' / 'local realism' theory of quantum dynamics was tested in Bell's inequality experiments (because existence of such 'hidden variables' influences correlations), and failed.

A verifiable source of random numbers

Posted Jan 22, 2015 17:24 UTC (Thu) by smoogen (subscriber, #97) [Link] (6 responses)

He is speaking as a cryptographer knowing that nothing stands the test of time. While Bell and such show there are no hidden variables, if some future insight shows that the type of physics they were using was not completely quantum... then he is hedging his bet.

A verifiable source of random numbers

Posted Jan 24, 2015 4:17 UTC (Sat) by creemj (subscriber, #56061) [Link] (5 responses)

> While Bell and such show there are no hidden variables

Bell did not show that. He showed that no hidden variable theory (HVT) that has *both* the properties of locality and realism can give exactly the same results as quantum mechanics (QM) for the correlation of certain measurements. Bell's theorem does allow the possibility that one can construct HVTs that violate one of locality or realism and be consistent with QM. Indeed, Bohm's pilot wave theory (which is non-local, and a form of HVT) makes exactly the same predictions as QM.

A verifiable source of random numbers

Posted Jan 24, 2015 4:29 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link] (4 responses)

Well, it's OK because you have to dispense with causality. Choose your poison.

A verifiable source of random numbers

Posted Jan 28, 2015 23:55 UTC (Wed) by nix (subscriber, #2304) [Link] (3 responses)

I hope we can dispense with causality. The things you can do with computation with a time machine are simply awesome (forget P==NP, EXPTIME == O(1)!).

But that's for the next release of reality.

A verifiable source of random numbers

Posted Jan 29, 2015 0:45 UTC (Thu) by jwakely (subscriber, #60262) [Link] (1 responses)

Does reality support in-place upgrades yet? Any plans for going to rolling release?

A verifiable source of random numbers

Posted Feb 3, 2015 22:45 UTC (Tue) by nix (subscriber, #2304) [Link]

No, my understanding is that you have to reinstall: it's a "big bang" model. It can be quite disruptive.

A verifiable source of random numbers

Posted Jan 29, 2015 20:20 UTC (Thu) by josh (subscriber, #17465) [Link]

"Do not mess with time"

A verifiable source of random numbers

Posted Jan 22, 2015 13:58 UTC (Thu) by Aissen (subscriber, #59976) [Link] (2 responses)

> The OneRNG is advertised as generating 350Kbps of entropy, Campbell said, although his tests generally show an even better performance (closer to 500Kbps).

As a comparison point, an Ivy Bridge CPU with RDRAND can generate 4000000Kbps (4Gbps), which is a lot more (see https://sites.google.com/site/intelrdrand/references).

Of course be aware of potential attacks on this technology: http://www.chesworkshop.org/ches2013/presentations/CHES20...

A verifiable source of random numbers

Posted Jan 23, 2015 2:19 UTC (Fri) by JonnyH (guest, #50309) [Link] (1 responses)

RDRand is a pseudo-random number generator, it passes a smaller bit of entropy to an algorithm (I believe it's AES) to expand it. It is not generating truely 'random' numbers for it's output, as it relies on no breaks in AES

A verifiable source of random numbers

Posted Jan 23, 2015 11:57 UTC (Fri) by gebi (guest, #59940) [Link]

I'd not go as far as say "it relies on no breaks in AES".

The entropy source has 3Gbps and has a 2:1 conditioner afterwards.
The output AES-CTR DRBG is reseeded every 512bits from the entropy source.

http://www.hotchips.org/wp-content/uploads/hc_archives/hc...

A verifiable source of random numbers

Posted Jan 23, 2015 10:34 UTC (Fri) by etienne (guest, #25256) [Link] (3 responses)

The worst attack (by black hats or 3 letters agencies) I can think of is the one where the "source of random numbers" is completely "verifiable" during all testing, i.e. really comes from random stuff - but can be diverted to a known pseudo-random generator under some conditions that the black hat can control: stick a magnet at the right place, light the device with a laser, expose the device to a certain radio frequencies and a hidden processor takes control and generate pseudo-random values...

A verifiable source of random numbers

Posted Jan 23, 2015 11:49 UTC (Fri) by cesarb (subscriber, #6266) [Link] (2 responses)

> stick a magnet at the right place, light the device with a laser, expose the device to a certain radio frequencies

These attacks all require physical proximity, and therefore are all targeted: the attacker must know the approximate location of the victim. A stronger attack would be able to compromise the random numbers even without knowing the victim's location, and compromise even random numbers generated in the past.

The worst attack I can think of is one where it's actually a high-quality pseudo-random number generator (so it would pass all statistical tests), with a small enough seed and a small enough cycle length (but long enough that it wouldn't be noticed).

For instance, a PRNG with a 32-bit seed, which is re-seeded after generating 2^32 pseudo-random bits. Knowing a small part of the output (for instance, if it's used to generate a nonce) would allow the attacker to brute-force search for the seed and stream position with approximately 2^64 cost.

A verifiable source of random numbers

Posted Jan 23, 2015 16:37 UTC (Fri) by raven667 (subscriber, #5198) [Link] (1 responses)

I'm not sure the attack you describe is all that different from how a perfectly normal PRNG is used and is just brute forcing the state, if you can brute force the PRNG then you can brute force the PRNG.

A verifiable source of random numbers

Posted Jan 23, 2015 17:29 UTC (Fri) by cesarb (subscriber, #6266) [Link]

> I'm not sure the attack you describe is all that different

It's not ;-)

It was just an example, the attack is basically "make it a PRNG with small state" (but big enough that it won't cycle when tested, or collide when used).

why random data padding?

Posted Jan 24, 2015 5:14 UTC (Sat) by martinfick (subscriber, #4455) [Link] (1 responses)

It seems odd that they choose to use random data for the padding. It would seem that this requires trust, and unlike source code is not verifiable. In other words, how do we know it is random data and not malicious code disguised as random data? Wouldn't all zeros or all ones be more trustworthy?

why random data padding?

Posted Jan 24, 2015 11:26 UTC (Sat) by cesarb (subscriber, #6266) [Link]

My guess is that all-zeros or all-ones (or even a PRNG output) is easier to "fake". If you know the device has exactly 256K of ROM and ask it "give me your code, all 256K of it", you know nothing else can be hidden in the ROM... unless the device can "fake" the ROM contents (this part *should* be all-zeros, let's give the user a few thousand zeros instead of the malicious code which is stored here).

Perhaps they could have used something which is deterministic but hard to generate instead, like bcrypt does. Wasting a few hours to generate the "random" data from a seed on a desktop should be no problem, but if the embedded chip takes more than a few seconds to answer to a "give me these bytes of the ROM" command, the user knows something's going on.

A verifiable source of random numbers

Posted Jan 25, 2015 15:07 UTC (Sun) by alankila (guest, #47141) [Link] (6 responses)

Waste of time and money. Just use RDRAND. Or consider doing a mildly saner thing which is to combine RDRAND as one of the sources with lower-quality entropy gathering functions, but that's already extra paranoia; you shouldn't need to do any of that.

A verifiable source of random numbers

Posted Jan 25, 2015 18:01 UTC (Sun) by mathstuf (subscriber, #69389) [Link] (5 responses)

The point is that there are people who don't trust RDRAND (or even AES) to be properly implemented. There certainly isn't any way to verify that it is working as intended and without backdoors.

A verifiable source of random numbers

Posted Jan 25, 2015 23:23 UTC (Sun) by alankila (guest, #47141) [Link] (4 responses)

The RDRAND instruction sets a flag that measures if the entropy generator is working correctly, so assuming it is implemented as described by the design docs, you know that it has actual entropy that passes some rudimentary statistical tests for "looks random". I'm thinking that you are going to have to trust the processor you are running your code on anyway, and I doubt the feasibility of RDRAND backdoors.

I think the paranoia of not trusting RDRAND likely results in worse implementations than just using RDRAND.

A verifiable source of random numbers

Posted Jan 26, 2015 0:01 UTC (Mon) by PaXTeam (guest, #24616) [Link]

it's much easier to backdoor something like rdrand than other deterministic instructions. you see, there're only so many ways a "mov rbx,rax" can (mis)behave without detection whereas rdrand pretty much by definition can behave in almost any way and noone would be the wiser by observing it.

A verifiable source of random numbers

Posted Jan 26, 2015 0:31 UTC (Mon) by mathstuf (subscriber, #69389) [Link] (1 responses)

There's also the idea that the NSA knows how to break AES (which RDRAND uses IIRC). And if anyone does; they may be the first and years ahead of any public announcement of its breakage.

A verifiable source of random numbers

Posted Jan 27, 2015 13:28 UTC (Tue) by alankila (guest, #47141) [Link]

The way AES is used is just for whitening. IIRC, there is enough random data coming in as is sent out, so a lot of algorithms would be perfectly fine.

A verifiable source of random numbers

Posted Jan 26, 2015 10:14 UTC (Mon) by itvirta (guest, #49997) [Link]

> so assuming it is implemented as described by the design docs

That's exactly the bold assumption.

A verifiable source of random numbers

Posted Jan 25, 2015 22:21 UTC (Sun) by kooky (subscriber, #92468) [Link] (1 responses)

This isn't a really new idea.
http://www.entropykey.co.uk/ has been around for a few years, although seems not to be in production at the moment. I have a few of them installed and they seem to work well.

A verifiable source of random numbers

Posted Jan 29, 2015 0:03 UTC (Thu) by nix (subscriber, #2304) [Link]

As far as I can see, the differences between this and the entropy key are:

- the entropy key generates on the order of 4Kb (32Kbits) of entropy per second: much less.

- the entropy key is *not* verifiable: it is a black box (actually, literally black), with unknown firmware. You have to trust that it does what it says it will do.

- the entropy key runs two avalanche diodes and continuously tests to be sure that they are apparently random and uncorrelated: it also does its own debiasing etc, and has a temperature sensor it uses to shut down if the attacker tries the high-tech approach of heating the key to bias the output. It has much more CPU power than this device (it's using an ARM core internally, which, well, given that it's a licensed design, GCHQ would have to at least have been *subtle* about backdooring it -- but I suppose the backdoor could have been done later, at the dopant stage perhaps). ... perhaps I should say, 'the entropy key is alleged to run', because it is not verifiable and mine has never failed :) so for all I know it's not doing any of this at all!

I like my entropy key. I wish they were still in production. I should get one of these as well, just in case!

A verifiable source of random numbers

Posted Jan 29, 2015 11:06 UTC (Thu) by callegar (guest, #16148) [Link] (2 responses)

Disclaimer #1: I am the proponent of a True RNG myself and I support the idea of using chaos-based entropy sources (see http://arxiv.org/abs/1412.6067)

Disclaimer #2: I have not studied the schematic of the OneRNG well enough to assure that all I am reporting here is completely accurate. Furthermore, my attempt at proposing concepts without a heavy formalism may not be completely successful or may result what some may see as 'abuse' of certain concepts.

My sensation is that most of the hardware based RNG devices proposed in these days ultimately rely on the explicit, continuous sampling of signals from physical systems where intricate microcosmic phenomena occur in such a fashion that we can consider the quantities which we can observe and gather as completely impredictable.

The problem with this approach is that you generally end up reading information through interfaces where extremely small energy transfers are involved (in warmcat's words, you end up "measuring weak noise"). Whenever you have one such interface you may implicity open the door to tampering. It is like having an antenna that can collect not just the signals you look for, but also intentional interference. A sign of this situation is given by the fact that many of these devices are equipped with shields, since their designers are aware that unwanted energy transfers with the external environment could constitute a risk. Energy transfers from the outside could be used to cause partial saturation effects, or - more generally - to introduce biases or correlations by exploiting internal nonlinear behaviors. Another issue is that by relying on 'natural' phenomena, one must take what nature gives. There is generally no possibility to better adapt the source to the needs of the embedding environment. Conversely, it is the embedding system that needs to be adapted to the source doing acquisition and processing in the way dictated by the source (e.g. the avalance diode, the noisy resistor, the untuned RF receiver, the camera chip, etc.). Similarly, there is generally limited possibility to enlarge the set of quantities being observed to gather information on hadware faults, performance drift due to aging or tampering.

In this respect, chaos based sources may have some advantages.

- They are based on a fully deterministic model. This means that all the interfaces where information is passed from one block to another can involve sufficiently large amounts of energy to escape situations where electronics needs to be 'an art'. In very rough words, there need not be 'high impedence' nodes sensitive to interference. Consequently, there can be no need for shields (which may also help containing size, weight and cost).

- One relies on an artificial model that can be much simpler, formally understandable, tunable, adaptable and observable than many natural sources. Incidentally note that some researches claim that the 'natural systems' that we consider impredictable are probably chaotic inside. So what chaos based RNG end doing is substituting an artificial and more understandable model for a more complex one provided by nature.

- Even if also the chaotic model ultimately ends up using noise from natural phenomena, it does so in a relatively understandable way via its sensitivity to initial conditions. Incidentally note that the understanding can relatively good particularly because the artificial model lets the system order be kept very low. For certain models and in certain situations there can be even formal proofs of correct operation.

- Following up with the previous point, a notable aspect is that a chaotic model needs not to be constantly fed by entropy coming from some physical source. The fact that in any practical implementation it will necessarily end up being constantly fed by noise is just a plus. However, if one had a chaotic source operated in a completely noiseless environment, it would still behave unpredictably (beyond a certain time horizon) since no observer would be able to know its initial condition with infinite precision.

- By requiring less electronic 'art', a simple artificial chaotic model may end up in less expensive hardware and design than an acquisition system for a physical entropy source.

- The chaotic model can be purposely designed to enhance 'introspection abilities' to gather information on possible faults, misbehaviors or tampering.

As a conclusion, with this set of comments I do not want by any means to downplay the OneRNG which I consider a very valuable and interesting effort. Conversely, I hope that I have succeeded in making the LWN readership aware and curious on an alternative approach.

A verifiable source of random numbers

Posted Jan 30, 2015 8:23 UTC (Fri) by kleptog (subscriber, #1183) [Link]

For those (like me) who had never heard of chaos-based entropy sources before, the idea is that you build a circuit with some kind of feedback loop such that small variation in the input leads to a large variation in output. The example in the paper is to wire up a DAC and an ADC in an unusual way to get such a result.

AFAICT the hard part here is to prove that there are no stable orbits/hidden attractors, but perhaps it can be done. The paper quoted appears to assume idealised components.

In any case, an interesting field of research.

A verifiable source of random numbers

Posted Jan 30, 2015 11:42 UTC (Fri) by etienne (guest, #25256) [Link]

> Whenever you have one such interface you may implicity open the door to tampering.

Also, to trust that random generator, you need to be able (as root) to read the random data generated *at that level* to see if your hardware is still working or now broken (as in a broken hard disk).
You do not want a device which reverts to a predictable output when the physical random generator gives you only bit set to one, i.e. broken.
And as a user you want to be sure that physical random generator is used, nobody replaced the /dev/physical_random_generator by /dev/constant_generator...


Copyright © 2015, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds