Re: [Cfrg] [irsg] IRSG review of draft-irtf-cfrg-xmss-hash-based-signatures-08

"Paterson, Kenny" <> Mon, 19 June 2017 16:39 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2D9CC131603; Mon, 19 Jun 2017 09:39:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.7
X-Spam-Status: No, score=-4.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_HELO_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id bCXUz39XI43T; Mon, 19 Jun 2017 09:39:27 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 63BF71315E7; Mon, 19 Jun 2017 09:37:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1-rhul-ac-uk; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fy3uDn4bRURrMRxrIJ/da459CLfQjdbFW4u5TghmWgg=; b=vputIbhkcTCFf0PGHLHzcjGdKxC9kgG15TBuYr9atLtS03ru/aOVfPPaylW9XdzpVUxlmmcUWXYFrRFinBS8LcJWHUxP3Hx5eLW2gJgpBw3GxInTPVHQF81BOd+yQaI8FOaiFBtuPq7s8NyIcjQmqtV00b9UCy4/pJJderaro/s=
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.14; Mon, 19 Jun 2017 16:37:28 +0000
Received: from ([fe80::a0cf:ee9d:63a3:d1ab]) by ([fe80::a0cf:ee9d:63a3:d1ab%14]) with mapi id 15.01.1178.018; Mon, 19 Jun 2017 16:37:28 +0000
From: "Paterson, Kenny" <>
To: Stephen Farrell <>, Alexey Melnikov <>, "" <>, "" <>
CC: "" <>
Thread-Topic: [irsg] IRSG review of draft-irtf-cfrg-xmss-hash-based-signatures-08
Thread-Index: AQHSplCaq+TMeSvbmEmNdyOfQ3yIYKHhJb6AgAABdICAQ2hIgIACmomAgAXOyYA=
Date: Mon, 19 Jun 2017 16:37:28 +0000
Message-ID: <>
References: <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-GB, en-US
Content-Language: en-US
user-agent: Microsoft-MacOutlook/
authentication-results:; dkim=none (message not signed) header.d=none;; dmarc=none action=none;
x-originating-ip: []
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; AM4PR0301MB1906; 7:aP6I/yhSIpIilYjXQTsJ0hU0H+7NikBgoY4WoKMVKIE0m/dudWJ5e67Tyf8WZXM2gcNwbQPB2fezjXgWu2M6ltbrybAx65bELuwHAJ5ol5BgNR+yTFF+0oChfTk9UzuWo2QzYUyEap4se9Lnk7Ut7ddrTSsXbegIKTwHmwUedxHgmff+2d+3DRpXnF8AftEKDna79JEQcvgxhEpNNtg0o8qz/8Ed2zZMEi1xryZ/fXm4xMmmZEtHPMrUoBY+J30c+znurHmcKxB1ThI1AZCa7MF4ZBxA6DGF7VCqFkulnLa/Y5jrr2rL5bHPlUXnwVwldCraJwQy98AGxsrsnAnt56Abkc50PgVnazGMuO5yMKTS79p/FvpeGfrPwEcjxzk2ZWJOT7HYjnXEKSBd4Ckkfh+J+2gjLhMcjdMLPNOryneQ5cQIB0KeHBs280OPpk7gHFQg0d+2raNDD0C0IpW6Juwy9xwdcY0yWWcfmnyisR8uZcRimax8Cwgj33E9f/Cxd0yRdoepdiD4DQNS2BoN6RguScrsIW6HzXtmC1s4DxbMVtqO6N9MOvsqT3n+iIsfzDSSz9r5TjlIfg6USVGNnB0CymgOXXfBBkjjb6Dly7ddLeXwNl1tEcEDXohld4jTA14q364sJVRXRsMMxvGJk0xbm/tBFhMADA/+lAXLnJ55temL3loAZmQgE5RgJwGHFaJukJ/a1KXD+fmj4o6LmjSdhbbUKGse22WkzHMXuj4MdNI8Ix4vRXsJNuL2FNdi+hCCJIQrPBNzJZ0rKMkt4hPS87kXk81U41Pfjwve6BU=
x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39410400002)(39850400002)(39400400002)(39840400002)(53754006)(24454002)(53936002)(5250100002)(6512007)(99286003)(2201001)(305945005)(93886004)(14454004)(72206003)(2906002)(25786009)(3660700001)(53546009)(478600001)(8676002)(6246003)(54356999)(38730400002)(76176999)(81166006)(50986999)(551544002)(66066001)(4001350100001)(6486002)(83506001)(8936002)(229853002)(74482002)(189998001)(2950100002)(2900100001)(42882006)(36756003)(86362001)(102836003)(3846002)(6116002)(6436002)(7736002)(5660300001)(230783001)(6506006)(3280700002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0301MB1906;; FPR:; SPF:None; MLV:sfv; LANG:en;
x-ms-office365-filtering-correlation-id: ee8283f4-30e8-4494-4609-08d4b731793d
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:AM4PR0301MB1906;
x-ms-traffictypediagnostic: AM4PR0301MB1906:
x-microsoft-antispam-prvs: <>
x-exchange-antispam-report-test: UriScan:(32856632585715)(192374486261705);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123555025)(201703131423075)(201702281529075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123560025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM4PR0301MB1906; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM4PR0301MB1906;
x-forefront-prvs: 0343AC1D30
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2017 16:37:28.0484 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2efd699a-1922-4e69-b601-108008d28a2e
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB1906
Archived-At: <>
Subject: Re: [Cfrg] [irsg] IRSG review of draft-irtf-cfrg-xmss-hash-based-signatures-08
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Crypto Forum Research Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 19 Jun 2017 16:39:30 -0000

@Stephen: thanks for making this thorough study of the draft.

@draft authors: can you please go through this feedback carefully and
implement the necessary changes?

The toughest part will likely be selecting one set of parameters. If
Stephen is amenable (but maybe he is not), I'd suggest highlighting one
set amongst the several listed as being your "preferred" set (rather than
including just one set as Stephen suggests) - that'd be a halfway house
between what you currently have and what Stephen suggests.



On 16/06/2017 01:56, "Stephen Farrell" <> wrote:

>Hi all,
>Apologies for being slow in reviewing this. My comments are below.
>I have two things that I think really ought be checked before this
>is ready for publication. When that's done, then I think this will
>be ready to publish.
>I also have two further comments/suggestions that I think would
>be significant and relatively easy improvements to the document.
>Those don't affect the IRSG review process though, considering the
>RG were presumably happy enough as-is. (I'd still argue for those
>changes though:-)
>And I've a bunch of mostly editorial comments that the authors can
>choose to take on board or not as they see fit.
>possible errors:
>- 3.1.2: Algorithm 2: "if ( (i + s) > w - 1 )..." seems to be
>missing parenthesis around the "(w-1)" to me.  Without those
>brackets I could interpret that test to always result in false.
>- 4.1.9: should the call to setIdx in alg 12 be after treeSig?
>  as-is you seem to have incremented the index too soon so
>that when alg 11 does getIdx it'd presumably get the
>incremented index and cause verification failure. I think
>the same is true of alg 16 as well, in section 4.2.4.
>significant comments, but likely fixable:
>- section 5: there are waaaay too many options defined here.
>  As-is, this will damage potential deployment of xmss. I
>would strongly suggest deleting all of the options except the
>minimum, that being one (and only one) set of parameters for
>XMSS and one for XMSS^MT. If others are needed later, those
>can be defined later. (Note that the damage done here includes
>the hours of developer time that would be wasted debating
>which of these choices to implement/use. Consider the case of
>pre-hash variants of eddsa for an ongoing example.)
>- section 5 (or an appendix) should contain some test vectors
>  (including intermediate values). Without those, implementers
>have a much harder time of getting their code right.
>nits, near-nits and other ignorable things:
>- abstract: I'd suggest s/can withstand attacks/ can withstand
>  so-far known attacks/
>- 1.1: You say if used >1 time "no cryptographic security
>  guarantees remain." It might be clearer to give some
>examples of consequences, e.g. that the attacker can forge new
>signatures or whatever.
>- 1.1: I think you might mention that XMSS and other OTS ideas
>  require some new crypto APIs. I'm not aware if anyone has
>developed proposals for such, but would be interested if
>someone has.
>- 2.3, 2nd last para: you might want to say what happens with
>  e.g.  B<<2 where B=0xf0. I assume the result is 0xc0 but
>someone might think it's 0x3c0 or even 0xc3.
>- 2.5: having the "type word" as octet 15 of a 32 byte address
>  seems odd. Is there a reason why? (Just wondering.)
>- 2.6: It seems odd to given an example where the input and
>  output of base_w() are the same. A different example may be
>more useful. (More examples generally would be great.)
>- 3.1.3: maybe note that "/" means nothing? Which I assume it
>  does? Better might be to just say that.
>- 3.1.5: "a maximum value of len_1 * (w - 1) * 2^8" is missing
>  units
>- 3.1.5: "the variable" - which one?
>- 3.1.5: "For the parameter sets given in Section 5 a 32-bit
>  unsigned integer is sufficient." Sufficient for what?
>- 3.1.5: The ascii art at the end of p16 doesn't help much.
>- 3.1.7: The "MUST match" statement doesn't seem enforceable
>  nor testable so I'm not sure it's a good idea to include.
>OTOH, I do get the idea of using 2119 terms for emphasis.
>- 3.1.7: I think it might be useful to point out any specific
>  problems associated with using a low entropy human memorable
>secret (password) for the value S. No matter what you say,
>people will do that, so better if you can say you told them
>specifically about downsides of doing that.
>- 4.1.12: I'm not sure if the MAY there is correct or not.  If
>  it means "you MAY use a different algorithm to get the same
>output as alg 12" then that'd be fine. If something else is
>meant I'm not sure what you're saying, and it'd probably be
>better to not even mention it.
>- section 5 should also spell out the signature and
>public key sizes in bytes and ideally, if you keep multiple
>options, (but please don't:-) describe relative or measured