MSR Elliptic Curve Cryptography Library

Established: June 27, 2014

MSR ECCLib is an efficient cryptography library that provides functions for computing essential elliptic curve operations on a new set of high-security curves.  All computations on secret data exhibit regular, constant-time execution, providing protection against timing and cache attacks.  The library is available for download below.

Library Features

  • MSR ECCLib supports six high-security elliptic curves proposed in [2], which cover three security levels (128-, 192-, and 256-bit security) and two curve models. The curves have a very simple and deterministic generation with minimal room for parameter manipulation.
  • It includes support for ECC functions necessary to implement most popular elliptic curve-based schemes. In particular, MSR ECCLib supports the computation of scalar multiplication for the six curves above in three variants:
    • Variable-base scalar multiplication (e.g., this is used for computing the shared key in the Diffie-Hellman key exchange).
    • Fixed-base scalar multiplication (e.g., this is used for key generation in the Diffie-Hellman key exchange).
    • Double-scalar multiplication. This operation is typically used for verifying signatures.
  • MSR ECCLib offers full protection against timing and cache attacks by executing crypto-sensitive operations in constant-time with no correlation between timing and secret data.
  • It achieves high performance without compromising security, portability and usability.
  • MSR ECCLib is supported on a range of platforms, including x64, x86, and ARM devices running Windows or Linux.

New in Version 2.0

  • Based upon feedback, MSR ECCLib 2.0 replaces the original twisted Edwards curves that were proposed in [1] with new twisted Edwards curves with a complete addition law.  See [2] and [3] for full details.

People

Portrait of Craig Costello

Craig Costello

Researcher

Portrait of Karen Easterbrook

Karen Easterbrook

Sr Principal PM Manager

Portrait of Michael Naehrig

Michael Naehrig

Principal Researcher

Portrait of Patrick Longa

Patrick Longa

Senior Researcher

Portrait of Tolga Acar

Tolga Acar

Principal Software Engineer