[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Truly Stealthy PGP



From: [email protected] (Eric Hughes)
> What I suggest is making the exponent (the encrypted session key)
> completely random over the length assigned to it, since that's
> visible, and just live with a slightly non-flat distribution of
> exponents mod n.  It turns out that this can be made to work just
> fine.
> 
> n is the modulus.  Divide L by n to get L = t * n + s, s in [0,n).
> Assume x is random in [0,L).  The entropy of x mod n is
>    E = log L/t - s(t+1)/L log( 1 + 1/t )
> 
> What is the smallest value of E?  In other words, what's the upper
> bound of the randomness we can lose?  It happens when when t = 1 and
> when n = L/2+1.  This maximize the expression in t and maximizes s at
> n-2.  This minimum value of E is
> 
>    E_min = log L - ( ln 2 - 2/L ln 2 )
> 
> In other words, the most entropy we can lose is two bits.  That's
> right, only two bits.  Since the entropy of the session key is the
> length of the modulus, for a 1000 bit key the entropy loss is
> negligible.

I'm not sure the point of this entropy calculation.  For the case n =
L/2+1, t=1, it seems to me that the RSA-encrypted session key (sk^e mod n)
is never going to have the high bit set, so with K such messages it should
be possible to tell that something is going on with probability 1 - 2^-K.

> Therefore, my recommendation is that the session key representation be
> chosen randomly over [0,2^k) and to use as an actual session key this
> value mod n.  The effective entropy loss is small enough not to worry
> about.
> 
> Eric
> 

If the session key is chosen from [0,L), still the encrypted session
key m = sd^e mod n will be uniform in [0,n).  I don't quite follow here
how exactly we go from something uniform in [0,n) to something uniform in
[0,L), if that is what Eric is proposing.

Hal