Re: [Curdle] Comments on draft-housley-cms-eddsa-signatures

"Jim Schaad" <ietf@augustcellars.com> Fri, 06 May 2016 00:39 UTC

Return-Path: <ietf@augustcellars.com>
X-Original-To: curdle@ietfa.amsl.com
Delivered-To: curdle@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E04CE12D522 for <curdle@ietfa.amsl.com>; Thu, 5 May 2016 17:39:56 -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, RCVD_IN_DNSWL_NONE=-0.0001] 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 g_6wbNDNJa2H for <curdle@ietfa.amsl.com>; Thu, 5 May 2016 17:39:55 -0700 (PDT)
Received: from smtp3.pacifier.net (smtp3.pacifier.net [64.255.237.177]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F1E6712D51F for <curdle@ietf.org>; Thu, 5 May 2016 17:39:54 -0700 (PDT)
Received: from hebrews (c-24-21-96-37.hsd1.or.comcast.net [24.21.96.37]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: schaad@nwlink.com) by smtp3.pacifier.net (Postfix) with ESMTPSA id 7718A38F1A; Thu, 5 May 2016 17:39:54 -0700 (PDT)
From: Jim Schaad <ietf@augustcellars.com>
To: 'Russ Housley' <housley@vigilsec.com>
References: <086701d1a0e4$965f2320$c31d6960$@augustcellars.com> <9458BE75-3657-4726-949C-6C9D7511AF21@vigilsec.com> <0c7301d1a4a2$cc47a680$64d6f380$@augustcellars.com> <B0C9A58C-2BDB-4CB5-867E-CE6FE02F9AA4@vigilsec.com> <106f01d1a70f$4d5c07c0$e8141740$@augustcellars.com> <549A2D33-98AF-4935-98A3-2EF475904B78@vigilsec.com>
In-Reply-To: <549A2D33-98AF-4935-98A3-2EF475904B78@vigilsec.com>
Date: Thu, 05 May 2016 17:39:53 -0700
Message-ID: <10a001d1a72f$cece40a0$6c6ac1e0$@augustcellars.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQIfBLXiu/ETDZDECg/NZrmdRKtKuwH6YJMHAx0dd7oCqvUiewJXg3G6AjjTr8Serbx7IA==
Content-Language: en-us
Archived-At: <http://mailarchive.ietf.org/arch/msg/curdle/YZXG8ZKGRVJUHputPTj3Sct-Tes>
Cc: curdle@ietf.org
Subject: Re: [Curdle] Comments on draft-housley-cms-eddsa-signatures
X-BeenThere: curdle@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "List for discussion of potential new security area wg." <curdle.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/curdle>, <mailto:curdle-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/curdle/>
List-Post: <mailto:curdle@ietf.org>
List-Help: <mailto:curdle-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/curdle>, <mailto:curdle-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 May 2016 00:39:57 -0000


-----Original Message-----
From: Russ Housley [mailto:housley@vigilsec.com] 
Sent: Thursday, May 05, 2016 5:08 PM
To: Jim Schaad <ietf@augustcellars.com>
Cc: curdle@ietf.org
Subject: Re: [Curdle] Comments on draft-housley-cms-eddsa-signatures


On May 5, 2016, at 4:47 PM, Jim Schaad <ietf@augustcellars.com> wrote:

>> A second worry is that SHAK256 is defined as being an XOF function 
>> and not a hash function.  I think it might make more sense to say 
>> that we should be using SHA3-256 rather than SHAKE256.  In any event 
>> the OID assigned on the NIST web site does not make any statements 
>> about the size of output of
>> SHAKE256 and if we are going to use it as a hash algorithm here we 
>> need to do that.  Suffice it to say that I don't think that using
>> SHAKE256 as a hash algorithm here is sufficiently defined.
> 
> Doesn't this need to be addressed in draft-irtf-cfrg-eddsa?
> 
> [JLS] No, I am not worried about how SHAKE256 is being used in the 
> EdDSA process (it is fully defined there), I am looking at the use of 
> SHAKE256 when it is placed in the digestAlgorithm attribute of the 
> SignerInfo structure.  In this case the length of the output needs to 
> be specified (i.e. how long is the message digest signed attribute).  
> This is defined for hash algorithms, but is not defined for XOF functions.

I was not understanding you issue until now.

You are worried about this:

       Compute SHAKE256(dom(F, C) || prefix || M, 114), where M is the
       message to be signed, .

Maybe we just make M = SHA512(ValueOnly(DER(SignedAttrs)))

Russ

[JLS]  No that is not what I am worried about.  What I am worried about is

  SignerInfo ::= SEQUENCE {
      version CMSVersion, --  == 1 or 3 
      sid SignerIdentifier,  -- Identifier of the signer
      digestAlgorithm DigestAlgorithmIdentifier,  --- AlgorithmIdentifier(
{hashAlgs 12}, absent )
      signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL, { contains
Attribute{ aa-messageDigest, SET OF { OCTET STRING { SHAKE256(Message Body)
}}
      signatureAlgorithm SignatureAlgorithmIdentifier,  -- id-edDSA
      signature SignatureValue, -- cryptographic result of eddsa with
		--  SHAKE256(dom(F, C) || prefix || DER(SignedAttrs), 114)
		--      where DER(SignedAttrs) = M just as would be
expected.
      unsignedAttrs [1] IMPLICIT Attributes
          {{UnsignedAttributes}} OPTIONAL }


The length of SHAKE256(Message Body) is not defined nor is there any place
for it to be specified by a parameter.   Specifically one needs to be able
to say that the messageDigest = SHAKE256(Message Body, 114)  (Or maybe just
57? If you want to do some type of size matching since the EdDSA uses a
double width hash algorithm internally)

Jim