journal article Open Access Feb 05, 2024

Armed with Faster Crypto: Optimizing Elliptic Curve Cryptography for ARM Processors

Sensors Vol. 24 No. 3 pp. 1030 · MDPI AG
View at Publisher Save 10.3390/s24031030
Abstract
Elliptic curve cryptography is a widely deployed technology for securing digital communication. It is the basis of many cryptographic primitives such as key agreement protocols, digital signatures, and zero-knowledge proofs. Fast elliptic curve cryptography relies on heavily optimised modular arithmetic operations, which are often tailored to specific micro-architectures. In this article, we study and evaluate optimisations of the popular elliptic curve Curve25519 for ARM processors. We specifically target the ARM NEON single instruction, multiple data (SIMD) architecture, which is a popular architecture for modern smartphones. We introduce a novel representation for 128-bit NEON SIMD vectors, optimised for SIMD parallelisation, to accelerate elliptic curve operations significantly. Leveraging this representation, we implement an extended twisted Edwards curve Curve25519 back-end within the popular Rust library “curve25519-dalek”. We extensively evaluate our implementation across multiple ARM devices using both cryptographic benchmarks and the benchmark suite available for the Signal protocol. Our findings demonstrate a substantial back-end speed-up of at least 20% for ARM NEON, along with a noteworthy speed improvement of at least 15% for benchmarked Signal functions.
Topics

No keywords indexed for this article. Browse by subject →

References
25
[1]
Rescorla, E. (2022, December 16). The Transport Layer Security (TLS) Protocol Version 1.3. Request for Comments RFC 8446, Internet Engineering Task Force. Available online: https://datatracker.ietf.org/doc/rfc8446.
[2]
Sarafa, R. (2021, April 27). New Features Coming to Signal Groups. Available online: https://signal.org/blog/new-groups/.
[3]
Lund, J. (2021, April 27). Technology Preview: Sealed Sender for Signal. Available online: https://signal.org/blog/sealed-sender/.
[4]
Bünz, B., Bootle, J., Boneh, D., Poelstra, A., Wuille, P., and Maxwell, G. (2018, January 20–24). Bulletproofs: Short Proofs for Confidential Transactions and More. Proceedings of the 2018 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA. 10.1109/sp.2018.00020
[5]
Yung, M., Dodis, Y., Kiayias, A., and Malkin, T. (2006, January 24–26). Curve25519: New Diffie-Hellman Speed Records. Proceedings of the International Workshop on Public Key Cryptography, New York, NY, USA. 10.1007/11745853
[6]
Pieprzyk "Twisted Edwards Curves Revisited" Advances in Cryptology—ASIACRYPT 2008 (2008) 10.1007/978-3-540-89255-7_20
[7]
de Valence, H., and Lovecruft, I. (2018, June 17). Curve25519-Dalek: A Pure-Rust Implementation of Group Operations on Ristretto and Curve25519. Available online: https://github.com/dalek-cryptography/curve25519-dalek.
[8]
Rust Team (2023, October 06). Rust Programming Language. Available online: https://www.rust-lang.org/.
[9]
Prouff, E., and Schaumont, P. (2012, January 9–12). NEON Crypto. Proceedings of the Cryptographic Hardware and Embedded Systems—CHES 2012, Leuven, Belgium. Lecture Notes in Computer Science. 10.1007/978-3-642-33027-8
[10]
Blancquaert, R. (2022). Elliptic Curve Field Arithmetic Speed-up Using SIMD Instructions. [Master’s Thesis, Vrije Universiteit Brussel].
[11]
Bos, J.W., Kleinjung, T., and Page, D. (2021). Computational Cryptography: Algorithmic Aspects of Cryptology, Cambridge University Press. Available online: www.cambridge.org/9781108795937. 10.1017/9781108854207
[12]
Hamburg, M. (2022, November 30). Fast and Compact Elliptic-Curve Cryptography. Available online: https://eprint.iacr.org/2012/309.
[13]
Dahab "High-Performance Implementation of Elliptic Curve Cryptography Using Vector Instructions" ACM Trans. Math. Softw. (2019)
[14]
Dunkelman "High-Throughput Elliptic Curve Cryptography Using AVX2 Vector Instructions" Proceedings of the Selected Areas in Cryptography (2021) 10.1007/978-3-030-81652-0_27
[15]
Goetschmann, P., Moser, F., Streun, F., and Tobler, L. (2020). Fast Implementations of Curve25519 on Intel Skylake, Department of Computer Science, ETH Zürich. Available online: https://www.semanticscholar.org/paper/FAST-IMPLEMENTATIONS-OF-CURVE25519-ON-INTEL-SKYLAKE-Goetschmann-Moser/6609e99a4164630fd8301a068f06a4b6e56ae00b.
[16]
Dong "EC-ECC: Accelerating Elliptic Curve Cryptography for Edge Computing on Embedded GPU TX2" ACM Trans. Embed. Comput. Syst. (2022) 10.1145/3492734
[17]
Luc "Improving the Efficiency of Point Arithmetic on Elliptic Curves Using ARM Processors and NEON" Int. J. Netw. Secur. (2022)
[18]
Avanzi, R., and Heys, H. (2016, January 10–12). FourQNEON: Faster Elliptic Curve Scalar Multiplications on ARM Processors. Proceedings of the Selected Areas in Cryptography—SAC 2016, St. John’s, NL, Canada. Lecture Notes in Computer Science. 10.1007/978-3-319-69453-5
[19]
Naccache, D., and Paillier, P. (2002, January 12–14). Weierstraß Elliptic Curves and Side-Channel Attacks. Proceedings of the Public Key Cryptography, Paris, France. Lecture Notes in Computer Science. 10.1007/3-540-45664-3
[20]
Gennaro "Decaf: Eliminating Cofactors Through Point Compression" Advances in Cryptology—CRYPTO 2015 (2015) 10.1007/978-3-662-47989-6_34
[21]
Hamburg, M., de Valence, H., Lovecruft, I., and Arcieri, T. (2019, May 03). The Ristretto Group. Available online: https://ristretto.group.
[22]
Fan, J., Guo, X., De Mulder, E., Schaumont, P., Preneel, B., and Verbauwhede, I. (2010, January 13–14). State-of-the-art of secure ECC implementations: A survey on known side-channel attacks and countermeasures. Proceedings of the 2010 IEEE International Symposium on Hardware-Oriented Security and Trust (HOST), Anaheim, CA, USA. 10.1109/hst.2010.5513110
[23]
Abarzúa, R., Valencia, C., and López, J. (2024, February 04). Survey for Performance & Security Problems of Passive Side-Channel Attacks Countermeasures in ECC. Cryptology ePrint Archive, Paper 2019/010. Available online: https://eprint.iacr.org/2019/010.
[24]
Rust Foundation (2023, November 21). Packed_simd. The Rust Programming Language. Available online: https://github.com/rust-lang/packed_simd.
[25]
Heisler, B. (2023, November 21). Criterion.Rs: Statistics-Driven Microbenchmarking in Rust. Available online: https://github.com/bheisler/criterion.rs.
Related

You May Also Like

SECOND: Sparsely Embedded Convolutional Detection

Yan Yan, Yuyin Mao · 2018

2,824 citations

Metal Oxide Gas Sensors: Sensitivity and Influencing Factors

Chengxiang Wang, Longwei Yin · 2010

2,595 citations

Machine Learning in Agriculture: A Review

Konstantinos Liakos, Patrizia Busato · 2018

2,472 citations

Wearable Electronics and Smart Textiles: A Critical Review

Matteo Stoppa, Alessandro Chiolerio · 2014

1,823 citations