Coppersmith method explained

The Coppersmith method, proposed by Don Coppersmith, is a method to find small integer zeroes of univariate or bivariate polynomials modulo a given integer. The method uses the Lenstra–Lenstra–Lovász lattice basis reduction algorithm (LLL) to find a polynomial that has the same zeroes as the target polynomial but smaller coefficients.

In cryptography, the Coppersmith method is mainly used in attacks on RSA when parts of the secret key are known and forms a base for Coppersmith's attack.

Approach

Coppersmith's approach is a reduction of solving modular polynomial equations to solving polynomials over the integers.

Let

F(x)=

n+a
x
n-1

xn-1+\ldots+a1x+a0

and assume that

F(x0)\equiv0\pmod{M}

for someinteger

|x0|<M1/n

.Coppersmith’s algorithm can be used to find this integer solution

x0

.

Finding roots over is easy using, e.g., Newton's method, but such an algorithm does not work modulo a composite number . The idea behind Coppersmith’s method is to find a different polynomial related to that has the same root

x0

modulo, but has only small coefficients. If the coefficients and

x0

are small enough that

|f(x0)|<M

over the integers, then we have

f(x0)=0

, so that

x0

is a root of over and can be found easily. More generally, we can find a polynomial

f(x)

with the same root

x0

modulo some power

Ma

of, satisfying

|f(x0)|<Ma

, and solve for

x0

as above.

Coppersmith's algorithm uses the Lenstra–Lenstra–Lovász lattice basis reduction algorithm (LLL) to construct the polynomial with small coefficients.Given, the algorithm constructs polynomials

p1(x),p2(x),...,pn(x)

that all have the same root

x0

modulo

Ma

, where is some integer chosen based on the degree of and the size of

x0

.Any linear combination of these polynomials also has

x0

as a root modulo

Ma

.

The next step is to use the LLL algorithm to construct a linear combination

f(x)=\sumcipi(x)

of the

pi(x)

so that the inequality

|f(x0)|<Ma

holds.Now standard factorization methods can calculate the zeroes of

f(x)

over the integers.

Implementations

Coppersmith's method for univariate polynomials is implemented in

References