DPF-ECC: Accelerating Elliptic Curve Cryptography with Floating-Point Computing Power of GPUs

Driven by artificial intelligence (AI) and computer vision industries, Graphics Processing Units (GPUs) are now rapidly achieving extraordinary computing power. In particular, the floating-point computing power, which is heavily relied on by graphics rendering and AI computation workload, is developing much faster in GPUs. Meanwhile, in many fields such as ecommerce and online finance, the demand for cryptographic operations for secure communications and authentication is also expanding.In this contribution, targeting the important cryptographic primitives widely used in TLS 1.3, etc., we implement Curve25519 and Edwards25519 with GPUs’ floating-point computing power, where various performance optimization methods are customized for the target platform, including novel big-number representations combined with a new floating-point-based computing algorithm, efficient merged reduction strategies, and curve-level acceleration. This paper reports record-setting performance for the elliptic-curve method: on TITAN V, we respectively achieve 7.21 and 77.30 million operations per second of unknown and known point multiplication of Edwards25519, and 13.55 million operations per second of point multiplication of Curve25519. To the best of our knowledge, this contribution is the first to show that floating-point-based ECC implementations can outperform the integer-based ones by a huge margin. The experimental result in Tesla P100 achieves over double performance of the existing fastest integer work on the same platform, and the result in TITAN V sets a record for the throughput which is 4.43 times better than the second.

[1]  Daniel J. Bernstein,et al.  Curve25519: New Diffie-Hellman Speed Records , 2006, Public Key Cryptography.

[2]  Adam Langley,et al.  Elliptic Curves for Security , 2016, RFC.

[3]  Majid Ahmadi,et al.  A GPU implementation of the Montgomery multiplication algorithm for elliptic curve cryptography , 2013, 2013 IEEE International Symposium on Circuits and Systems (ISCAS2013).

[4]  Tim Güneysu,et al.  Exploiting the Power of GPUs for Asymmetric Cryptography , 2008, CHES.

[5]  Eric Rescorla,et al.  The Transport Layer Security (TLS) Protocol Version 1.3 , 2018, RFC.

[6]  Julio César López-Hernández,et al.  Fast Implementation of Curve25519 Using AVX2 , 2015, LATINCRYPT.

[7]  Yuan Zhao,et al.  An Efficient Elliptic Curve Cryptography Signature Server With GPU Acceleration , 2017, IEEE Transactions on Information Forensics and Security.

[8]  Zhe Liu,et al.  High-Speed Elliptic Curve Cryptography on the NVIDIA GT200 Graphics Processing Unit , 2014, ISPEC.

[9]  Charles C. Weems,et al.  sDPF-RSA: Utilizing Floating-point Computing Power of GPUs for Massive Digital Signature Computations , 2018, 2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[10]  P. L. Montgomery Speeding the Pollard and elliptic curve methods of factorization , 1987 .

[11]  Tatu Ylönen,et al.  The Secure Shell (SSH) Protocol Architecture , 2006, RFC.

[12]  Yuan Zhao,et al.  Exploiting the Floating-Point Computing Power of GPUs for RSA , 2014, ISC.

[13]  Tibor Juhas The use of elliptic curves in cryptography , 2007 .

[14]  Jingqiang Lin,et al.  Towards High-performance X25519/448 Key Agreement in General Purpose GPUs , 2018, 2018 IEEE Conference on Communications and Network Security (CNS).

[15]  Tanja Lange,et al.  Faster Addition and Doubling on Elliptic Curves , 2007, ASIACRYPT.

[16]  H. Edwards A normal form for elliptic curves , 2007 .

[17]  Ç. Koç Analysis of sliding window techniques for exponentiation , 1995 .

[18]  Simon Josefsson,et al.  Edwards-Curve Digital Signature Algorithm (EdDSA) , 2017, RFC.

[19]  Yuan Zhao,et al.  Utilizing the Double-Precision Floating-Point Computing Power of GPUs for RSA Acceleration , 2017, Secur. Commun. Networks.

[20]  Chen,et al.  The billion-mulmod-per-second PC , 2009 .

[21]  T. J. Dekker,et al.  A floating-point technique for extending the available precision , 1971 .

[22]  Feng Hao J-PAKE: Password-Authenticated Key Exchange by Juggling , 2017, RFC.

[23]  Joppe W. Bos Low-Latency Elliptic Curve Scalar Multiplication , 2012, International Journal of Parallel Programming.

[24]  Charles C. Weems,et al.  Faster Modular Exponentiation Using Double Precision Floating Point Arithmetic on the GPU , 2018, 2018 IEEE 25th Symposium on Computer Arithmetic (ARITH).

[25]  Yuan Zhao,et al.  Exploiting the Potential of GPUs for Modular Multiplication in ECC , 2014, WISA.

[26]  Georg Sigl,et al.  Low-latency X25519 hardware implementation: breaking the 100 microseconds barrier , 2017, Microprocess. Microsystems.

[27]  Jean-Marie Chauvet,et al.  Fast GPGPU-Based Elliptic Curve Scalar Multiplication , 2014, IACR Cryptol. ePrint Arch..

[28]  Tanja Lange,et al.  Twisted Edwards Curves , 2008, AFRICACRYPT.

[29]  N. Koblitz Elliptic curve cryptosystems , 1987 .

[30]  Tanja Lange,et al.  ECM on Graphics Cards , 2009, IACR Cryptol. ePrint Arch..