[Cryptography] cheap sources of entropy

John Denker jsd at av8n.com
Thu Jan 30 00:36:39 EST 2014


I wrote:
 
>> One well-calibrated well-defended well-monitored entropy source
>> makes incomparably more sense than an arbitrarily complicated
>> conglomeration of sucky sources.            [A]

On 01/29/2014 09:11 PM, dan at geer.org wrote:

> Recalibrating first principles for a moment, please.  My understanding
> is that a mix of N bit streams will be truly unpredictable if any 1 of
> the N bit streams is truly unpredictable.         [B]

Well, that's basically the right idea.  I will assume(*) that
by "mix" you mean something like a good cryptologic hash.

Let's explore the consequences:

As a corollary, if you have one truly completely unpredictable
input, the others don't help.  This is consistent with my
statement [A].

  If you want to talk about redundancy, we need to have a muuuuch
  more detailed discussion.  If you're serious, we would have
  to work out a full fault tree to check for correlated failures.

Conversely, there are a lot of people -- in this forum and
elsewhere -- who seem to think they can make a silk purse out 
of a sow's ear, if only they can get their hands on "enough" 
sow's ears.  There is nothing in statement [B] to support this 
approach.  Basic engineering principles and experience indicate 
that this is not, in fact, a viable approach.  This is consistent
with my statement [A].

  If you want to talk about combining multiple *good* entropy
  sources, we can do that.  However, any one of them would 
  serve as the basis for a proper HRNG.  Combining them just 
  improves the output rate, without changing the principle of
  the thing.  We are talking about multiple good, well-calibrated
  well-defended well-monitored sources.  All this is consistent
  with my statement [A].


> If that is incorrect, what am I missing? 

(*) Not meaning to derail the conversation, but there are lots
of "mix" functions, not all of which are suitable for this
application.  For example, if you /collate/ the inputs, the
output could very well be far from unpredictable, even if one
of the inputs is truly unpredictable.

Also, if you take two inputs, each of which /by itself/ is
completely unpredictable, bad things might happen if you "mix"
them using XOR, since they might be correlated.  Let's not even 
discuss foolish "mix" functions such as Boolean AND.

The thing I don't understand is why any of this should be
considered controversial.



More information about the cryptography mailing list