Re: [Cfrg] [CFRG] Safecurves v Brainpool / Rigid v Pseudorandom

Watson Ladd <> Tue, 14 January 2014 00:36 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 67BDC1AC82B for <>; Mon, 13 Jan 2014 16:36:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.4
X-Spam-Status: No, score=-1.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, J_CHICKENPOX_47=0.6, SPF_PASS=-0.001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id NNdJnc_ASD5R for <>; Mon, 13 Jan 2014 16:36:23 -0800 (PST)
Received: from ( [IPv6:2a00:1450:400c:c03::232]) by (Postfix) with ESMTP id 9F7FE1A8033 for <>; Mon, 13 Jan 2014 16:36:22 -0800 (PST)
Received: by with SMTP id t60so7390178wes.9 for <>; Mon, 13 Jan 2014 16:36:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Op49NZocJbVssu51lCBPsm4xvVZw9ld9u4fbL+RAhHI=; b=CaS6iBcsEjAbVMqX1kvLGMztQIisQignzZkMbR1otV1dwY6mNzIsl5cNJdpkPM97uV KGdVdj/pkicMg0Vb9UR7SvPFXZRXSeH1y6kXqEPHhxAgi3kPQxfP3BgZOyeNnBumvZOS fW5KlaXoPCaQW3JNzYgV3tJlxjEKWvZQ3kmuk6sGXojau05GCSacGytdpU92AkC1umJV m+rbO7gHOfITEBkcdha3Sv16YZvSR3rVGAyIKSszUItPNMo6nLv1Zc0vNV45vjhFpncn yhYCWM7X14zl/Yh4F7mjVuJItPEQPzCLlQSMDvubsXxIwOUgPSl84V6Tv8qqQf6my1JD vxgw==
MIME-Version: 1.0
X-Received: by with SMTP id l9mr132309wiz.20.1389659770990; Mon, 13 Jan 2014 16:36:10 -0800 (PST)
Received: by with HTTP; Mon, 13 Jan 2014 16:36:10 -0800 (PST)
In-Reply-To: <>
References: <>
Date: Mon, 13 Jan 2014 16:36:10 -0800
Message-ID: <>
From: Watson Ladd <>
To: Dan Brown <>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: "" <>
Subject: Re: [Cfrg] [CFRG] Safecurves v Brainpool / Rigid v Pseudorandom
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Crypto Forum Research Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 14 Jan 2014 00:36:25 -0000

On Mon, Jan 13, 2014 at 3:07 PM, Dan Brown <> wrote:
> Watson,
> I had requested to keep this thread focused, specifically in the impact pseudorandom v rigid on security, but you declined to engage. Is it that you think this security issue unimportant, even though you concede with my narrow point?

I think it's completely bogus. People aren't primarily interested in
the Chicago curves because of unknown attacks, but NSA cookery over
NIST+the efficiency and security benefits they offer.

> Instead, you mostly repeated the general speed and side channel benefits of Chicago, which I was not yet disputing.

You know, when it comes to speed there is a way to decide which is
faster: eBATS. And what eBATS says about P256 vs Curve25519 is not
Want to argue about speed? Submit code. Want to argue about
multiplications? Get formulas into EFD.

Furthermore, what is your position on the question of ECC choices?
Instead of going around in circles of increasing irrelevance, let's
have it between these options:

0: Nothing
2: Brainpool
3: Chicago
4: NIST+Brainpool
5: Brainpool+Chicago
6: NIST+Chicago

Each of these options has costs. Each has advantages. And I've not
even scratched the surface: maybe P256 stays, along with
and P521. So far I think that 2 alone is terrible, 1 alone okay, 3
alone superior (but anything sans NIST is a nonstarter for DOD), so 6
seems good,
because no one will pick brainpool from 7.

> Also, you suggested that I was referring to the field choices. I did not intend to, but I should clarify.
> For a given field, pseudorandom curve better resists secret attacks than rigidity.

What about the known attacks which Brainpool implementations suffer
from? There still isn't a side-channel clean one
that gets correct answers all the time. Contrast with NIST and the new
curves. (Yes, we need to churn out some code, but
it's clear it can be done). I admire your persistence in
necroequoflagellation,  but as DJB observed the previous time
this came up, you've simply declared 486662 special, with no evidence
that the curve is actually special.
If you noticed a particularly unusual endomorphism, or an interesting
map to some other scheme, or the Q-lift having unusually
large rank, or an infinite Tate-Sharavich group, that would be reason
to worry or consider it special. But the coefficient being small?
What's so special about that?

> Field size would on my list of issues, but way, way down on my ranking of importance.
> A couple people have suggested to me (off list) to generate new curves with explainable seeds but the same fields as NIST curves.

These people should not be listened to: the world does not need more
short Weierstrass curves. Pick rigid Edwards curves over the same
field, and make a small for speed. I understand the field
proliferation concern, particularly for hardware, but that's where a
lot of speed comes from: ask AGL or Rich Salz how much speed they want
to give up. We have Rich Salz on record as saying that Akamai is held
back from PFS by the CPU demand, and with Curve25519 that will be
solved. In software additional fields cost little.

> The result would seem to be intermediate between Brainpool and Chicago.
> My main reluctance with that would further babble, and yet more difficulty with interoperability.

Interop solution: MTI. Odds are people will pick a hardness, and the
fastest thing that delivers that hardness will win out. Also,
make clear standards can exclude curves, even to the extent of picking
one and saying "This is it!". I think the majority of protocols where
performance in software is a concern and correctness of implementation
an issue should consider Curve25519 carefully, but I am not going to
argue that I know better than the communities around these protocols
what is appropriate for the hardware they are looking at running on
and the constraints they face. Some protocols will need to dispense
with choices because of these limitations I am going to argue that I
know cryptography better than they do in most cases, and that's how I
see this question: making a catalog of curves, where you can reach in
and go "Oh, this one has high software performance, acceptable
hardware performance, good security, useful for ECDH" or "This one is
great in hardware, ok in software, moderate security (and some
gotchas), all protocols" and make a choice easily.

Watson Ladd

> From: Watson Ladd
> Sent: Monday, January 13, 2014 4:26 PM
> To: Dan Brown
> Cc:
> Subject: Re: [Cfrg] [CFRG] Safecurves v Brainpool / Rigid v Pseudorandom
> On Mon, Jan 13, 2014 at 8:55 AM, Dan Brown <> wrote:
>> Last week I wrote that I would soon write up my disagreements with the safe curves site.
>> My first disagreement is written up below, but first two editorial issues:
>> - My last email was in the context of Watson’s draft spec for the Chicago (Bernstein?) curves, but I would like to detach the issue from the I-D. My comment about the reference in Watson’s I-D to a website was just an editorial comment.
>> - These technical issues that I hope CFRG discusses just might be resolved and written into a CFRG I-D cataloging of elliptic curves and their relative merits and so on, which should be independent of Watson’s spec for the Chicago curves. For now, I opted to discuss via email list, rather than placing these arguments into my own one-sided individual I-D. Please advise me if such an I-D is preferred to email.
> I think this is an excellent idea (the catalogue of good curves).
>> Today, I checked that
>> <snip>
> Rather then engage a peripheral argument, let me lay out the case for
> the Chicago curves (named after the city in which Bernstein resides,
> and in a long IETF tradition starting with TCP Reno, Oakley key
> agreement protocol, and fundamentally of no import: see Shakespeare,
> Romeo and Juliet, Act 2, Scene 2, or Wittgenstein, Philosophical
> Investigations for more information) in the fairest light.
> First efficiency: point addition on an Edwards curve costs 11
> multiplications, doubling 7 multiplications. This is for a complete,
> strongly unified addition formula, which requires no work for special
> cases. By contrast on a short Weierstrass curve addition costs 16
> multiplications, doubling 8.
> This is with no assumptions on Z, which if we impose reduce the cost
> of addition on a short Weierstrass curve to 11 multiplications. But if
> we impose the same condition on the Edwards curve, the cost is 10
> multiplications.
> However, I've forced the Edwards curve to represent the identity,
> which if we are willing to drop, slices off two more multiplications.
> By contrast the
> Weierstrass curve has special cases that need additional work to
> handle in a secure manner. Most people just don't bother. I also let
> the Weierstrass form be special with a=-3, while keeping the Edwards
> curve fully general.
> So given the same prime Edwards has short Weierstrass beat. This is
> true no matter what algorithm for exponentiation is used. And I even
> gave short Weierstrass curves a handicap by letting them avoid
> representing the entire curve and having exceptional cases, and fix
> some parameters.
> Montgomery form is even better: differential addition costs 10M, and
> calculates a doubling for free. Sadly the differential part makes
> radix-k algorithms tough, but in memory constrained environments (like
> hardware) Montgomery form can't be beat. (And we haven't even used
> nonuniform differential addition chains yet.. I'm still hopeful).
> Then there is the prime shape: Brainpool uses a random prime, which is
> a terrible idea from an efficiency perspective. NIST primes are sized
> for 32 bit machines, and have some hiccups on 64 bit machines. But the
> Chicago primes are primes for all seasons: 2^k-c with small c is nice
> no matter what radix you adopt. Unsaturated arithmetic makes addition
> faster because reductions aren't necessary at all times, and the
> Chicago primes are good from that perspective.
> Now security: having an efficient complete addition formula makes
> writing timing, cache, and branch side channel free code a piece of
> cake. By contrast short Weierstrass curves have all sorts of wrong
> curve, or invalid point, or somewhere the calculation messes up
> issues. Usually the defense is a final check on the result being on
> the code, but that isn't the same as knowing that no attack is
> possible because your code always generates the right answer.
> Lastly, many websites want to deploy PFS ciphersuites but are deterred
> by the computation expense involved. Minimizing that expense is
> essential. In the wider IETF context we are catering to devices from
> the lowly MSP430, to the latest and greatest supercomputer. What does
> Brainpool let us do? We should stick to the NIST and Chicago curves:
> NIST for those who require it, and Chicago for those who require the
> extra speed.
> I would like to hear good arguments against this position. Robert
> Ransom I understand wants twisted Edwards curves for an extra bit of
> speed, using isogenies to keep them the same as the Chicago curves,
> but selecting only those with small parameters and particularly nice
> prime shapes.
> Dan Brown believes that the Brainpool primes are less special in a way
> that has to do with ECC security, despite this never affecting ECC
> before.
> Sincerely,
> Watson Ladd
> ---------------------------------------------------------------------
> This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.

"Those who would give up Essential Liberty to purchase a little
Temporary Safety deserve neither  Liberty nor Safety."
-- Benjamin Franklin