Coppersmith's attack explained

Coppersmith's attack describes a class of cryptographic attacks on the public-key cryptosystem RSA based on the Coppersmith method. Particular applications of the Coppersmith method for attacking RSA include cases when the public exponent e is small or when partial knowledge of a prime factor of the secret key is available.

RSA basics

See main article: RSA (algorithm).

The public key in the RSA system is a tuple of integers

(N,e)

, where N is the product of two primes p and q. The secret key is given by an integer d satisfying

ed\equiv1\pmod{(p-1)(q-1)}

; equivalently, the secret key may be given by

dp\equivd\pmod{p-1}

and

dq\equivd\pmod{q-1}

if the Chinese remainder theorem is used to improve the speed of decryption, see CRT-RSA. Encryption of a message M produces the ciphertext

C\equivMe\pmod{N}

, which can be decrypted using

d

by computing

Cd\equivM\pmod{N}

.

Low public exponent attack

In order to reduce encryption or signature verification time, it is useful to use a small public exponent (

e

).[1] In practice, common choices for

e

are 3, 17 and 65537

(216+1)

. These values for e are Fermat primes, sometimes referred to as

F0,F2

and

F4

respectively

(Fx=

2x
2

+1)

. They are chosen because they make the modular exponentiation operation faster. Also, having chosen such

e

, it is simpler to test whether

\gcd(e,p-1)=1

and

\gcd(e,q-1)=1

while generating and testing the primes in step 1 of the key generation. Values of

p

or

q

that fail this test can be rejected there and then. (Even better: if e is prime and greater than 2, then the test

p\bmode\ne1

can replace the more expensive test

\gcd(p-1,e)=1

.)

m

is very short, then the RSA function may be easy to invert, which makes certain attacks possible.Padding schemes ensure that messages have full lengths, but additionally choosing the public exponent

e=216+1

is recommended. When this value is used, signature verification requires 17 multiplications, as opposed to about 25 when a random

e

of similar size is used. Unlike low private exponent (see Wiener's attack), attacks that apply when a small

e

is used are far from a total break, which would recover the secret key d. The most powerful attacks on low public exponent RSA are based on the following theorem, which is due to Don Coppersmith.

Håstad's broadcast attack

The simplest form of Håstad's attack is presented to ease understanding.[2] The general case uses the Coppersmith method.

Suppose one sender sends the same message

M

in encrypted form to a number of people

P1;P2;...;Pk

, each using the same small public exponent

e

, say

e=3

, and different moduli

\left\langleNi,e\right\rangle

. A simple argument shows that as soon as

k\ge3

ciphertexts are known, the message

M

is no longer secure: Suppose Eve intercepts

C1,C2

, and

C3

, where

Ci\equivM3\pmod{Ni}

. We may assume

\gcd(Ni,Nj)=1

for all

i,j

(otherwise, it is possible to compute a factor of one of the numbers

Ni

by computing

\gcd(Ni,Nj)

.) By the Chinese remainder theorem, she may compute

C\in

*
Z
N1N2N3
such that

C\equivCi\pmod{Ni}

. Then

C\equiv

3\pmod{N
M
1

N2N3}

; however, since

M<Ni

for all

i

, we have

M3<N1N2N3

. Thus

C=M3

holds over the integers, and Eve can compute the cube root of

C

to obtain

M

.

For larger values of

e

, more ciphertexts are needed, particularly,

e

ciphertexts are sufficient.

Generalizations

Håstad also showed that applying a linear padding to

M

prior to encryption does not protect against this attack. Assume the attacker learns that

Ci=

e
f
i(M)
for

1\leqi\leqk

and some linear function

fi

, i.e., Bob applies a pad to the message

M

prior to encrypting it so that the recipients receive slightly different messages. For instance, if

M

is

m

bits long, Bob might encrypt

Mi=i2m+M

and send this to the

i

-th recipient.

Mi

from all the ciphertext with similar methods. In more generality, Håstad proved that a system of univariate equations modulo relatively prime composites, such as applying any fixed polynomial

gi(M)\equiv0\pmod{Ni}

, could be solved if sufficiently many equations are provided. This attack suggests that randomized padding should be used in RSA encryption.

Franklin–Reiter related-message attack

N

, then it is possible to recover both of them. The attack was originally described with public exponent

e=3

, but it works more generally (with increasing cost as

e

grows).

Let

\left\langleN;ei\right\rangle

be Alice's public key. Suppose

M1;M2\inZN

are two distinct messages satisfying

M1\equivf(M2)\pmod{N}

for some publicly known polynomial

f\inZN[x]

. To send

M1

and

M2

to Alice, Bob may naively encrypt the messages and transmit the resulting ciphertexts

C1;C2

. Eve can easily recover

M1;M2

, given

C1;C2

, by using the following theorem:

Coppersmith’s short-pad attack

Like Håstad’s and Franklin–Reiter’s attacks, this attack exploits a weakness of RSA with public exponent

e=3

. Coppersmith showed that if randomized padding suggested by Håstad is used improperly, then RSA encryption is not secure.

Suppose Bob sends a message

M

to Alice using a small random padding before encrypting it. An attacker, Eve, intercepts the ciphertext and prevents it from reaching its destination. Bob decides to resend

M

to Alice because Alice did not respond to his message. He randomly pads

M

again and transmits the resulting ciphertext. Eve now has two ciphertexts corresponding to two encryptions of the same message using two different random pads.

Even though Eve does not know the random pad being used, she still can recover the message

M

by using the following theorem, if the random padding is too short.

See also

Notes and References

  1. Boneh . Dan . 1999 . Twenty years of attacks on the RSA cryptosystem . Notices of the American Mathematical Society . 46 . 2 . 203–213.
  2. Glenn Durfee, Cryptanalysis of RSA Using Algebraic and Lattice Methods.