[CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid-kems-12 and draft-irtf-cfrg-concrete-hybrid-kems-04
Deirdre Connolly <durumcrustulum@gmail.com> Sun, 12 July 2026 02:30 UTC
Return-Path: <neried7@gmail.com>
X-Original-To: cfrg@mail2.ietf.org
Delivered-To: cfrg@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id C6F231153A945 for <cfrg@mail2.ietf.org>; Sat, 11 Jul 2026 19:30:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783823426; bh=ZXr4rI0VteIRRM16CXirHjKNVjdI06/UZ3DOv/1Vj+E=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=RMS++zi3VFuwv6lu5zrezekO2s8C850bA2UzPaHxcDrgon1cPsYjvIi1r6ozsxkwN RVVRzmzXPynows+fb6pYxfxLGFgOaM4hS09ba8fSIwjBHw50ulU2aNMsRo3QFRrmrA s9Two+5kxxN/zsQb9o0IV6KIitbWw0YaXSJF0yDM=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.848
X-Spam-Level:
X-Spam-Status: No, score=-1.848 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sVOw-qmcy5JD for <cfrg@mail2.ietf.org>; Sat, 11 Jul 2026 19:30:25 -0700 (PDT)
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id C95681153A93D for <cfrg@irtf.org>; Sat, 11 Jul 2026 19:30:25 -0700 (PDT)
Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-5aea9d606f0so2221990e87.3 for <cfrg@irtf.org>; Sat, 11 Jul 2026 19:30:25 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1783823424; cv=none; d=google.com; s=arc-20260327; b=O1z9K142/iRpblgtNl3sGjVZvfFFFuxD0GD6OkPdSPo/+qe9Y1ZNec3pBKoz+X9w8z eDIbt4RWa6K+LgmnbqbriqQ5rM95uigC13siYIvP8PB1x9VYQt8ShbfT2wbtcIHPdYZl Md+c/IGWm79uBcW+94XrkoIZwVTeCqXCR6DJ2BrvHrfI4nqI5hy4j389CrSssIgx3D09 LawW6PYtEaNSNnaifDt94FaqrapmdKP6O8xp1kgCIWQTpQp2LOhANVAwHj2TmlAbzzXr xnIHVTp/u1kekxC0hNquLeg4ok93kEDNtxCzWkEWlaJ9Z207dmLba4ZJVqpoHnbUWB5m nYrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=pEHRt//kqtqn1sjqWDxfDArJ1CKcE/gXy3nq+O4xCGU=; fh=8vEzmN8VUU9h8lOpkSDOgd1uVOg5hPDjOQ8iiVPInjI=; b=DZCy+Y65TKIi1k2KixgUECBMjKcu1dSwAxuAIIbkwcYheJj2qWbECpGsTpbesgruVP vlzuOyeNMdEATRiIUtA8xOI7QTfs3rklKJvy3cNlVEXB/UgXS89vS+KsIHQ1cASPpwUP hZ0upYq6MO181U9jrQ4vNole1YbqYIqFkMTqSl1KThYj0THsvORvF4eVNCgtHVoGtiO5 OZV47wKtUr1HB0YIjY3Xu8c7iu66aU8Kcvc5lVSBx3oYJAg3YHwunpx3wBSM8qiILYKC xFkKn2PdlFQRySzJIsBjEkL+OStUQYSDcki7HjE9eWQ/6RDLEXkWcZsdqW/ZgOD2bQJb Q2cw==; darn=irtf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783823424; x=1784428224; darn=irtf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=pEHRt//kqtqn1sjqWDxfDArJ1CKcE/gXy3nq+O4xCGU=; b=mSb12TOdI9V4t81OhePkAGmlO4K2fKP2yqraRNGbwRDz6jwdBtJCCl2QEInypBsYFq tHVU6t3XiPLrj9jkohu8BxiBdWQdSgCw/FQTT+/hG3wqLA7ij0+6F+eiVd55CWKZg8uU qK06n5oIbeiCWBEyIBgSMTUuAQgTsD7IOEdlwyid2h1CHEizHk+WnNDuQCMg17W69pzv Weop8zSjC6ls5yaFo4nva9a890xi6By0LRbEMJ/MosPaq/3uflyeKfnQlOVnQhrw+0AV CWx46GS58h0jz+L9KApwiz9Kf6JrJkzKo8nhgLbZR3gsk2whpvZ+y/wtJquksF7PZG13 BTOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783823424; x=1784428224; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=pEHRt//kqtqn1sjqWDxfDArJ1CKcE/gXy3nq+O4xCGU=; b=ly1in4HPMyfeOiJznMpoQ5gw2hkP7oscfNZa1b/2R7E6fip9/ri9SlddNHnEO0Rswy sca8wX5ld3IofF+mYWGRsQWGunPC0Cy3w/xPb1Rzz5shJTqS/g0XyFgvcYd6OR4TwIH1 FpEhObDqOCvZXN80E/0xRUIsYrLks14dHdiTqjtJ0R4uiYK28uBjv+PEpTTRTdFGgGqF itRvH6hkSosTSRUNCboHVkoQKXeSN6FA3/LG4yoQ8foRo4dU8W5aUPMXn55KVOW92sqe Za5Mm6yxosER24V3+Mqw6qGJ0HuCDHEtMvmqPWsjdfBgmfBHXgm2fq8OyzjP2hgv7nLt hsxA==
X-Forwarded-Encrypted: i=1; AHgh+RpujXAm6CIViSA70SxHjfGZE85f3wtd2OWFxWjP2E8s6f0w/5RTZCcKwWACmMxGL86pQAj2@irtf.org
X-Gm-Message-State: AOJu0YymWLWZ8NdvXd62RpUuFrQEeKD722ZS5qpSxoPbAwW54RNg9Z/b UTNVOGBn6QkKvRci7tXBvfvXObsIofwE1Wu9shJlWn/QHTGxIYOtvfNVwL1VZkc0Ui6g5DGGq7S S1iHxo37oY6PljPVAYdTjJGqvurl6MnA=
X-Gm-Gg: AfdE7cku5fGVaxCSjs+ixBmf1x7FsQOGCqsdLvk4mCHWX5l/frOTiVLizFgBynv1nsG VoTTr084dMh2NgNlxCU7D7zQc+xwglvlQL4Tt+yoqH5JiLIb5A15QAt9+foXe+qV+fQZFQYWiyh 4rzSLjfnP+P/pM9kbH/b6hJmyo7L90IDg1xcGpuMBBc5IsYN+9A/3Y3KveXtNLJBjo/k5t8feox x3F6PZ2spXIZyaeYrErI8J0l/vk1Ps+W3fwU+OsVYnSJfpJs8TiLX2pP3ubPawSMGnHOH+LLFa6 D4izr4Bt
X-Received: by 2002:a05:6512:2c0e:b0:5ae:a3c3:f123 with SMTP id 2adb3069b0e04-5b02366ce0fmr975048e87.25.1783823424188; Sat, 11 Jul 2026 19:30:24 -0700 (PDT)
MIME-Version: 1.0
References: <CAOjisRyRbkNif7mGD5TcoEcUsmbfeKE_wVHq+JH8VMySLcC47g@mail.gmail.com> <31D56016-A45C-4773-8091-DD8A204D428B@runbox.eu>
In-Reply-To: <31D56016-A45C-4773-8091-DD8A204D428B@runbox.eu>
From: Deirdre Connolly <durumcrustulum@gmail.com>
Date: Sat, 11 Jul 2026 22:30:09 -0400
X-Gm-Features: AVVi8CfOXQ-2Do3pc2aLJL9YlLruZe9KgtaFKKhuSdSsDjlxg-vuJsq0A4XRr7c
Message-ID: <CAFR824yyiUGMkeBxaAbK916ULcOWKoGUf-ixfWr9t0Q9+Wg=Ew@mail.gmail.com>
To: Neil Madden <neil.e.madden@runbox.eu>
Content-Type: multipart/alternative; boundary="0000000000008a78af065660c1e1"
Message-ID-Hash: HVIJ5OWE3SLPI2U5NKK6A4SJHYDPYVG7
X-Message-ID-Hash: HVIJ5OWE3SLPI2U5NKK6A4SJHYDPYVG7
X-MailFrom: neried7@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cfrg.irtf.org-0; header-match-cfrg.irtf.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Nick Sullivan <nicholas.sullivan@gmail.com>, CFRG <cfrg@irtf.org>, cfrg-chairs@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid-kems-12 and draft-irtf-cfrg-concrete-hybrid-kems-04
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/AdAfdVZUDcWuM8SsZ1pRVzfteU8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Owner: <mailto:cfrg-owner@irtf.org>
List-Post: <mailto:cfrg@irtf.org>
List-Subscribe: <mailto:cfrg-join@irtf.org>
List-Unsubscribe: <mailto:cfrg-leave@irtf.org>
> If the PRG takes a seed and returns a fixed-size output, isn't it in fact a PRF instead? Not exactly, see https://www.ietf.org/archive/id/draft-irtf-cfrg-hybrid-kems-12.html#name-security-requirements-for-p : "The functions used to expand a key seed to multiple key seeds is closer to a pseudorandom generator (PRG) in its security requirements [AOB_24 <https://www.ietf.org/archive/id/draft-irtf-cfrg-hybrid-kems-12.html#AOB_24>]. A secure PRG is an algorithm PRG : {0, 1}n → {0, 1}m, such that no polynomial-time adversary can distinguish between PRG(r) (for r $← {0, 1}n) and a random z $← {0, 1}m [Rosulek <https://www.ietf.org/archive/id/draft-irtf-cfrg-hybrid-kems-12.html#Rosulek>]. The uniform string r ∈ {0, 1}n is called the seed of the PRG. A PRG is not to be confused with a random (or pseudorandom) number generator (RNG): a PRG requires the seed randomness to be chosen uniformly and extend it; an RNG takes sources of noisy data and transforms them into uniform outputs. PRGs are related to extendable output functions (XOFs) which can be built from random oracles. Examples include SHAKE256." Strictly speaking we don't need a PRF for this use case (seed expansion), only a PRG, so we don't require it, but in the concrete instances, we do use functions that are also secure PRFs On Sat, Jul 11, 2026, 6:42 AM Neil Madden <neil.e.madden@runbox.eu> wrote: > On 8 Jul 2026, at 11:24, Nick Sullivan <nicholas.sullivan@gmail.com> > wrote: > > > Dear CFRG, > > This message starts a two-week RG Last Call on two related documents. The > last > call ends on Wednesday July 22, 2026: > > Hybrid PQ/T Key Encapsulation Mechanisms (generic constructions) > draft-irtf-cfrg-hybrid-kems-12 > https://www.ietf.org/archive/id/draft-irtf-cfrg-hybrid-kems-12.html > > > I've only had a chance to read through this document so far. I think it > needs some work still. I haven't followed the development of these > documents in much depth, so apologies if anything I raise here has been > mentioned before. But perhaps coming at it with fresh eyes may be useful. > > The introduction describes KEMs as "standardized", but doesn't link to any > standard that defines the KEM API. NIST SP 800-227 is probably the relevant > standard to cite. It uses different syntax compared to the draft, however, > having explicit parameters passed to each method (which seems to invite the > bug of passing inconsistent parameters to KeyGen vs Encaps vs Decaps, but > here we are...). I think the equivalent to DeriveKeyPair(seed) would be: > > DeriveKeyPair(seed) = KEM.KeyGen(params; seed) > > for some fixed "params". I think the syntax in the draft is clearer, but I > think citing SP 800-227 and either using that syntax or showing how it maps > would be a good idea. > > My immediate thought on seeing the definition with both DeriveKeyPair and > GenerateKeyPair was that the latter can be defined in terms of the former > with a random seed, so why have both? This is partly addressed later, but > it still doesn't seem clear to me. I can see that e.g. a HSM manufacturer > may not publicly expose something like DeriveKeyPair in their > implementation of ML-KEM, but is it a good idea to implement one of these > hybrids outside of the HSM, making use of such an implementation? Or would > it be better for the HSM manufacturer to implement the hybrid directly, > making use of whatever internals they wish? The draft tries to accommodate > both options, which makes it confusing to read IMO. Also, if a private key > can either be a seed or a set of component keys depending on the > implementation choice, how can a standard using this document specify the > format of such a private key? Either define a fully generic black-box > construction in terms of established KEM APIs, or else assume that > internals are available. Trying to ride both horses is confusing. > > Without wishing to open a can of worms, the arguments in the introduction > for hybridising PQ and PreQ KEMs would seem to also potentially argue for > hybridising two PQ KEMs instead, e.g. ML-KEM and Classic McEliece. (I think > Soatok made this point recently). That would also hedge against potential > breaks in either, and against implementation errors in either. Or even > three-way hybrids of EC+PQ+PQ. If that is an absurd suggestion, the intro > should spell out why more clearly - efficiency? Key size? Trust in already > deployed code? The wording implies that the constructions in the draft only > apply if one of the components is non-PQ, but I think for the KEM-based > combiners they should work with any KEM, right? Either tighten up the > wording to more clearly state why the draft is only applicable to > traditional+PQ combinations, or else widen it to provide generic hybrid > constructions regardless of the properties of the components. > > Section 4.1: > > "In the notation above, Decaps is written as if it always returns an > output ss; this is an artifact of the Python-like psuedocode used in this > document." > > Python has "-> ss | None" ... > > 4.2: > > The term "nominal group" is a new one for me, and Google seems to agree, > returning nothing useful for that term. I appreciate there was a good > reason for the cited reference to define them when analysing HPKE, but for > this document would the much more common (if not entirely accurate) "cyclic > group" suffice? Or even just saying ECDH/X25519/X448 directly as that is > all anyone is ever really going to use, and the draft already explicit > refers to Diffie-Hellman in the description anyway. > > 4.3: > > If the PRG takes a seed and returns a fixed-size output, isn't it in fact > a PRF instead? > > 4.4 - the description of KDFs also sounds more like a PRF. > > Section 5: > > Unlike some other commentators on this thread, I don't object to defining > some generic constructions for C2PRI KEMs if there is a sufficient > justification. If I was writing a library to implement this, I would use > the type system to (try to) ensure constructions are used appropriately, > something like: > > type KEM ... > type C2PRIKEM extends KEM ... > > def CK(trad: KEM, pq: C2PRIKEM) -> KEM > def UK(trad: KEM, pq: KEM) -> KEM > > Thus enforcing that CK can only be used with a KEM with the additional > C2PRI property. Perhaps the draft could capture something like that? > > On the other hand, I really dislike having separate constructions for > Nominal Groups vs KEMs for the traditional component. Couldn't the draft > instead show how to wrap the nominal group into a KEM via (EC)DH-KEM and > then define the constructions purely in terms of KEMs? > > Section 6.1.1: > > The definition of IND-CCA security for KEMs states that the ciphertext > should be indistinguishable from a random string, and then states that > HPKE's DH-KEM achieves this. But the ciphertext for DH-KEM is a serialized > ephemeral public key on the underlying curve, so is trivial to distinguish > from a random *string*. As far as I'm aware, DH-KEM doesn't require the use > of Elligator or similar. Don't we rather want a left/right definition of > indistinguishability, where the attacker has to distinguish between a > ciphertext for a challenge key vs a ciphertext for a randomly generated > encapsulation key? > > 6.1.2: > > The notion of C2PRI seems related to key commitment in AEADs. Is that a > useful comparison for readers? > > 6.1.3: > > What is the relevance of SDH to the constructions in the document? Is this > a requirement on all nominal groups? Again, can it make do with more > standard CDH/DDH assumptions? > > Best wishes, > Neil > _______________________________________________ > CFRG mailing list -- cfrg@irtf.org > To unsubscribe send an email to cfrg-leave@irtf.org >
- [CFRG] RG Last Call on draft-irtf-cfrg-hybrid-kem… Nick Sullivan
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Thom Wiggers
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Russ Housley
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Richard Barnes
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Richard Barnes
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Russ Housley
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Russ Housley
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Ilari Liusvaara
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Simon Josefsson
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Soatok Dreamseeker
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Richard Barnes
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Soatok Dreamseeker
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Soatok Dreamseeker
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Simon Josefsson
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Richard Barnes
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Muhammad Usama Sardar
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Martin Schanzenbach
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Muhammad Usama Sardar
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Muhammad Usama Sardar
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Muhammad Usama Sardar
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Peter Gutmann
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Muhammad Usama Sardar
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Salz, Rich
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Peter Gutmann
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Ilari Liusvaara
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Neil Madden
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… John Mattsson
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Ilari Liusvaara
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Wang Guilin
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Neil Madden
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… D. J. Bernstein
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Deirdre Connolly
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Wang Guilin
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Deirdre Connolly
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Deirdre Connolly
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Deirdre Connolly
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Deirdre Connolly
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Daniel Van Geest
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Rohan Mahy
- [CFRG] Re: RG Last Call on draft-irtf-cfrg-hybrid… Douglas Stebila