Re: [Cfrg] Formal request from TLS WG to CFRG for new elliptic curves

Simon Josefsson <simon@josefsson.org> Wed, 16 July 2014 21:39 UTC

Return-Path: <simon@josefsson.org>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 807A81A0085 for <cfrg@ietfa.amsl.com>; Wed, 16 Jul 2014 14:39:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level:
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_SE=0.35, SPF_PASS=-0.001] autolearn=no
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 nLBa2plf3mZV for <cfrg@ietfa.amsl.com>; Wed, 16 Jul 2014 14:39:51 -0700 (PDT)
Received: from duva.sjd.se (duva.sjd.se [IPv6:2001:9b0:1:1702::100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BD1051A008C for <cfrg@irtf.org>; Wed, 16 Jul 2014 14:39:50 -0700 (PDT)
Received: from latte.josefsson.org (static-213-115-179-130.sme.bredbandsbolaget.se [213.115.179.130]) (authenticated bits=0) by duva.sjd.se (8.14.4/8.14.4/Debian-4) with ESMTP id s6GLdgUv023889 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 16 Jul 2014 23:39:45 +0200
From: Simon Josefsson <simon@josefsson.org>
To: "Paterson\, Kenny" <Kenny.Paterson@rhul.ac.uk>
References: <CFE9F2DE.26E5A%kenny.paterson@rhul.ac.uk>
OpenPGP: id=54265E8C; url=http://josefsson.org/54265e8c.txt
X-Hashcash: 1:22:140716:cfrg@irtf.org::uKv2Fgzc93bWXmlq:17S+
X-Hashcash: 1:22:140716:kenny.paterson@rhul.ac.uk::L34tTUJ3cPbju5j9:CSYB
Date: Wed, 16 Jul 2014 23:39:41 +0200
In-Reply-To: <CFE9F2DE.26E5A%kenny.paterson@rhul.ac.uk> (Kenny Paterson's message of "Mon, 14 Jul 2014 19:49:41 +0000")
Message-ID: <87d2d5aspu.fsf@latte.josefsson.org>
User-Agent: Gnus/5.130011 (Ma Gnus v0.11) Emacs/24.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Virus-Scanned: clamav-milter 0.98.1 at duva.sjd.se
X-Virus-Status: Clean
Archived-At: http://mailarchive.ietf.org/arch/msg/cfrg/2MWvASqMUfxBbOU1wQpnkRIco6k
Cc: "cfrg@irtf.org" <cfrg@irtf.org>
Subject: Re: [Cfrg] Formal request from TLS WG to CFRG for new elliptic curves
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
List-Unsubscribe: <http://www.irtf.org/mailman/options/cfrg>, <mailto:cfrg-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/cfrg/>
List-Post: <mailto:cfrg@irtf.org>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Subscribe: <http://www.irtf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jul 2014 21:39:52 -0000

I'm reviewing the selection criteria.  Some of the requirements are
rather fine-grained and poorly justified, and appear to limit the search
space.  If taken literally, I believe they exclude some good candidates
and steer the selection into a rather small field of available options.

I'm fine with R1-R3.

"Paterson, Kenny" <Kenny.Paterson@rhul.ac.uk>; writes:

> Intellectual Property
>
>    R4.  Required: available worldwide under reasonable and well
>    understood licensing terms [1]
>
>    R5.  Desired: available worldwide under royalty-free licensing
>    terms [1]

I believe non-royalty-free licensing terms is a nonstarter.  I suggest
collapsing this into:

R4'. Required: available for worldwide implementation (by both
     proprietary and free open source software) and use under well
     understood and royalty-free licensing terms

> Interoperability
>
>    R6.  Desired: can be used with current software implementations
>    (using different curve parameters) of TLS, PKIX, SSH, and IKE [4]
>
>    R7.  Desired: can be used within current ECC standards of TLS,
>    PKIX, SSH, and IKE [4]

I do not see why these are desirable properties, so I disagree they
should be a selection criteria.  These properties restricts the search
space.  I would prefer if the CFRG are at liberty to recommend the best
alternative even if it is clearly not re-usable in existing software or
standards.  I would go even further saying that one of the reasons for
doing this excercise is that the existing software and standards are not
sufficient.

On the topic of interoperability, I would propose to add the following,
to me, more important property:

Rx. Desired: either a clear algorithm description exists (with clarity
on byte-ordering etc) or multiple interoperable implementations are
available.

If some alternative does not appear to be sufficiently specified or
widely implemented, the CFRG could take on driving a document to clarify
the solution.

> Security
>
>    R8.  Required: amenable to constant-time implementations, to avoid
>    side channel attacks [2]
>
>    R9.  Required: resist twist attacks [2]
>
>    R10.  Required: curve parameters should have good provenance;
>    random curves should be provably pseudorandom [5]
>
>    R11.  Desired for key exchange: resist invalid curve attacks [2];
>    note that complete addition laws help and are thus desirable [2].
>    (Note that the use of ephemeral keys also resist such attacks.)

Instead of R8-R11, I suggest to summarize this more generally as:

R8'. Required: the solution should be secure against reasonable and
well-understood threats, including (but not limited to and necessarily
not all of) brute-force, side-channel, invalid-curve, twist attacks, or
maliciously chosen curve parameters.

Designing against security threats is a balance, and I would say that
there are no perfect solutions.  Every solution will have some area
where they perform less well compared to some other solution.  I believe
the overall choice(s) should reflect well-balanced alternatives with
strong advantages and some understood disadvantages.

>    R12.  Required for PAKE: indistinguishability of curve points from
>    random strings [2]

I do not see why this is a desirable property for TLS, or other IETF
areas, so I disagree it should be a requirement.

/Simon