Re: [TLS] Using Brainpool curves in TLS

Johannes Merkle <> Wed, 16 October 2013 15:10 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5DF8221F84D9 for <>; Wed, 16 Oct 2013 08:10:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.501
X-Spam-Status: No, score=-3.501 tagged_above=-999 required=5 tests=[AWL=0.098, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id nnfTXwNyr+58 for <>; Wed, 16 Oct 2013 08:10:39 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 5E13D11E82AB for <>; Wed, 16 Oct 2013 08:10:25 -0700 (PDT)
Received: from localhost (alg1 []) by (Postfix) with ESMTP id 2C8001A0078; Wed, 16 Oct 2013 17:10:23 +0200 (CEST)
X-Virus-Scanned: by secunet
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with LMTP id 5f4MGwWJCBdJ; Wed, 16 Oct 2013 17:10:22 +0200 (CEST)
Received: from (unknown []) by (Postfix) with ESMTP id 08F0C1A0076; Wed, 16 Oct 2013 17:10:22 +0200 (CEST)
Received: from [] ([]) by with Microsoft SMTPSVC(6.0.3790.4675); Wed, 16 Oct 2013 17:10:21 +0200
Message-ID: <>
Date: Wed, 16 Oct 2013 17:10:21 +0200
From: Johannes Merkle <>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.0.1
MIME-Version: 1.0
To: Tom Ritter <>
References: <> <> <01b901cec9a0$004e12b0$00ea3810$> <> <> <>
In-Reply-To: <>
X-Enigmail-Version: 1.5.2
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 16 Oct 2013 15:10:22.0236 (UTC) FILETIME=[D587C5C0:01CECA81]
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: Wed, 16 Oct 2013 15:10:44 -0000

>>> What problems does this solve? The Brainpool curves still have
>>> unverifiable construction,
>> This is plain wrong. Obviously, you have not read RFC 5639. The construction of the Brainppol curves is completely
>> verifiable, only based on the fundamental constants Pi and e.
> Repeating others arguments:
> "Several unexplained decisions: Why SHA-1 instead of, e.g., RIPEMD-160
> or SHA-256? Why use 160 bits of hash input independently of the curve
> size? Why pi and e instead of, e.g., sqrt(2) and sqrt(3)? Why handle
> separate key sizes by more digits of pi and e instead of hash
> derivation? Why counter mode instead of, e.g., OFB? Why use
> overlapping counters for A and B (producing the repeated
> 26DC5C6CE94A4B44F330B5D9)? Why not derive separate seeds for A and B?"

The fact that the source of the seeds is explained is a huge step towards complete transparency as compared to the NIST
curves. Your arguments refer to the procedure for derivation of the parameters from the fundamental constants. There is
no canonical choice for such a procedure; the most obvious approach was to take it from ANSI X9.62, which we did.
Admittedly, we introduced a slight change: we use the first two PRNG outputs as coefficients a and b, whereas ANSI uses
the first PRNG output as r=a^3/b^2 and selects a and b arbitrarily with that relation); but this change is rather small
and quite straightforward. IMO there is really not much room left for conspiracy theories.

Anyone who is so paranoid (in the positive way which is useful for IT security professionals) to fear that a backdoor
may have been built in by tuning the parameter generation procedure should also question all design criteria for any
other curve, including Curve25519. There is always room for choices.