Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
MSR Elliptic Curve Cryptography Library

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 at the link 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:
  1. Variable-base scalar multiplication (e.g., this is used for computing the shared key in the Diffie-Hellman key exchange).
  2. Fixed-base scalar multiplication (e.g., this is used for key generation in the Diffie-Hellman key exchange).
  3. 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.


[1] Joppe W. Bos, Craig Costello, Patrick Longa and Michael Naehrig, “Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis”, in Journal of Cryptographic Engineering, 2015. Available at:

[2] Joppe Bos, Craig Costello, Patrick Longa, and Michael Naehrig, "Specification of Curve Selection and Supported Curve Parameters in MSR ECCLib", Microsoft Research Tech Report, available at: 

[3] Craig Costello, Patrick Longa, and Michael Naehrig, "A brief discussion on selecting new elliptic curves", Microsoft Research Tech Report MSR-TR-2015-46, available at