Subject: [Cfrg] V1.1 of MSR ECCLib for NUMS Curves library released (now supporting GCC on Linux)

From: Brian LaMacchia <[email-masked]>
Date: Sun, 20 Jul 2014 18:56:25 +0000

Folks,

Microsoft Research is pleased to announce the release of v1.1 of the MSR Elliptic Curve Cryptography Library for NUMS curves.  Please visit

http://research.microsoft.com/en-us/projects/nums/

for full details and download links.  New features in v1.1 include:

*         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

We welcome questions/comments/feedback on this library; please send them to [email-masked]<mailto:[email-masked]>.

Thanks,

                                                                                --bal

-----Original Message-----
From: Brian LaMacchia
Sent: Monday, June 30, 2014 3:58 AM
To: [email-masked]; [email-masked]
Subject: Announcing the availability of the MSR Elliptic Curve Cryptography Library for NUMS Curves

Dear members of the IRTF CFRG and the IETF TLS WG,

On behalf of the Microsoft Research ECCLib Project, I am pleased to announce the first release of the Microsoft Research Elliptic Curve Cryptography Library (ECCLib) for NUMS ("Nothing Up My Sleeve") curves.  We are releasing ECCLib under the Apache 2.0 License.  Here is a link to the project page and download location:

http://research.microsoft.com/en-us/projects/nums/

The MSR ECCLib is an efficient cryptography library that provides functions for computing essential elliptic curve operations on a new set of high-security curves as previously described in [1] and presented at the CFRG Spring 2014 Interim Meeting (see [2] for a copy of the slides from that presentation).  All computations in ECCLib on secret data exhibit regular, constant-time execution, providing protection against timing and cache attacks.

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.  ECCLib includes all the ECC functions necessary to implement most popular elliptic curve-based schemes. In particular, 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.

As both the CFRG and the TLS WG are currently considering additional curves for elliptic curve cryptography, we hope that this contribution (in addition to the technical paper previously presented) will further a thoughtful discussion concerning what new curves CFRG should recommend and TLS should consider for inclusion.  We welcome questions/comments/feedback on this library; please send them to [email-masked]<mailto:[email-masked]>.

Please Note: the version of ECCLib that we are releasing today is for x64 platforms with AVX and builds with the Microsoft Visual Studio toolchain.  We are actively working on both a version that builds with GCC and also a portable C version and hope to add these to the release in the near future.

Thanks,

                                                                                --bal

[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

[2] http://patricklonga.webs.com/Presentation_CFRG_Selecting_Elliptic_Curves_for_Cryptography.pdf

---

From: Hannes Tschofenig <[email-masked]>
Date: Sun, 20 Jul 2014 21:21:35 +0200

Hi Brian,

thanks for sharing the code.

I am wondering whether you also have a version that does not make use of
assembler code since I cannot run this code on 32-bit ARM processors.

Ciao
Hannes

On 07/20/2014 08:56 PM, Brian LaMacchia wrote:
> Folks,
> 
>  
> 
> Microsoft Research is pleased to announce the release of v1.1 of the MSR
> Elliptic Curve Cryptography Library for NUMS curves.  Please visit
> 
>  
> 
> ·         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
> 
>  
> 
> We welcome questions/comments/feedback on this library; please send them
> to [email-masked] <mailto:[email-masked]>.
> 
>  
> 
> Thanks,
> 
>  
> 
>                                                                                
> --bal
> 
>  
> 
> On behalf of the Microsoft Research ECCLib Project, I am pleased to
> announce the first release of the Microsoft Research Elliptic Curve
> Cryptography Library (ECCLib) for NUMS (“Nothing Up My Sleeve”) curves. 
> We are releasing ECCLib under the Apache 2.0 License.  Here is a link to
> the project page and download location:
> 
>  
> 
> The MSR ECCLib is an efficient cryptography library that provides
> functions for computing essential elliptic curve operations on a new set
> of high-security curves as previously described in [1] and presented at
> the CFRG Spring 2014 Interim Meeting (see [2] for a copy of the slides
> from that presentation).  All computations in ECCLib on secret data
> exhibit regular, constant-time execution, providing protection against
> timing and cache attacks.
> 
>  
> 
> 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.  ECCLib includes all the
> ECC functions necessary to implement most popular elliptic curve-based
> schemes. In particular, 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).
> 
> As both the CFRG and the TLS WG are currently considering additional
> curves for elliptic curve cryptography, we hope that this contribution
> (in addition to the technical paper previously presented) will further a
> thoughtful discussion concerning what new curves CFRG should recommend
> and TLS should consider for inclusion.  We welcome
> questions/comments/feedback on this library; please send them to
> [email-masked] <mailto:[email-masked]>.
> 
>  
> 
> Please Note: the version of ECCLib that we are releasing today is for
> x64 platforms with AVX and builds with the Microsoft Visual Studio
> toolchain.  We are actively working on both a version that builds with
> GCC and also a portable C version and hope to add these to the release
> in the near future.
> 
>  
> 
> Thanks,
> 
>  
> 
>                                                                                
> --bal
> 
>  
> 
> [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
> 
>  
> 
> [2]
> http://patricklonga.webs.com/Presentation_CFRG_Selecting_Elliptic_Curves_for_Cryptography.pdf
> 
>  
> 
>  
> 
> 
> 
> _______________________________________________
> Cfrg mailing list
> [email-masked]
> http://www.irtf.org/mailman/listinfo/cfrg
>

---

From: Brian LaMacchia <[email-masked]>
Date: Sun, 20 Jul 2014 19:39:45 +0000

Hi Hannes,

Thanks very much for your interest and yes we are working on a portable C version but it's not quite ready yet.  As soon as it's done & posted I'll send out another announcement.   

--bal

-----Original Message-----
From: Hannes Tschofenig [mailto:[email-masked]] 
Sent: Sunday, July 20, 2014 3:22 PM
To: Brian LaMacchia; [email-masked]; [email-masked]
Subject: Re: [Cfrg] V1.1 of MSR ECCLib for NUMS Curves library released (now supporting GCC on Linux)

Hi Brian,

I am wondering whether you also have a version that does not make use of assembler code since I cannot run this code on 32-bit ARM processors.

Ciao
Hannes

On 07/20/2014 08:56 PM, Brian LaMacchia wrote:
> Folks,
> 
>  
> 
> Microsoft Research is pleased to announce the release of v1.1 of the 
> MSR Elliptic Curve Cryptography Library for NUMS curves.  Please visit
> 
>  
> 
> *         GCC support on Linux:  The new pre-assembly files .S located
> We welcome questions/comments/feedback on this library; please send 
> them to [email-masked] <mailto:[email-masked]>.
> 
>  
> 
> Thanks,
> 
>  
> 
>                                                                                
> --bal
> 
>  
> 
> Cryptography Library (ECCLib) for NUMS ("Nothing Up My Sleeve") curves.
> We are releasing ECCLib under the Apache 2.0 License.  Here is a link 
> to the project page and download location:
> 
>  
> 
> functions for computing essential elliptic curve operations on a new 
> set of high-security curves as previously described in [1] and 
> presented at the CFRG Spring 2014 Interim Meeting (see [2] for a copy 
> of the slides from that presentation).  All computations in ECCLib on 
> secret data exhibit regular, constant-time execution, providing 
> protection against timing and cache attacks.
> 
>  
> 
> 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.  ECCLib 
> includes all the ECC functions necessary to implement most popular 
> elliptic curve-based schemes. In particular, ECCLib supports the 
> computation of scalar multiplication for the six curves above in three variants:
> 
>                 2. Fixed-base scalar multiplication (e.g., this is 
> used for key generation in the Diffie-Hellman key exchange).
> 
> (in addition to the technical paper previously presented) will further 
> a thoughtful discussion concerning what new curves CFRG should 
> recommend and TLS should consider for inclusion.  We welcome 
> "Selecting Elliptic Curves for Cryptography: An Efficiency and 
> Security Analysis", Cryptology ePrint Archive: Report 2014/130. Available at: