Re: [TLS] Additional Elliptic Curves (Curve25519 etc) for TLS ECDH key agreement

Alyssa Rowan <akr@akr.io> Sat, 11 January 2014 17:50 UTC

Return-Path: <akr@akr.io>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D6CEC1AE09E for <tls@ietfa.amsl.com>; Sat, 11 Jan 2014 09:50:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, 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 2AQMtabxBHTW for <tls@ietfa.amsl.com>; Sat, 11 Jan 2014 09:50:38 -0800 (PST)
Received: from entima.net (entima.net [78.129.143.175]) by ietfa.amsl.com (Postfix) with ESMTP id AADD81AE085 for <tls@ietf.org>; Sat, 11 Jan 2014 09:50:38 -0800 (PST)
Received: from [10.10.42.10] (cpc5-derb12-2-0-cust796.8-3.cable.virginm.net [82.31.91.29]) by entima.net (Postfix) with ESMTPSA id 083966010F for <tls@ietf.org>; Sat, 11 Jan 2014 17:50:28 +0000 (GMT)
Message-ID: <52D18475.10709@akr.io>
Date: Sat, 11 Jan 2014 17:50:45 +0000
From: Alyssa Rowan <akr@akr.io>
MIME-Version: 1.0
To: tls@ietf.org
References: <87eh4e7a2y.fsf@latte.josefsson.org>
In-Reply-To: <87eh4e7a2y.fsf@latte.josefsson.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Subject: Re: [TLS] Additional Elliptic Curves (Curve25519 etc) for TLS ECDH key agreement
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: Sat, 11 Jan 2014 17:50:42 -0000

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 11/01/2014 16:32, Simon Josefsson wrote:

> [draft-josefsson-tls-curve25519-03]

Strong interest here. Curve25519 in particular has extremely fast,
public-domain constant-time implementations compared to, say,
secp256r1, with better security, and a less clouded origin.

Better forward security at a very fast speed? Yes please!

1. Representation - Endian

I had thought that I might point out that all the existing routines in
the wild use little-endian representations and so that might be a good
reason to prefer that, so the routines can be used directly to
accelerate rollout.

But on reflection, pretty much everything else in internet standards
goes big-endian, so there's consistency there, and an endian swap
isn't exactly a big deal. No objection.

2. Monty & Eddie

You list both Montgomery and Edwards curves in that list. I suggest
just listing the Montgomery curves (Curve25519, M383 and M511) for
this use, as these are the forms that are the very natural choices for
ECDHE, with the handy x-coordinate-only feature.

Edwards forms (Curve1174, E382, Curve3617, E521 in their natural
states) are more eminently suitable for other uses like authentication
(although definitely should not be used with ECDSA, and note EdDSA as
specified is actually closely tied to Ed25519 - really we should
specify a new derivative, which we should really get on with).

You can also convert between the representations (e.g. Ed25519 is the
twisted Edwards isomorphism of Curve25519). The ones which are
naturally specified in Montgomery form have handy basepoints in that form.

I'd suggest putting Curve25519 as a MUST to implement, and M383 and
M511 as a MAY.

3. Security Considerations: Implementation

Thoughtful. Do we need to directly specify that implementations MUST
avoid side-channel attacks, because otherwise they might be tempted to
implement them in a way that isn't constant-time?

(There's a typo in that section, by the way; "22519".)

4. Other uses

I think other uses of these curves, which should definitely be
specified, should be specified in another draft (i.e. something like
EdDSA one, though it may not end up being exactly EdDSA).

We'll want OIDs for that. Can we get some for these "Chicago curves"?
I gather there's one suggested for Curve25519: could Mr Gutmann
perhaps please provide us with some for all of the others? (We could
put them in the eventual CFRG informational RFC for posterity, then.)

- -- 
/akr
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJS0YR1AAoJEOyEjtkWi2t6z3AP/jwvsUwcPawNSsT8hIxJkLg+
tj8kUMeyRpxv2gqzGudycxAwi9WVV9LD9ml7Up9dfRQfxbkIr1lj6Y3Xbf/UbMXe
ENw9rvTz15p9p7fZJN8vb0Ab19xGptzwBtMl3sMeOy4eCeATLq0smpPqfgLNwl6m
FHcP8Vx4zrvvs1OKPlgUEEwv6l6F6A5P4OytW48WmIVGMr4ud34JPJAv4OdscvXD
8jtythP1b2Pvr+j+03LP9b0beV74YgwlqCpyQtTmLF/W7WtmW1xdBs0mKP94bB/K
9AGH86pUuBi/fBfn9lUDBkaETx6EnN8r9Mzat96o9gL2DB+s8ML0+1ckZkORzISb
VDVGxv5bZLBuW9zVlelsfAJO0az7DCaS5WKk3pKvhO9uT1R66EWpWwHJiJd4+TFB
H85Ko+tU65xBwh5Er/uiLwCAq205D9GFxd+MZUfNOWIDQ8/8rx+OrAImDJbkOxwr
+yOs7c1jbXlDaI9aA3j894d3ZDAFG5wal8m+gYRJumLfN8ufwr0bYYLpJy+DeFwN
i1Ic+Jj8b513/YxKNdJNZcK6RtL7taDAv8jl7Yiym2ze8PMZWJtsqyL06KCeDt0C
9ZzGQGV/AoDiJ1xktFwZ1YGPcTavqq9167l/r9JP0v4riA1O1Xnr9LaVBs8Z2++D
o2g0CcBzXK0AhWfLqfbC
=nhGq
-----END PGP SIGNATURE-----