Coppersmith method

The Coppersmith method, proposed by Don Coppersmith, is a method to find small integer zeroes of univariate or bivariate polynomials, or their small zeroes 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 and assume that for some integer . Coppersmith’s algorithm can be used to find this integer solution .

Finding roots over Q is easy using, e.g., Newton's method, but such an algorithm does not work modulo a composite number M. The idea behind Coppersmith’s method is to find a different polynomial f related to F that has the same root modulo M, but has only small coefficients. If the coefficients and are small enough that over the integers, then we have , so that is a root of f over Q and can be found easily. More generally, we can find a polynomial with the same root modulo some power of M, satisfying , and solve for as above.

Coppersmith's algorithm uses the Lenstra–Lenstra–Lovász lattice basis reduction algorithm (LLL) to construct the polynomial f with small coefficients. Given F, the algorithm constructs polynomials that all have the same root modulo , where a is some integer chosen based on the degree of F and the size of . Any linear combination of these polynomials also has as a root modulo .

The next step is to use the LLL algorithm to construct a linear combination of the so that the inequality holds. Now standard factorization methods can calculate the zeroes of over the integers.

Implementations

Coppersmith's method for univariate polynomials is implemented in

  • Magma as the function SmallRoots;
  • PARI/GP as the function zncoppersmith;
  • SageMath as the method small_roots.

References

  • Coppersmith, D. (1996). "Finding a Small Root of a Univariate Modular Equation". Advances in Cryptology — EUROCRYPT '96. Lecture Notes in Computer Science. Vol. 1070. pp. 155–165. doi:10.1007/3-540-68339-9_14. ISBN 978-3-540-61186-8.
  • Coppersmith, D. (1996). "Finding a Small Root of a Bivariate Integer Equation; Factoring with High Bits Known". Advances in Cryptology — EUROCRYPT '96. Lecture Notes in Computer Science. Vol. 1070. pp. 178–189. doi:10.1007/3-540-68339-9_16. ISBN 978-3-540-61186-8.
  • Coron, J. S. (2004). "Finding Small Roots of Bivariate Integer Polynomial Equations Revisited" (PDF). Advances in Cryptology - EUROCRYPT 2004. Lecture Notes in Computer Science. Vol. 3027. pp. 492–505. doi:10.1007/978-3-540-24676-3_29. ISBN 978-3-540-21935-4.
  • Bauer, A.; Joux, A. (2007). "Toward a Rigorous Variation of Coppersmith's Algorithm on Three Variables". Advances in Cryptology - EUROCRYPT 2007. Lecture Notes in Computer Science. Vol. 4515. pp. 361–378. doi:10.1007/978-3-540-72540-4_21. ISBN 978-3-540-72539-8.
  • Coron, J. S. (2007). "Finding Small Roots of Bivariate Integer Polynomial Equations: A Direct Approach" (PDF). Advances in Cryptology - CRYPTO 2007. Lecture Notes in Computer Science. Vol. 4622. pp. 379–394. doi:10.1007/978-3-540-74143-5_21. ISBN 978-3-540-74142-8.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.