Re: [Cfrg] Elliptic Curves - curve form and coordinate systems (ends on March 12th)

Paul Lambert <paul@marvell.com> Thu, 12 March 2015 20:03 UTC

Return-Path: <paul@marvell.com>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B52BB1A7026 for <cfrg@ietfa.amsl.com>; Thu, 12 Mar 2015 13:03:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.267
X-Spam-Level:
X-Spam-Status: No, score=-2.267 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VOcjBzEdvVgo for <cfrg@ietfa.amsl.com>; Thu, 12 Mar 2015 13:03:29 -0700 (PDT)
Received: from mx0a-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9F8291A7020 for <cfrg@irtf.org>; Thu, 12 Mar 2015 13:03:28 -0700 (PDT)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.14.5/8.14.5) with SMTP id t2CK2oHQ011146; Thu, 12 Mar 2015 13:03:26 -0700
Received: from sc-owa04.marvell.com ([199.233.58.150]) by mx0a-0016f401.pphosted.com with ESMTP id 1t2q5a4rc1-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Thu, 12 Mar 2015 13:03:26 -0700
Received: from SC-vEXCH2.marvell.com ([10.93.76.134]) by SC-OWA04.marvell.com ([::1]) with mapi; Thu, 12 Mar 2015 13:03:25 -0700
From: Paul Lambert <paul@marvell.com>
To: Andrey Jivsov <crypto@brainhub.org>, "cfrg@irtf.org" <cfrg@irtf.org>
Date: Thu, 12 Mar 2015 13:03:23 -0700
Thread-Topic: [Cfrg] Elliptic Curves - curve form and coordinate systems (ends on March 12th)
Thread-Index: AdBc+WwwG9DyzzNAQuyZLkr19WwkNwABX6WA
Message-ID: <7BAC95F5A7E67643AAFB2C31BEE662D020E29C47A3@SC-VEXCH2.marvell.com>
References: <54F8E735.2010202@isode.com> <5501E6A5.5040608@brainhub.org>
In-Reply-To: <5501E6A5.5040608@brainhub.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.13.68, 1.0.33, 0.0.0000 definitions=2015-03-12_07:2015-03-12,2015-03-12,1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1503120191
Archived-At: <http://mailarchive.ietf.org/arch/msg/cfrg/MGHdJvNkrEzoirotn3g3veWOdhU>
Subject: Re: [Cfrg] Elliptic Curves - curve form and coordinate systems (ends on March 12th)
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
List-Unsubscribe: <http://www.irtf.org/mailman/options/cfrg>, <mailto:cfrg-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/cfrg/>
List-Post: <mailto:cfrg@irtf.org>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Subscribe: <http://www.irtf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Mar 2015 20:03:30 -0000


]-----Original Message-----
]From: Cfrg [mailto:cfrg-bounces@irtf.org] On Behalf Of Andrey Jivsov
]Sent: Thursday, March 12, 2015 12:19 PM
]To: cfrg@irtf.org
]Subject: Re: [Cfrg] Elliptic Curves - curve form and coordinate systems
](ends on March 12th)
]
]On 03/05/2015 03:31 PM, Alexey Melnikov wrote:
]> CFRG chairs are starting discussion of the next topic:
]>
]> Q4: draft-irtf-cfrg-curves-01 currently contains curves in both
]> Montgomery form and Edwards form. The scalar multiplication routine is
]> specified using Montgomery form (and is specific to Curve25519, which
]> will need to be changed given our decision to include a higher
]> security level curve). Its input is a scalar and the u-coordinate of a
]> point on a Montgomery-form curve; its output is the u-coordinate of a
]> point on a Montgomery-form curve. The DH function builds on this
]> routine. Do we want to stay with specifying the inputs and outputs in
]> Montgomery form for these routines? Or do we want to switch to an
]> alternative curve form and coordinate system for defining the
]> routines? If so, which form and coordinate system?
]>
]>
]> [Chairs are aware that it is possible to switch back and forward
]> between different curve forms and coordinate systems, with associated
]> costs, no matter which form is specified for the inputs and outputs of
]> the routines. But we now have to decide *which* form we want to use
]> for inputs and outputs, so as to ensure interoperability between Alice
]> and Bob. Chairs did not want to implicitly force the choice of
]> Montgomery form/coordinates without polling the group first.]
]>
]>
]>
]> Once this issues is settled, we will be discussing (in no particular
]> order. Chairs reserve the right to add additional questions) wire
]> format, byte order and signature schemes. Please don't discuss any of
]> these future topics at this time.
]
]A unified binary representation for a public key Q=k*G on the same curve
]is preferred, regardless of the fact that the Q is used with ECDH,
]ECDSA, EdDSA, PAKE, etc. 

+1  

]My proposal incurs no (measurable) performance
]penalty for the proposed unification.
]
]Consider the benefits of a single set of test vectors, code reuse, and
]the benefits of sharing pre-computed values. This proposal simply
]matches the capability of currently deployed ECC.
]
]I propose the Montgomery curve representation (u, v), which can be used
]for signatures on the same curve.
]
]"u" is identical to the sec 9 of
]https://tools.ietf.org/html/draft-agl-cfrgcurve-00.
]"v" is calculated (at virtually no additional computational cost) as v =
]u^3 + 486662*u^2 + u
]
]I am aware of the desire to enforce a key use type at the crypto level,

Please - no such limitations.  The public key should be able to be used
for either or both ECDH and signatures.

Paul


]but a widely used practice today on TLS servers is to require that a RSA
]server has both digitalSignature | keyEncipherment in its X.509 cert,
]otherwise such a TLS Web server cannot support ECDHE-RSA-AES128-SHA
](digital signature) and AES128-SHA (RSA key transport) ciphersuites
]preferred by different clients with a single RSA key pair.
]
]A sample of the interest in unified format can be found here:
]https://github.com/agl/ed25519/blob/master/extra25519/extra25519.go
](converts from Edwards to Montgomery for Curve25519)
]https://github.com/dchest/ed2curve-js (dedicated to this conversion).
]Also please check other references listed in "Other libraries" there.
]
]* An implementation that uses a Montgomery ladder simply ignores v (it
]only calculates v by reusing F(p) operations from its ECDH scalar
]multiplication code)
]* This format allows more internal implementation choices
]* The format is friendly for crypto algorithms that need to add points
](as opposed to ECDH only)
]* When a software library must implement both signatures and ECDH
](something we assume to be common in the future) or even is interested
]in truly ephemeral public keys for ECDHE, the Montgomery ladder in sec 9
]is insufficient. Once that "other code" is written, it can do the job of
]Montgomery ladder at about the same speed.
]* This proposal incurs 32 additional bytes of storage overhead for the
]public key, for the total of 64 bytes (compare this with 260+ bytes for
]RSA 2048).
]
]Not sending u means that an implementation must incur ~10% performance
]penalty to recover v (unless the implementation is a Montgomery ladder,
]which doesn't need v). This is a headwind for any future internal
]improvement. On the other hand, calculating the v costs about 2M, under
]0.1% of the entire ECDHE cost.
]
]_______________________________________________
]Cfrg mailing list
]Cfrg@irtf.org
]http://www.irtf.org/mailman/listinfo/cfrg