[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:36 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 96EBE1153C1B8 for <cfrg@mail2.ietf.org>; Sat, 11 Jul 2026 19:36:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783823761; bh=PiUiVRg8eZGoE2eMD3r47LY6jUnAIRn7LlrT09K5kPk=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=KHAWg4i20e3YNMpu+2XK+mKdN2WB5hgrYJuFrHXdtsz+Yl/kFf6Bi0Imn0OnK0Inq KJkWO6ayrFmcpGuO6h+HjKijrmPrjT/PnTR/07YiqATBGIhZ7TXzwu+sr3/1ituEyb OFEp1oggpPAF720Fy1p9/4ls1KFxa4xdSD0RdjnM=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -0.848
X-Spam-Level:
X-Spam-Status: No, score=-0.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, FORGED_GMAIL_RCVD=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=no 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 98VjlrmeJmWJ for <cfrg@mail2.ietf.org>; Sat, 11 Jul 2026 19:36:00 -0700 (PDT)
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) (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 4A7EA1153C15E for <cfrg@irtf.org>; Sat, 11 Jul 2026 19:35:57 -0700 (PDT)
Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-39c62764c7cso26139331fa.0 for <cfrg@irtf.org>; Sat, 11 Jul 2026 19:35:57 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1783823756; cv=none; d=google.com; s=arc-20260327; b=QMzYgoJ4SnGuBDp7uOTmtgzt56t6PtBuJuEZhIdrGI55S2qSecjAuUr4j1v5b9IJ7x 4/bTtRTxc5e6SA+RImOoMVZYTLkDqSLg9nis3s1ehKoJ/MmGmMfcVYPyEou1SZ8XDUXr 7Wkkf/slqp4nVJ8wxSaLkX+REkimyFm6KacJPn22A7O6/X4F6DMhxPaLzNWkmHmbi7aj xqwAWjuJKwOIyxJOM6WQQYjHuCH/uFr/EZFmxSNy1tufwpbylyGYvHbzrVW7sFQKoE/i TutGJCe9uc+Fc8kefykB0VeZMkaUGm49eNsrKXJx9hvAxx5QIOTjZGmqegEIna4656lv LE9g==
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=c5dhUpMlCNIffEf0MimP1NRbEr88l/MzjGM1rSkISkY=; fh=gX9OHuBWJ+Wa67y+oSQLZ8JEJ81wWTakgOX5FVyoDzQ=; b=dUQlQoMniqSslrJ36breUVTYdokjuSf2KpLaHt8yAJi2aVxklHL+8KSHVPSxqdf+hD OSCByEdsaccwZAA0Sgx01DKO93VzCPRINUV+WeJcFUpKgUKLX0hsZ4pIO48cIr9tr4XN byrC3orjNnc0JZn1NM/GQ5H2NKc2EPRoMLRYz5t8I/PIDk97EGPKwTBpJtEWp/ziMPvY Z1G9KXJnLITFrdDPUcwcUs6CJa8znm/9v2StjZ1GDwVgGT7MzHqyz4Jqlrxgt4YZ7Nki fKOkVJcKte0gHp7DZ0uLSde2m23ycmmqoNu87DtVnTqN6E4UKm86LuQnum2VIGp8OA5L jbwA==; 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=1783823756; x=1784428556; 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=c5dhUpMlCNIffEf0MimP1NRbEr88l/MzjGM1rSkISkY=; b=Jkg7sne4Hw2SEpVLmlTCms7wSH7ZFnvvXqdvW6TOO8itTSqW95UreNUnUt5J9hLgCX c98kYTMrRPjn1ZGTx1sbCJNSxZBi3RCTZvDBmKJQSGSIkK4DEoV3+S/6VJOfhIOddOka ugO2jdGaP1+8IJTmPQOd20DXucHMz82GKt06gbjCAVXNAE5Cddd244I68pxRgbDQnJLp rW9oa+GmYtUSZpKFxa/P0Siwnn9/VVwFKBQQfmsoINQRtZwo/5/Wcw1OSTd3lef6dm8/ uLbr+hUgCUrkbLU8DO2QYkwWGE3lcZOBnwP2vGajm1I4T/pTEDeLSTnYY+HZ685uzbAE 4hYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783823756; x=1784428556; 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=c5dhUpMlCNIffEf0MimP1NRbEr88l/MzjGM1rSkISkY=; b=HcGYxdDppdpMTqE1FJlowDg3u9S7G3N3UfkPfB8xGzgnDCDng8kWuXVb/Th2mVXhuM XhzT8ty8QN6IY6dgnfwoKbKOqE5Wczl+QPLCxcMgL8rHY/Se0v0yvTiBGuNSJcLUEaIc a+dn2o5gVxsOoleJBFyp3rFc4QmfquV1uiEmT7jaW0HQ3jZx+k6jrwqouHquf9kqyxrd XNTYoiGKHqy6TFOfEDJJf2hJVztMMqfCqVv6pH0IVepxQCvHeEcCv0ybQtgcxh0ZnoUJ oUOsWzxxnUPXEmYxq1JHlLpE9tXH1cdSTkaWWtkKN5gZbbVDTI5pagGoIraQLwC/RBL2 WEKw==
X-Forwarded-Encrypted: i=1; AHgh+Rq3446qFG0N8q/bWhOIuPOgwiCjQnyQ7/w272jUKVGyURgn30lnC5fMlL3CnIaDAPVhNk6H@irtf.org
X-Gm-Message-State: AOJu0YyaOId8AgFmLicZH/1QV+MRS381P2IXsLL26f/djzg410+mHMS2 EN9U4ibymHoDeTlATh5zBUEYSmreAsN05nJGLeJSPKwBwk9V5a3XZzcTFlloozL/1P05FAhwzwi qgPp7/2C/Suq1KpwmP1Sm7UWSyMgStDs=
X-Gm-Gg: AfdE7ck0qxAXFjTFE4Q0Q5OhownZYSss9SpOUu+1PH7IfflAMtMQxnDiq1ddvW1TUpy ZxrNq/3Tnlq8GE0Ngq/Kh1m7fBMREHTOnsZLv2LKdLJwJLfwf3OD23O9Wxt0lLN2eK3P1bIGD5H DdXVGEkmn7Urhp7HPbktgHHmfbgtxO1rWepP6T7oC4WnyERDP8s7G9oa6/SNwNDCgvQc7n8SrG3 gk90vbYHe0UAQRocwX3zmCKYNBMVfHhBKAy1MOEplYvZjSxleNHoicBwzAaelJavpSInBug1A==
X-Received: by 2002:ac2:51d1:0:b0:5ae:b0aa:fbf5 with SMTP id 2adb3069b0e04-5b02ba29338mr760127e87.22.1783823755655; Sat, 11 Jul 2026 19:35:55 -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:35:45 -0400
X-Gm-Features: AUfX_mwTo1OMkzyTgr1bQteHny4vrVJ1zusFIimCUWOwocE9OQ68aOVYKNk3as0
Message-ID: <CAFR824w93Fy2d8uQP9qL9R8ocGbFkHv_c0Fca7UfzwEUP5vL+A@mail.gmail.com>
To: Neil Madden <neil.e.madden@runbox.eu>
Content-Type: multipart/alternative; boundary="0000000000004c3d13065660d598"
Message-ID-Hash: LIHVPJJUIZWHNYFM3LRCC2TJDV6PTDOQ
X-Message-ID-Hash: LIHVPJJUIZWHNYFM3LRCC2TJDV6PTDOQ
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/PGZi7Y0gzEmU7gPodBDoVoJbFv0>
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>

> The notion of C2PRI seems related to key commitment in AEADs. Is that a
useful comparison for readers?

It is related, not sure if mentioning it is useful or trivia


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
>