Re: [Cfrg] draft-irtf-cfrg-eddsa -- one final proposal for domain separation (context labels) for ed25519

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Thu, 21 April 2016 20:43 UTC

Return-Path: <dkg@fifthhorseman.net>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6DDA412E250; Thu, 21 Apr 2016 13:43:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=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 dveVY2p27I-u; Thu, 21 Apr 2016 13:43:19 -0700 (PDT)
Received: from che.mayfirst.org (che.mayfirst.org [162.247.75.118]) by ietfa.amsl.com (Postfix) with ESMTP id 46AF712DD27; Thu, 21 Apr 2016 13:43:19 -0700 (PDT)
Received: from fifthhorseman.net (unknown [38.109.115.130]) by che.mayfirst.org (Postfix) with ESMTPSA id 895A7F991; Thu, 21 Apr 2016 16:43:15 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 6BDFB2038F; Thu, 21 Apr 2016 16:43:15 -0400 (EDT)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Ilari Liusvaara <ilariliusvaara@welho.com>, Benjamin Kaduk <kaduk@MIT.EDU>
In-Reply-To: <20160421195014.GA26169@LK-Perkele-V2.elisa-laajakaista.fi>
References: <87bn543id1.fsf@alice.fifthhorseman.net> <D33CFF00.6A70D%kenny.paterson@rhul.ac.uk> <11c960b5f1fa42aaaf4cd0a6961332ec@usma1ex-dag1mb1.msg.corp.akamai.com> <87ziso1m0l.fsf@alice.fifthhorseman.net> <20160420142953.GA23528@LK-Perkele-V2.elisa-laajakaista.fi> <87potk1de7.fsf@alice.fifthhorseman.net> <20160420182617.GA23652@LK-Perkele-V2.elisa-laajakaista.fi> <87bn540xh3.fsf@alice.fifthhorseman.net> <20160421043947.GA24394@LK-Perkele-V2.elisa-laajakaista.fi> <alpine.GSO.1.10.1604211349530.26829@multics.mit.edu> <20160421195014.GA26169@LK-Perkele-V2.elisa-laajakaista.fi>
User-Agent: Notmuch/0.21+128~g620f892 (http://notmuchmail.org) Emacs/24.5.1 (x86_64-pc-linux-gnu)
Date: Thu, 21 Apr 2016 16:43:15 -0400
Message-ID: <87zismzo9o.fsf@alice.fifthhorseman.net>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/cfrg/qPivmdvAAylhr8h97Al0QHOrSK4>
Cc: Ondřej Surý <ondrej@sury.org>, "draft-irtf-cfrg-eddsa.all@ietf.org" <draft-irtf-cfrg-eddsa.all@ietf.org>, "Kaduk, Ben" <bkaduk@akamai.com>, "cfrg@ietf.org" <cfrg@ietf.org>
Subject: Re: [Cfrg] draft-irtf-cfrg-eddsa -- one final proposal for domain separation (context labels) for ed25519
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/cfrg>, <mailto:cfrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg/>
List-Post: <mailto:cfrg@irtf.org>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/cfrg>, <mailto:cfrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Apr 2016 20:43:20 -0000

On Thu 2016-04-21 15:50:14 -0400, Ilari Liusvaara wrote:
> I actually implemented the scheme (modifying the python reference
> implementation in the draft (modifying H(x) to be SHA512(context|x)).
>
> - Modified and base scheme generate identical signatures and validate
>   identical signatures for empty context (as expected).
> - Signature of ('abc','def') is different from signature of ('abcd','ef')
>   and does not cross-validate. Nor does either cross-validate with
>   ('',abcdef).

Is this because you're including the NUL octet between the context and
the signature, or for some other reason?  if so, then i'd phrase it as:

 signature of ('abc\0', 'def') is different from signature of ('abcd\0', 'ef')

which i think everyone would agree is the right outcome.

Or are you talking about some other scheme?

> [ben kaduk wrote:]
>> From where I am sitting, it seems like there are two options: does
>> the signing API include a context input?  If yes, use that input; if
>> no, prepend the context to the message to be signed in my own code.
>> What am I missing?
>
> This does not work.

Why not?  Can you explain more?

    --dkg