Re: [Cfrg] Elliptic Curves - signature scheme: friendliness to low memory implementations (ends on June 3rd)

Tony Arcieri <bascule@gmail.com> Fri, 22 May 2015 02:18 UTC

Return-Path: <bascule@gmail.com>
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 46DAF1A8A62 for <cfrg@ietfa.amsl.com>; Thu, 21 May 2015 19:18:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.1
X-Spam-Level:
X-Spam-Status: No, score=-0.1 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
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 R4VrX-2fwnv3 for <cfrg@ietfa.amsl.com>; Thu, 21 May 2015 19:18:09 -0700 (PDT)
Received: from mail-oi0-x230.google.com (mail-oi0-x230.google.com [IPv6:2607:f8b0:4003:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 204CD1A8AB2 for <cfrg@irtf.org>; Thu, 21 May 2015 19:18:09 -0700 (PDT)
Received: by oige141 with SMTP id e141so4097074oig.1 for <cfrg@irtf.org>; Thu, 21 May 2015 19:18:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=dU/y9hxVOco1zNKGh1Tam+qEAu+cu5knaPGTNT4QqsE=; b=C4zjj0LXApJZ1qvsnRKS+xzYpn7wwuSdowFbjgGne2ZWq8qxAJmQKFEnTF0RHJgKuz c7xoGfN5Fz2XkVTYYKgs44RA9ik1NEQoAyO6monp4yFU2nBkvPn41YTsfpWatEHYU1KI MgnwvuSnuxvP9fzUQheAQaERl/TWpEKXbpRuZCFMQQdm3eyrq8G8E2vPkRlDEt5r47lY HHlLUqLUP8aq3S8hzGPXqKcgkG55NqGvQtT3wGunDAod9rhnyU4aQJUPnPdI2YWlvUKh VRQ93q3tD58HDgmouiM6Bu3G8S1GUEap+FhcZ2lWUYOLOTnfuYZLYH1v9w6t3yRGEjGj qAgA==
X-Received: by 10.202.210.80 with SMTP id j77mr4498629oig.68.1432261088626; Thu, 21 May 2015 19:18:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.76.25.198 with HTTP; Thu, 21 May 2015 19:17:48 -0700 (PDT)
In-Reply-To: <CACsn0ck8gTCWqt+B7vOKQVzBrUkxW5YJgkDQ+9eJQrDFeTM8rA@mail.gmail.com>
References: <C49BFA4F-76B9-48A1-913B-144D606FBBDD@isode.com> <9A043F3CF02CD34C8E74AC1594475C73AB028273@uxcn10-tdc05.UoA.auckland.ac.nz> <20150521201444.GA3791@localhost> <CACsn0ck8gTCWqt+B7vOKQVzBrUkxW5YJgkDQ+9eJQrDFeTM8rA@mail.gmail.com>
From: Tony Arcieri <bascule@gmail.com>
Date: Thu, 21 May 2015 19:17:48 -0700
Message-ID: <CAHOTMVKi0e2qMUqndYAN0ZVpHXe5=ODQMrS6kRiFPBx_xqbFeA@mail.gmail.com>
To: Watson Ladd <watsonbladd@gmail.com>
Content-Type: multipart/alternative; boundary="001a113d265669d06a0516a2451d"
Archived-At: <http://mailarchive.ietf.org/arch/msg/cfrg/P6NyEnPVXzQ2bhDoOZSf8IxVYEg>
Cc: "cfrg@irtf.org" <cfrg@irtf.org>, Peter Gutmann <pgut001@cs.auckland.ac.nz>
Subject: Re: [Cfrg] Elliptic Curves - signature scheme: friendliness to low memory implementations (ends on June 3rd)
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: Fri, 22 May 2015 02:18:11 -0000

On Thu, May 21, 2015 at 3:49 PM, Watson Ladd <watsonbladd@gmail.com> wrote:

> On the contrary, 3 would hurt unless properly designed. The danger is
> that the same key could produce a valid signature under two different
> algorithms, thus leading to potential exploitation.


Something that strikes me as a bit strange is if we do hash the input prior
to feeding it into #2, doesn't that defeat the point? Collisions in the
first hash are still collisions. So wouldn't any collision in the hash
function undo any collision-resistance that #2 provides? Am I missing
something here?

How about option #5(?): provide both #1 + #2. Implementation-wise you could
share the overwhelming majority of the code between both interfaces. The
difference between them seems trivial enough that providing both should be
easy. And to Watson's point, if we do it that way there shouldn't be any
chance of confusing the two as they should produce completely distinct
signatures.

#2 seems very nice for the TLS use case, especially as we've seen
collisions in older hash functions being used in real-world attacks against
TLS (e.g. Flame). I'm not saying I expect to see collisions in SHA-256 any
time soon, but I would hate to see #2 rendered unavailable because we can't
otherwise meet the requirements of low-memory devices signing large amounts
of data (FWIW, I think in most real-world use cases in those environments
the data is always going to be hashed in advance, probably by another
computer which actually has the memory to compute the hash)

-- 
Tony Arcieri