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 [1], 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.

New in Version 1.1

    • GCC support on Linux:  The new pre-assembly files .S located in <LibraryPath>/MSR_ECCLib/AMD64 are compatible with both GNU GCC (GAS assembler) and MSVS (MASM assembler) compilers
    • New API for ephemeral elliptic curve Diffie-Hellman key exchange (ECDHE)
    • New tests for ECDHE
    • Simplified API for some ECC scalar multiplication functions
    • Extended support to any x64 processor

Reference:

[1] Joppe W. Bos, Craig Costello, Patrick Longa and Michael Naehrig, “Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis”, Cryptology ePrint Archive: Report 2014/130. Available at: http://eprint.iacr.org/2014/130

Downloads
Publications