Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2000 00:40:44 -0700 (PDT)
From:      Kris Kennaway <kris@FreeBSD.org>
To:        Mark Murray <mark@grondar.za>
Cc:        current@FreeBSD.org
Subject:   Re: randomdev entropy gathering is really weak 
Message-ID:  <Pine.BSF.4.21.0007230030230.81127-100000@freefall.freebsd.org>
In-Reply-To: <200007230727.JAA87605@grimreaper.grondar.za>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 23 Jul 2000, Mark Murray wrote:

> Your are missing the point that it is not possible to get more than
> the ${number-of-bits-ofrandomness} from any accumulator or PRNG. You
> have to draw the line somewhere; The current implementation has it
> at 256.

Uhh..a PRNG which hashes entropy samples with e.g. SHA1 and outputs the
digest once the bucket is "full" will have 1-epsilon bit of entropy per
1 bit of output. It may not be very fast depending on the rate of entropy
accumulation, but you can get as much entropy out of it as you want.

This is basically the model I am advocating for /dev/random. It's also the
alternative "basic design philosophy" described in the yarrow paper.

> > If you want to generate a cryptographic key of length n bits then you
> > really want >n bits of entropy in the random source you're deriving it
> > from, otherwise your key is actually much weaker than advertised because
> > it's easier for the attacker to attack the state of the PRNG that derived
> > it than to attack the key itself.
> 
> Aha! That is where Yarrow wins. The paper argues it much better than
> me: Section 4.1, the paragraph that begins "Yarrow takes a different
> approach...".

See "important issue" number 2 on p6. Yarrow-derived numbers are only
"good for" 256 bits of strength. Modulo reseeds, Yarrow never accumulates
more than 256 bits of entropy. Therefore you are silly to use it for
applications which require more than 256 bits of randomness.

> Where do you draw the line? I could make it Yarrow-N, only to have
> someone insist on $((N+1)) in the very next breath.

Precisely, which is why /dev/random shouldn't use Yarrow, or any other
seeded-cipher PRNG.

> With what we have, I am staking my career on the "uncrackability"
> of Blowfish-256. If that holds then Yarrow is safe. (The old one

I'm not bothered about this. My point is that, by design, Yarrow is not
suitable as a replacement for /dev/random (/dev/urandom, yes).

Kris

--
In God we Trust -- all others must submit an X.509 certificate.
    -- Charles Forsythe <forsythe@alum.mit.edu>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0007230030230.81127-100000>