Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2000 09:27:27 +0200
From:      Mark Murray <mark@grondar.za>
To:        Kris Kennaway <kris@FreeBSD.org>
Cc:        current@FreeBSD.org
Subject:   Re: randomdev entropy gathering is really weak 
Message-ID:  <200007230727.JAA87605@grimreaper.grondar.za>
In-Reply-To: <Pine.BSF.4.21.0007221504060.26717-100000@freefall.freebsd.org> ; from Kris Kennaway <kris@FreeBSD.org>  "Sat, 22 Jul 2000 15:11:39 MST."
References:  <Pine.BSF.4.21.0007221504060.26717-100000@freefall.freebsd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
> On Sat, 22 Jul 2000, Mark Murray wrote:
> 
> > > So what it if I want/need 257 bits? :-)
> > 
> > Read them. You'll get them. If you want higher quality randomness than
> > Yarrow gives, read more than once. Do other stuff; play. Don't get stuck
> > in the "I have exhausted the randomness pool" loop; Yarrow does not play
> > that game.
> 
> I think you're missing the point. The only way I can get a random number
> with more than n bits of entropy out of Yarrow-n is if I sample either
> side of a reseed operation, which in general comes down to timing
> guesswork and having to make assumptions about the PRNG implementation.

I understand that. :-)

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.

> 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...".

> > We currently have Yarrow-256(Blowfish); wanna make it Yarrow-1024? I could
> > make it so.
> 
> Well, if we did that then how about generating 2048-bit keys? :-)

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.

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
was MD5, with all its weaknesses such as birthday attacks, and
blocking added to compensate for folk raping it for internal state;
this blocking was compromised by the non-blocking /dev/urandom. The
design was too simple. The current design has multiple accumulators,
dual pools, and cryptographically overseen reseed mechanism; on top
of that, the output is encrypted in its own right, so there is added
protection against folk guessing the internal state.).

M
--
Mark Murray
Join the anti-SPAM movement: http://www.cauce.org


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?200007230727.JAA87605>