Re: [TLS] Using Brainpool curves in TLS

Manuel Pégourié-Gonnard <mpg@elzevir.fr> Fri, 18 October 2013 07:22 UTC

Return-Path: <mpg@elzevir.fr>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CF58621F958A for <tls@ietfa.amsl.com>; Fri, 18 Oct 2013 00:22:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.949
X-Spam-Level:
X-Spam-Status: No, score=-1.949 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_FR=0.35, MIME_8BIT_HEADER=0.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 36ZyCAfYMA62 for <tls@ietfa.amsl.com>; Fri, 18 Oct 2013 00:22:27 -0700 (PDT)
Received: from mordell.elzevir.fr (mordell.elzevir.fr [IPv6:2001:4b98:dc0:41:216:3eff:feeb:c406]) by ietfa.amsl.com (Postfix) with ESMTP id D4D8921F9D92 for <tls@ietf.org>; Fri, 18 Oct 2013 00:22:15 -0700 (PDT)
Received: from thue.elzevir.fr (thue.elzevir.fr [88.165.216.11]) by mordell.elzevir.fr (Postfix) with ESMTPS id 7727D161DA; Fri, 18 Oct 2013 09:22:13 +0200 (CEST)
Received: from [192.168.0.124] (unknown [192.168.0.254]) by thue.elzevir.fr (Postfix) with ESMTPSA id 314AE25FFC; Fri, 18 Oct 2013 09:22:12 +0200 (CEST)
Message-ID: <5260E1A1.9090602@elzevir.fr>
Date: Fri, 18 Oct 2013 09:22:09 +0200
From: Manuel Pégourié-Gonnard <mpg@elzevir.fr>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.0
MIME-Version: 1.0
To: Nico Williams <nico@cryptonector.com>
References: <525C11B5.2050604@secunet.com> <525CEFA4.2030903@funwithsoftware.org> <01b901cec9a0$004e12b0$00ea3810$@offspark.com> <CACsn0ckOnrQTOLdUo9gT8hbTx4cEqX9CP6=BRFYtpV1CpT7HXQ@mail.gmail.com> <525E3E6B.1020604@secunet.com> <CA+cU71=ws7Uh6OuJhMdU521Uvm1zj=agb3HPNZudpX1R6v7mXA@mail.gmail.com> <525EAC5D.7080105@secunet.com> <CACsn0cmWpj1ax+S+wTVvVU09SC_z50X=yfhDDgaq1M0AQD2jOw@mail.gmail.com> <525EB695.9070607@secunet.com> <CAK3OfOhhxPPFTE9He+vf3BsJL4qiRgty6T9TgO2QXz7n=kbpnA@mail.gmail.com> <525FA70F.8030208@secunet.com> <CAK3OfOjkoyMkJO5xO0i2AxDr57tuUw9pVM5=c2hVO_ihwmKP3w@mail.gmail.com> <52600F6B.3020404@elzevir.fr> <CAK3OfOih+uaoQcexEaZYk2bHZAGtD-G1Y_UDJW-qxPnB44Ebyg@mail.gmail.com>
In-Reply-To: <CAK3OfOih+uaoQcexEaZYk2bHZAGtD-G1Y_UDJW-qxPnB44Ebyg@mail.gmail.com>
X-Enigmail-Version: 1.5.2
OpenPGP: id=98EED379; url=https://elzevir.fr/gpg/mpg.asc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Cc: Patrick Pelletier <code@funwithsoftware.org>, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Using Brainpool curves in TLS
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.12
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: Fri, 18 Oct 2013 07:22:33 -0000

On 17/10/2013 18:40, Nico Williams wrote:
> On Thu, Oct 17, 2013 at 11:25 AM, Manuel Pégourié-Gonnard
> <mpg@elzevir.fr> wrote:
>> On 17/10/2013 17:55, Nico Williams wrote:
>>> The fact that some curve has twist
>>> security means that for DH there's no need to validate that public
>>> keys are points on the curve
>>
>> Not if your peer sends you (x, y). Your statement is true only in ECDH schemes
>> where the peers sends only x (and you don't attempt to find y).
> 
> Fair enough, but as the subject was Brainpool vs. Curve25519...

If I may reformulate my point: twist-security is relevant only for curves
suitable for use with schemes where only the x coordinate is transmitted, and no
attempt to reconstruct y is needed on the receiving side. Which means, curves
for which formulas exist for point multiplication using only the x coordinate.
To the best of my knowledge (read: after looking up the explicit formulas
database) no such formulas exist for short Weierstrass curves. Let's try with
pseudo-code:

If (has efficient x-only formulas)
	may transmit only x, and if doing so:
		if (is twist-secure)
			no need to validate x
		else
			need to validate x
else
	need to transmit or reconstruct y, so:
	if (y transmitted entirely)
		need to validate (x,y) explicitly
	else
		(x,y) implicitly validated while reconstructing y

As you can see, twist-security is irrelevant in the second branch, to which
short-Weierstrass curves (which can't be transformed to Montgomery form, such as
Brainpool curves) belong unless some magical x-only formulas are discovered.

So you may argue that Curve25519 has performance-without-sacrificing-security
advantages for DH over Brainpool curves and I certainly won't contradict you on
that point, but citing twist security as relevant here would be putting the cart
before the horse IMO.

Manuel.

PS: just kidding (almost?), but one could argue that brainpoolP384r1, as used in
TLS for ECDH now, is *less* secure because of twist-security, if people start
thinking that they don't need to validate public keys for this curve...