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

Brian LaMacchia <bal@microsoft.com> Sun, 20 July 2014 18:56 UTC

Return-Path: <bal@microsoft.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com []) by ietfa.amsl.com (Postfix) with ESMTP id 020C01B2CB8; Sun, 20 Jul 2014 11:56:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id L5e5SAgAHRBz; Sun, 20 Jul 2014 11:56:27 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1lp0145.outbound.protection.outlook.com []) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E64991B2CA7; Sun, 20 Jul 2014 11:56:26 -0700 (PDT)
Received: from BL2PR03MB242.namprd03.prod.outlook.com ( by BL2PR03MB243.namprd03.prod.outlook.com ( with Microsoft SMTP Server (TLS) id 15.0.990.7; Sun, 20 Jul 2014 18:56:25 +0000
Received: from BL2PR03MB242.namprd03.prod.outlook.com ([]) by BL2PR03MB242.namprd03.prod.outlook.com ([]) with mapi id 15.00.0990.007; Sun, 20 Jul 2014 18:56:25 +0000
From: Brian LaMacchia <bal@microsoft.com>
To: "tls@ietf.org" <tls@ietf.org>, "cfrg@ietf.org" <cfrg@ietf.org>
Thread-Topic: V1.1 of MSR ECCLib for NUMS Curves library released (now supporting GCC on Linux)
Thread-Index: Ac+kTESvmkQ17PaKRGm9P1nDdxWNMQ==
Date: Sun, 20 Jul 2014 18:56:25 +0000
Message-ID: <32919a77a6ba4b2aab3c446b087ad979@BL2PR03MB242.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
x-microsoft-antispam: BCL:0;PCL:0;RULEID:
x-forefront-prvs: 02788FF38E
x-forefront-antispam-report: SFV:NSPM; SFS:(164054003)(377454003)(13464003)(243025005)(189002)(199002)(26614003)(105586002)(16236675004)(77096002)(19300405004)(79102001)(15975445006)(83322001)(85306003)(106356001)(31966008)(95666004)(99286002)(74502001)(74662001)(21056001)(83072002)(77982001)(46102001)(4396001)(92566001)(85852003)(107886001)(76576001)(81542001)(33646002)(19617315012)(81342001)(74316001)(86612001)(54356999)(19625215002)(50986999)(19580405001)(19580395003)(87936001)(15202345003)(86362001)(229853001)(76482001)(101416001)(107046002)(2656002)(99396002)(20776003)(64706001)(66066001)(80022001)(108616002)(42262001)(24736002)(9853045004); DIR:OUT; SFP:; SCL:1; SRVR:BL2PR03MB243; H:BL2PR03MB242.namprd03.prod.outlook.com; FPR:; MLV:sfv; PTR:InfoNoRecords; MX:1; LANG:en;
Content-Type: multipart/alternative; boundary="_000_32919a77a6ba4b2aab3c446b087ad979BL2PR03MB242namprd03pro_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.onmicrosoft.com
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/1pDtlOJo27B4_yj6HkDnKf9UJJg
Subject: [TLS] V1.1 of MSR ECCLib for NUMS Curves library released (now supporting GCC on Linux)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 20 Jul 2014 18:56:38 -0000


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


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 msrsc@microsoft.com<mailto:msrsc@microsoft.com>.



-----Original Message-----
From: Brian LaMacchia
Sent: Monday, June 30, 2014 3:58 AM
To: cfrg@ietf.org; tls@ietf.org
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:


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 msrsc@microsoft.com<mailto:msrsc@microsoft.com>.

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.



[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