At 9:02 AM +0300 8/11/99, Osma Ahvenlampi wrote:
>Arnold G. Reinhold <[EMAIL PROTECTED]> writes:
> > 1. Mr. Kelsey's argument that entropy should only be added in large
> > quanta is compelling, but I wonder if it goes far enough. I would
> > argue that entropy collected from different sources (disk, network,
> > sound card, user input, etc.) should be collected in separate pools,
> > with each pool taped only when enough entropy has been collected in
> > that pool.
>
>You have to realize that /dev/random entropy collection doesn't get
>one bit, add it to the pool, and increment the entropy counter. What
>happens is that it gets a notification for an interrupt along with the
>interrupt number, the keyboard scancode, or similar, reads a
>high-resolution clock (and gets 32 bits from there), and mixes these
>two numbers (40 bits, usually, I believe) to the pool, and tries to
>estimate how much entropy the time contained (by calculating first,
>second and third-order deltas and taking the smallest, I recall).
>
>So, for each 40 bits mixed into the pool, a few bits of entropy is
>credited. How do you propose quantizing this? Collecting all of the
>bits in a staging area and adding them when the entropy count is big
>enough?

That's the general idea. The details of "adding them" need to be discussed.

>That could mean a kilobit or more of staging area, and per
>your suggestion the driver would have to have several of them. Gets
>pretty unwieldy, quickly.

Maybe you'd need a killobyte all together? That seems quite wieldy to 
me. Random number generation is one of the major vulnerabilities of 
modern cryptographic systems, maybe the biggest. One KB is a very 
cheap price to pay for a significant improvement in RNG security.

>Also, this design means that there's always at least 32 bits mixed
>into the pool at once, and it might not always increase the entropy
>count at all. In a sense, /dev/random already does quantized
>collection.

That idea won't fly, I'm afraid. We're talking about waiting until 
you accumulate, say, 128 bits of entropy (some might prefer 256 
bits), not raw data bits.

Arnold Reinhold

Reply via email to