ECM on Graphics Cards

  • Authors:
  • Daniel J. Bernstein;Tien-Ren Chen;Chen-Mou Cheng;Tanja Lange;Bo-Yin Yang

  • Affiliations:
  • Department of Computer Science, University of Illinois at Chicago, Chicago, USA IL 60607---7045;Institute of Information Science, Academia Sinica, Taipei, Taiwan 115-29;Department of Electrical Engineering, National Taiwan University, Taipei, Taiwan 106-70;Department of Mathematics and Computer Science, Technische Universiteit Eindhoven, Eindhoven, Netherlands 5600 MB;Institute of Information Science, Academia Sinica, Taipei, Taiwan 115-29

  • Venue:
  • EUROCRYPT '09 Proceedings of the 28th Annual International Conference on Advances in Cryptology: the Theory and Applications of Cryptographic Techniques
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper reports record-setting performance for the elliptic-curve method of integer factorization: for example, 926.11 curves/second for ECM stage 1 with B 1 = 8192 for 280-bit integers on a single PC. The state-of-the-art GMP-ECM software handles 124.71 curves/second for ECM stage 1 with B 1 = 8192 for 280-bit integers using all four cores of a 2.4 GHz Core 2 Quad Q6600. The extra speed takes advantage of extra hardware, specifically two NVIDIA GTX 295 graphics cards, using a new ECM implementation introduced in this paper. Our implementation uses Edwards curves, relies on new parallel addition formulas, and is carefully tuned for the highly parallel GPU architecture. On a single GTX 295 the implementation performs 41.88 million modular multiplications per second for a general 280-bit modulus. GMP-ECM, using all four cores of a Q6600, performs 13.03 million modular multiplications per second. This paper also reports speeds on other graphics processors: for example, 2414 280-bit elliptic-curve scalar multiplications per second on an older NVIDIA 8800 GTS (G80), again for a general 280-bit modulus. For comparison, the CHES 2008 paper "Exploiting the Power of GPUs for Asymmetric Cryptography" reported 1412 elliptic-curve scalar multiplications per second on the same graphics processor despite having fewer bits in the scalar (224 instead of 280), fewer bits in the modulus (224 instead of 280), and a special modulus (2224 *** 296 + 1).