Why does gpg use so much entropy from /dev/random?

Philip Potter philip.g.potter at gmail.com
Fri Apr 5 18:25:02 CEST 2013


Hi Werner,

Thanks very much for your response. I think I'll take some time to digest it :)

Phil

On 2 April 2013 11:52, Werner Koch <wk at gnupg.org> wrote:
> On Sun, 31 Mar 2013 11:45, philip.g.potter at gmail.com said:
>
>> Can anyone shed any light on this? Why does GPG use more entropy than
>> /dev/random says it should?
>
> Which /dev/random - there are hundreds of variants of that device all
> with other glitches.  Thus GnuPG has always used /dev/random only as a
> source of entropy to seed its own RNG:
>
>   This random number generator is loosely modelled after the one
>   described in Peter Gutmann's paper: "Software Generation of
>   Practically Strong Random Numbers". at footnote{Also described in chapter
>   6 of his book "Cryptographic Security Architecture", New York, 2004,
>   ISBN 0-387-95387-6.}
>
>   A pool of 600 bytes is used and mixed using the core RIPE-MD160 hash
>   transform function.  Several extra features are used to make the
>   robust against a wide variety of attacks and to protect against
>   failures of subsystems.  The state of the generator may be saved to a
>   file and initially seed form a file.
>
>   Depending on how Libgcrypt was build the generator is able to select
>   the best working entropy gathering module.  It makes use of the slow
>   and fast collection methods and requires the pool to initially seeded
>   form the slow gatherer or a seed file.  An entropy estimation is used
>   to mix in enough data from the gather modules before returning the
>   actual random output.  Process fork detection and protection is
>   implemented.
>
> GPG uses ~/.gnupg/random_seed but it needs to creater it first.  For
> generating keys it also makes sure to put in a lot of new entropy just
> to be safe.  Better be safe than sorry (cf. the recent NetBSD problem).
>
>
> Salam-Shalom,
>
>    Werner
>
> --
> Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.
>



More information about the Gnupg-users mailing list