Re: [TLS] Using Brainpool curves in TLS

Manuel Pégourié-Gonnard <> Fri, 18 October 2013 07:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id CF58621F958A for <>; Fri, 18 Oct 2013 00:22:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.949
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 36ZyCAfYMA62 for <>; Fri, 18 Oct 2013 00:22:27 -0700 (PDT)
Received: from ( [IPv6:2001:4b98:dc0:41:216:3eff:feeb:c406]) by (Postfix) with ESMTP id D4D8921F9D92 for <>; Fri, 18 Oct 2013 00:22:15 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTPS id 7727D161DA; Fri, 18 Oct 2013 09:22:13 +0200 (CEST)
Received: from [] (unknown []) by (Postfix) with ESMTPSA id 314AE25FFC; Fri, 18 Oct 2013 09:22:12 +0200 (CEST)
Message-ID: <>
Date: Fri, 18 Oct 2013 09:22:09 +0200
From: =?UTF-8?B?TWFudWVsIFDDqWdvdXJpw6ktR29ubmFyZA==?= <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.0
MIME-Version: 1.0
To: Nico Williams <>
References: <> <> <01b901cec9a0$004e12b0$00ea3810$> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
X-Enigmail-Version: 1.5.2
OpenPGP: id=98EED379; url=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Patrick Pelletier <>, "" <>
Subject: Re: [TLS] Using Brainpool curves in TLS
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-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
> <> 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

If (has efficient x-only formulas)
	may transmit only x, and if doing so:
		if (is twist-secure)
			no need to validate x
			need to validate x
	need to transmit or reconstruct y, so:
	if (y transmitted entirely)
		need to validate (x,y) explicitly
		(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.


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...