Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-12
"Scott Fluhrer (sfluhrer)" <sfluhrer@cisco.com> Wed, 05 September 2018 01:50 UTC
Return-Path: <sfluhrer@cisco.com>
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 6D5FF130DC1; Tue, 4 Sep 2018 18:50:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.511
X-Spam-Level:
X-Spam-Status: No, score=-14.511 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 gupSXOYMqSDv; Tue, 4 Sep 2018 18:50:08 -0700 (PDT)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 04AD1128CFD; Tue, 4 Sep 2018 18:50:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=11008; q=dns/txt; s=iport; t=1536112208; x=1537321808; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=1ZsV6nikTCItvecNnGe6u0sIULt64xy3jKyl6JSpjYQ=; b=lQA8nq8pVAQTLfqxaMPKppA1/yUfD4RakLYlIptJCHcgP0lQ2AbMXtqc XTBdI+mG3UhJLaTv5rn2THxHyLPI+uc9SyARtLJ0dIhWCDh1gX9LREZC3 xHZf6iMfHAW8zbiLEhT28GSzpb5bwds7B6nTTtD1rTRj63zk2k6naT2zA 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AdBwBFNY9b/5ldJa1aGQEBAQEBAQEBAQEBAQcBAQEBAYNOgWQoCoNolESCDYM9knAUgWYLhGwCF4MgITYWAQIBAQIBAQJtKIU3AQEBAwEjEToLBQcEAgEIEQQBAQMCJgICAjAVCAgCBAENBQiFEwijSYEuiguBC4lNF4FBP4ESghR+hGaDGYJXAo0yjiQJAo9vH45Zkz4CERSBJCQMJYFVcBU7gmyCJAEXjhdvjFWBHAEB
X-IronPort-AV: E=Sophos;i="5.53,331,1531785600"; d="scan'208";a="166713798"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Sep 2018 01:50:07 +0000
Received: from XCH-RTP-010.cisco.com (xch-rtp-010.cisco.com [64.101.220.150]) by rcdn-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id w851o6WQ029006 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 5 Sep 2018 01:50:06 GMT
Received: from xch-rtp-006.cisco.com (64.101.220.146) by XCH-RTP-010.cisco.com (64.101.220.150) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 4 Sep 2018 21:50:05 -0400
Received: from xch-rtp-006.cisco.com ([64.101.220.146]) by XCH-RTP-006.cisco.com ([64.101.220.146]) with mapi id 15.00.1367.000; Tue, 4 Sep 2018 21:50:05 -0400
From: "Scott Fluhrer (sfluhrer)" <sfluhrer@cisco.com>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, "cfrg@irtf.org" <Cfrg@irtf.org>
CC: "irsg@irtf.org" <irsg@irtf.org>
Thread-Topic: [Cfrg] irsg review of draft-mcgrew-hash-sigs-12
Thread-Index: AQHUP5sE+MMYhxHVPkudSRCKZ9gygaTfdUnggAGmYoD//8xf8A==
Date: Wed, 05 Sep 2018 01:50:05 +0000
Message-ID: <c49c33c775df425ca76886082b3b19c2@XCH-RTP-006.cisco.com>
References: <be39f4e5-1cf7-9bf4-1bcb-6192e2168137@cs.tcd.ie> <b822dc1c93ae440291cabd642404d671@XCH-RTP-006.cisco.com> <59d9a102-8ba8-3469-8277-3facb0dd6a11@cs.tcd.ie>
In-Reply-To: <59d9a102-8ba8-3469-8277-3facb0dd6a11@cs.tcd.ie>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.98.2.55]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.150, xch-rtp-010.cisco.com
X-Outbound-Node: rcdn-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/-gizMia9aH0225278DFxJAwJfVE>
Subject: Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-12
X-BeenThere: cfrg@irtf.org
X-Mailman-Version: 2.1.29
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: Wed, 05 Sep 2018 01:50:11 -0000
Now, I am just about ready to push out the latest version of the draft; I thought I'd give you some responses before I do so. > -----Original Message----- > From: Stephen Farrell <stephen.farrell@cs.tcd.ie> > Sent: Tuesday, September 04, 2018 8:04 PM > To: Scott Fluhrer (sfluhrer) <sfluhrer@cisco.com>; cfrg@irtf.org > Cc: irsg@irtf.org > Subject: Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-12 > > > Hiya, > > > > >> > >> (3) As an editorial comment, section 6 isn't near as clear as section > >> 5 for this reader - 5 was really well described, but I found 6 quite > >> confusing. If it were possible to improve that, that'd be great. I > >> think describing HSS by saying that the private keys from the leaves > >> of the parent tree are used to sign the root of the child trees would > >> have helped me a lot. (Assuming that the picture on slide 19 of [2] > >> illustrates what's going on with HSS, but without introducing the > >> reservation idea.) See also the specific nitty comments on section 6 > >> below. All that said, while it took me a while to understand the text > >> in section 6, I did eventually, and I guess an implementer would > >> also, so publication without changing this would be ok. > > > > Ok, I tried adding this text near the top of section 6: > > > > In HSS, we have a sequence of L LMS trees, where the public key for > > each LMS tree is signed by one of the leaves of the next LMS tree (and > > the public key of the last tree is effectively the public key for the > > entire HSS system). For example, if we have a three level hierarchy > > (L=3), then we have: ... > > That'd have helped me as a reader yes. Rereading it, I saw that the beginning organized the levels backwards compared to the rest of the document, so I reworded it. I believe that the revised text is equally helpful. > > >> (4) There's a lack of guidance as to what is mandatory to implement. > >> The only thing you really say along those lines is that > >> "implementations MUST support HSS" with L=1. I think it'd be better > >> if you picked (exactly!) one LMS option and said that that was MTI. > >> That's just my opinion and I guess the RG were ok with not being that > >> specific, so this oughtn't hold up publication if the RG are still ok > >> with that and/or the authors really don't wanna pick one. > >> OTOH, pretty much every CFRG RFC that has more than one choice causes > >> debate in IETF WGs when it comes time to use those, so if picking one > >> was doable, that'd be a fine thing to do I reckon. > > > > That has not been a topic that's come up, either between us, nor on > > the mailing list. > > > > I don't personally feel comfortable in mandating something without > > discussing it first. > > Fair point. We should bear in mind though that discussing this once in CFRG is > maybe better than every IETF WG that wants to use LMS re-doing the > discussion but based on less understanding of the scheme (if, that is, a CFRG > discussion results in selecting one option as MTI). > > > Does anyone else what to chime in? Should we mandate that a verifier > > be able to recognize anything in the draft (which isn't all that many > > options currently)? > > I'd argue for a tighter spec than that myself. (Just as one > input.) My take would be to say that LMS_SHA256_M32_H20 with > LMOTS_SHA256_N32_W8 is the only MTI option for signers or verifiers. Hmmm, H=20 takes a bit of time to do key generation. Now, I do know of a trick that allows you to do an effectively smaller H (while still using that parameter set); the verifier doesn't need to know about it. However, that trick is not currently described in the draft. > > My argument for that is that I think there'll be applications for which that > could work, if one has a key roll-over scheme (e.g. last N sigs need to sign a > new tree root), and that such roll-over will absolutely be needed by > applications so we ought not allow so many sigs that people decide to not > implement any key roll-over. h=15 might be too shallow but I'd be fine if that > was the one and only MTI; I'd argue against h=25 as the only MTI as that may > be too deep to force implementers to deal with key roll-over. I picked > LMOTS_SHA256_N32_W8 as that has the shortest sig which I think will be > important for getting any traction but I wouldn't argue against the w=4 > variant if that had some benefits. I don't believe "key roll over" can work in general (because verifiers might not hear about the key change). I would recommend HSS with L=2 (with two H=20 trees, that's literally a trillion signatures, which should be enough for almost any application) > > And to be clear: picking an MTI here just means that those who want to use > this won't have to, but can if they want, argue about what's right for their > particular situation. That is the problem with a single MTI; there are a number of different possible applications, each with different requirements. > > > > >> > >> (5) The IANA registries seem a bit odd: why no HSS registry? > > > > Because there are no HSS-specific opaque values. The only > > HSS-specific field in the public key/signature is the L value, which > > is a small integer (which obviously needn't be registered with IANA) > > Hmm. Not sure I agree there - would it be wise to accept and try to verify an > L=2^32 HSS signature? The draft mandates that 1 <= L <= 8. > What about API issues for a library that implements > private key handling, how would an application ask for a 20/15 private key? For my implementation, the application passes two arrays, one of the LM-OTS parameter sets, and one of the LMS parameter sets. > How about if someone defines a SHA3 based LMS - do verifiers have to > decode into the signature to find that out? That'd be encoded in the LM-OTS and the LMS parameter sets. > > All that said, I don't have the HSS signature format in my head really, so the > above may not really argue for having HSS codepoints. (Or they may:-) Or > maybe it's fine to not expect the same level of interop for HSS as for LMS? > (I'm not clear if that's considered an important goal or not.) > > > > >> Why are the code points for the two registries contiguous? > > > > Combination of coincidence and historic accident. > > Sounds like a potential source of confusion to me. > > > > > Originally, we had both N=32 and N=16 parameter sets; for some reason, > > in the -04 version of the draft, the LM-OTS N=32 parameter sets came > > first (and were assigned values 1 through 4), and in LMS the N=16 > > parameter sets came first (being assigned values 1 through 4, with the > > N=32 parameter sets being assigned values 5 through 8). > > In the next version of the draft, we removed the N=16 parameter sets > > (as they weren't quantum-safe), but left the N=32 assigned values the > > same, giving the structure you see. > > Ah, that history wasn't clear. I don't think it needs to be in the RFC though. It > does mean that my comment #5 oughtn't be blocking though. > > > > >> What if IANA are asked to register a value of 0x00000005 for the > >> LM-OTS registry? > > > > That would not be an issue at all. The LMS and LM-OTS registries are > > separate name-spaces; when parsing a public key or signature, we > > always know which we are dealing with, and so there are no issue if > > the same value is given different meanings to the different > > registries. > > So maybe make that point in section 8? If for no other reason, it'd head off a > crazy developer with code that branches on just the code points and not the > combo of alg and codepoint? The will mention that, however it's more a note to IANA ("you don't have to keep the values disjoint") more than a note to an implementer (which I wouldn't expect to be confused; we never just a code point in a context which makes it unclear which one it is).
- [Cfrg] irsg review of draft-mcgrew-hash-sigs-12 Stephen Farrell
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Scott Fluhrer (sfluhrer)
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Stephen Farrell
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Scott Fluhrer (sfluhrer)
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Stephen Farrell
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Martin Thomson
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Richard Outerbridge
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… A. Huelsing
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Salz, Rich
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Salz, Rich
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Richard Outerbridge
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Benjamin Kaduk
- Re: [Cfrg] irsg review of draft-mcgrew-hash-sigs-… Scott Fluhrer (sfluhrer)