Paper 2020/1265

Revisiting ECM on GPUs

Jonas Wloka, Jan Richter-Brockmann, Colin Stahlke, Thorsten Kleinjung, Christine Priplata, and Tim Güneysu

Abstract

Modern public-key cryptography is a crucial part of our contemporary life where a secure communication channel with another party is needed. With the advance of more powerful computing architectures – especially Graphics Processing Units (GPUs) – traditional approaches like RSA and Diffie-Hellman schemes are more and more in danger of being broken. We present a highly optimized implementation of Lenstra’s ECM algorithm customized for GPUs. Our implementation uses state-of-the-art elliptic curve arithmetic and optimized integer arithmetic while providing the possibility of arbitrarily scaling ECM’s parameters allowing an application even for larger discrete logarithm problems. Furthermore, the proposed software is not limited to any specific GPU generation and is to the best of our knowledge the first implementation supporting multiple device computation. To this end, for a bound of B1=8,192 and a modulus size of 192 bit, we achieve a throughput of 214 thousand ECM trials per second on a modern RTX 2080 Ti GPU considering only the first stage of ECM. To solve the Discrete Logarithm Problem for larger bit sizes, our software can easily support larger parameter sets such that a throughput of 2,781 ECM trials per second is achieved using B1=50,000, B2=5,000,000, and a modulus size of 448 bit.

Metadata
Available format(s)
PDF
Category
Public-key cryptography
Publication info
Published elsewhere. 19th International Conference on Cryptology and Network Security
Keywords
ECMCryptanalysisPrime FactorizationGPU
Contact author(s)
jan richter-brockmann @ rub de
jowlo @ uni-bremen de
History
2020-10-14: received
Short URL
https://ia.cr/2020/1265
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2020/1265,
      author = {Jonas Wloka and Jan Richter-Brockmann and Colin Stahlke and Thorsten Kleinjung and Christine Priplata and Tim Güneysu},
      title = {Revisiting ECM on GPUs},
      howpublished = {Cryptology ePrint Archive, Paper 2020/1265},
      year = {2020},
      note = {\url{https://eprint.iacr.org/2020/1265}},
      url = {https://eprint.iacr.org/2020/1265}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.