August, 2020

Advanced Systems Lab

Elliptic Curve Public Key Generation: Optimizing Big Number Arithmetic in Radix Representations for use in Curve25519

Elliptic Curve Diffie-Hellman Key Exchange (ECDHE) is a popular method for establishing shared secrets using public key cryptography. Curve25519 is widely adopted for ECDHE because of its various advantages like fast modular arithmetic and short but secure public keys. Generally, the public keys generated are ephemeral in nature, and so speed of generation is critical and fast computations are vital.
Public key generation using Curve25519 requires arithmetic in the field F2255-19. Fast arithmetic in this field is commonly done using so-called radix representations, in particular radix-251 and radix-225.5.
We implemented a public key generation algorithm using Curve25519 and introduced a new radix representation, radix-217. We hypothesized that a higher speedup is achievable using the radix-217 representation because of its higher operational intensity as compared to the previously introduced radix representations.
In the process of optimizing the radix-217 implementation we discussed the various grounds for optimizations and the main challenges we faced. By comparing the speedup of the optimized implementations of the various radix representations, we concluded that our hypothesis holds.

Our implementation can be found here and a written report can be found here.

Authors:

    Robin Burkhard
  • Github

  • Sabina Fischlin
    Supraja Sridhara
  • Github

  • Manuel Meinen
  • Github
  • Supervisors:

    Prof. Dr. Markus PĆ¼schel