[TLS] Re: WG Last Call: draft-ietf-tls-mlkem-05 (Ends 2026-02-27)

Nadim Kobeissi <nadim@symbolic.software> Mon, 23 February 2026 12:48 UTC

Return-Path: <nadim@symbolic.software>
X-Original-To: tls@mail2.ietf.org
Delivered-To: tls@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 008DFBC27257 for <tls@mail2.ietf.org>; Mon, 23 Feb 2026 04:48:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.798
X-Spam-Level:
X-Spam-Status: No, score=-2.798 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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=symbolic.software header.b="S65caKsI"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="nalEEoPM"
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 J8-lGnDyhGCE for <tls@mail2.ietf.org>; Mon, 23 Feb 2026 04:48:30 -0800 (PST)
Received: from fout-b4-smtp.messagingengine.com (fout-b4-smtp.messagingengine.com [202.12.124.147]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 4CBFDBC2713E for <tls@ietf.org>; Mon, 23 Feb 2026 04:48:26 -0800 (PST)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.stl.internal (Postfix) with ESMTP id E843B1D0000F; Mon, 23 Feb 2026 07:48:25 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-06.internal (MEProxy); Mon, 23 Feb 2026 07:48:26 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= symbolic.software; h=cc:cc:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1771850905; x=1771937305; bh=U36StDEs1KrTIOYGhv8rKURsjkW4pAREi9LcxGA3H04=; b= S65caKsIURiLR5cSdBm5gnFs25dzSdf2cmKH8hOmnVreNonBkXaLUgAsvjeXZMiz 2e+FgXt8WyX9dUKgP552W/jk6l9oxbqzLzE+y2BIwffFacWu9N1ln1xKunlsTXzG QDg4JUIz3nIGALaRLbL40qKnxA329c/aw0zMA7NEg5/djPZlrlSf8tp01PlX0CpK fjbisojnhE3/kY0tYtOR+ObVUdkF5bvWFvAqkESsLtxzwCe30l77R4llzO9HF/yk TVxEniZ7c5oIFjFMOlHX+tTeNftmAdLIycV08Kj4R9WsITq+Xx8p9pkZnAlvs9xU DBXdNDVhNHbAWNbncSnxDg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1771850905; x=1771937305; bh=U36StDEs1KrTIOYGhv8rKURsjkW4pAREi9L cxGA3H04=; b=nalEEoPMF2H61qxYviLNETQK8rlwPIcb7bL1wFhiS3CE/OG5s0e IzqwmDtNtlCijCeNuVyETFa6SYcpicQcp5C+eiRkmpP2mo1ozaI9W7iDYnd9vG48 3NveSKNjH8vQeenHuWt3NkIxkeupPQuKbb0FECtefOfHjNOuHTdt+sQUkpCFQCCn GBxGzOHbatDf60/6yY0E9ACGOl6bWMATR+j75BqZvukI0X18hx8m8TNvKnK7/g+7 VvmTa7Tpt9Foe+2uGkM2ZPp//ajTdP9buMKS7aRtmiRj41x02sLDpdUx3wzvrosK w2ScxmQ97ee2RK6X39M869pJCfAUpxH3mFw==
X-ME-Sender: <xms:mUycaco7ulzsbwl3MyuSjte98QAnfAruKBh8DIs4wXLY630emoe72w> <xme:mUycaW_c0rQnA55ShL8b_pJbkZdShLX312YikL4jTYAEHcIt09Fho4idxcErW791J 1eqsUvZTSJe4LkdwMYW0aduEjKqLB2boXVQIx-wyD_gUTHixtMNzg>
X-ME-Received: <xmr:mUycaQVIvMNMo6wjdvNAu9rdnwHjiuhnoj_RMIfE2fRXc0fL6KZo6Xx9j1xg5YM7LXE98QNXuSKKuscbxZ5NEN4jSZCeaijMqQsMWjpHkvEQlZ8pOU3MnezSNA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvfeejvdejucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucenucfjughrpefhkfgtggfuffgjvefvfhfosegrtdhmre hhtdejnecuhfhrohhmpefprgguihhmucfmohgsvghishhsihcuoehnrgguihhmsehshihm sgholhhitgdrshhofhhtfigrrhgvqeenucggtffrrghtthgvrhhnpeefudffgefhvdduie dtvdeuiedvvdeiteefvdfhhfeftdfffefhgeetkeelgfeiieenucffohhmrghinhepshih mhgsohhlihgtrdhsohhfthifrghrvgdpihgvthhfrdhorhhgpdhnvghtmhgvihhsthgvrh drohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhm pehnrgguihhmsehshihmsgholhhitgdrshhofhhtfigrrhgvpdhnsggprhgtphhtthhope efpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegsrghssegtlhhouhgufhhlrghr vgdrtghomhdprhgtphhtthhopegvkhhrsehrthhfmhdrtghomhdprhgtphhtthhopehtlh hssehivghtfhdrohhrgh
X-ME-Proxy: <xmx:mUycacAfTez0vUPSkIkadNunuOz6_yOr3Y1ArYokJin7Y-ggZnkGFg> <xmx:mUycaRwN2-CKdIFfxw-U1rQuZYWQYLguW1hsAISWwPgNFZ0Ogxsawg> <xmx:mUycaZBAptHdGEGSMOYWprV-MiGDQ-WcNVX2q1AIR3c_sqD8Fgj90w> <xmx:mUycaeZY7HDUpF0ol5QeVrln6-EGauG1Z6qahKKO4qRT18DrZA353w> <xmx:mUycafXk5hLMGIzsT4Rtzf0TpF1YhGlNPx_bDo5Es60u83sthV4i8n0t>
Feedback-ID: i6d3949ed:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 23 Feb 2026 07:48:24 -0500 (EST)
From: Nadim Kobeissi <nadim@symbolic.software>
Message-Id: <9B219D7F-C71C-4F51-BD22-CD4FE2078C05@symbolic.software>
Content-Type: multipart/alternative; boundary="Apple-Mail=_EABB9206-1C81-4AE8-AE9E-01F625C67E5F"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.400.21\))
Date: Mon, 23 Feb 2026 13:48:24 +0100
In-Reply-To: <CAMjbhoW62QB_FnUfeCjgJwYhVomihxU+CwvasJkyTxrtorqVVg@mail.gmail.com>
To: Bas Westerbaan <bas@cloudflare.com>
References: <CAOgPGoDLVqAVesWjrrD9ZR8HMkqQVLMp69vOkXPkk87MzcsOSw@mail.gmail.com> <CABcZeBM6sHJArV1FuWYbRA=XJtQiKKbmAeYt0YJuy4zAU2Ak7Q@mail.gmail.com> <737B3EC5-228E-4CAF-98FA-2252A7A29113@roeckx.be> <CABcZeBOCDZJExjLOJs1ugp1SU2SUJTRWWhtJ7NcRmVQBzzG1Cg@mail.gmail.com> <82E420AD-0CDA-4658-8549-7CD8B89B3355@symbolic.software> <CABcZeBNnbH7-R1YFVkK2RRb7gWyC+ZSgZ9sV_rDiM8bRrQPvFw@mail.gmail.com> <83B45B5F-8CC0-4A9A-B3E6-FC3F14F10695@symbolic.software> <CAMjbhoUXp8M5X6V9wxYzGg+q2Z57H3NYD8TKpt+xfirMH=_Rdw@mail.gmail.com> <2C25B035-FC0B-492F-9DE2-F65D237825FB@symbolic.software> <CAMjbhoW62QB_FnUfeCjgJwYhVomihxU+CwvasJkyTxrtorqVVg@mail.gmail.com>
X-Mailer: Apple Mail (2.3864.400.21)
Message-ID-Hash: 2K2DCXIHC5HTHL5XWGJYQEI5G6K7WWB2
X-Message-ID-Hash: 2K2DCXIHC5HTHL5XWGJYQEI5G6K7WWB2
X-MailFrom: nadim@symbolic.software
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: tls@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [TLS] Re: WG Last Call: draft-ietf-tls-mlkem-05 (Ends 2026-02-27)
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/gwvMU4i7pqpKPNOmk6hs57D0drM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Owner: <mailto:tls-owner@ietf.org>
List-Post: <mailto:tls@ietf.org>
List-Subscribe: <mailto:tls-join@ietf.org>
List-Unsubscribe: <mailto:tls-leave@ietf.org>

That’s great! Thank you for taking the initiative. Please let me know if I can help.

Nadim Kobeissi
Symbolic Software • https://symbolic.software

> On 23 Feb 2026, at 1:47 PM, Bas Westerbaan <bas@cloudflare.com> wrote:
> 
> I'm drafting an I-D now.
> 
> On Mon, Feb 23, 2026 at 1:45 PM Nadim Kobeissi <nadim@symbolic.software> wrote:
>> Okay, but in that case, we should expect that there will be a serious effort to move hybrids to Recommended=Y some time this year, right?
>> 
>> This is strongly implied by the AD’s remarks, and leaving them as Recommended=N makes absolutely no sense, especially if you also want to pass their complete opposite as Recommended=N.
>> 
>> Nadim Kobeissi
>> Symbolic Software • https://symbolic.software <https://symbolic.software/>
>> 
>>> On 23 Feb 2026, at 1:42 PM, Bas Westerbaan <bas@cloudflare.com <mailto:bas@cloudflare.com>> wrote:
>>> 
>>> 
>>>> I did make an effort to go through the thread, but I have to admit that the arguing seemed really dense and I couldn’t really find any compelling reasoning. It felt like a bunch of people shooting off in different directions.
>>> 
>>> This is why we are here and standardization exists. Doesn't mean it's easy.
>>>  
>>>> But the core thing is that I didn’t really see anyone explicitly demanding Recommended=N.
>>>> 
>>>> The AD’s comments were basically “Recommended=Y will cause a huge headache so let’s just push it quickly with Recommended=N”:
>>>> 
>>>> https://mailarchive.ietf.org/arch/msg/tls/A3rMGGlJKSOvMhRy-NGfPzcpzkU/
>>>> 
>>>> From my perspective this all seems rather dysfunctional. But that aside, if hybrids are Recommended=N, and ML-KEM-only key agreement is also Recommended=N, then doesn’t that kind of destroy the meaning of the entire Recommended value assignment?
>>> 
>>> There was a desire of many in that discussion not to block the hybrid draft on the question how to update the Recommended field precisely for all the hybrid and existing KEMs. To make progress, sometimes you have to decouple things.
>>> 
>>> Best,
>>> 
>>>  Bas
>>> 
>>> 
>>>  
>>>> 
>>>> Nadim Kobeissi
>>>> Symbolic Software • https://symbolic.software <https://symbolic.software/>
>>>> 
>>>>> On 23 Feb 2026, at 1:31 PM, Eric Rescorla <ekr@rtfm.com <mailto:ekr@rtfm.com>> wrote:
>>>>> 
>>>>> 
>>>>> On Mon, Feb 23, 2026 at 4:29 AM Nadim Kobeissi <nadim@symbolic.software> wrote:
>>>>>> That’s interesting. Why were hybrids published with Recommended=N?
>>>>> 
>>>>> Formally, because there was no consensus to make them "Recommended=Y".
>>>>> 
>>>>> I would refer you to the thread I linked to which contains the various arguments
>>>>> people offered for each outcome.
>>>>> 
>>>>> -Ekr
>>>>> 
>>>>> 
>>>>>> 
>>>>>> Nadim Kobeissi
>>>>>> Symbolic Software • https://symbolic.software <https://symbolic.software/>
>>>>>> 
>>>>>>> On 23 Feb 2026, at 1:06 PM, Eric Rescorla <ekr@rtfm.com <mailto:ekr@rtfm.com>> wrote:
>>>>>>> 
>>>>>>> 
>>>>>>> On Mon, Feb 23, 2026 at 3:56 AM Kurt Roeckx <kurt@roeckx.be <mailto:kurt@roeckx.be>> wrote:
>>>>>>>> The hybrids are also published with Recommended=N.
>>>>>>> 
>>>>>>> Yes. You may recall that I argued for "Recommended=Y".
>>>>>>> https://mailarchive.ietf.org/arch/msg/tls/FK6fpPv4ZWtgkrfftNGuaP-c6Lo/
>>>>>>> 
>>>>>>> -Ekr
>>>>>>> 
>>>>>>>> 
>>>>>>>> Kurt
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On February 21, 2026 11:51:39 PM GMT+01:00, Eric Rescorla <ekr@rtfm.com <mailto:ekr@rtfm.com>> wrote:
>>>>>>>>> 
>>>>>>>>> I am mostly indifferent to whether this document is eventually published,
>>>>>>>>> though sad that we're spending so much time debating it in the WG,
>>>>>>>>> given the relatively minimal practical effect of publication. Specifically:
>>>>>>>>> 
>>>>>>>>> - The code points have already been registered
>>>>>>>>> - This document is to be published as Innformational with Recommended=N.
>>>>>>>>> 
>>>>>>>>> It's not clear to me that the publication or non-publication of this
>>>>>>>>> document will have much of an impact either way on the deployment of
>>>>>>>>> this mechanism.
>>>>>>>>> 
>>>>>>>>>  
>>>>>>>>> With that said, I believe that the current document has some issues
>>>>>>>>> which need to be addressed if it is to be published
>>>>>>>>> 
>>>>>>>>> S 1.1.
>>>>>>>>> 
>>>>>>>>>    FIPS 203 (ML-KEM) [FIPS203] is a FIPS standard for post-quantum
>>>>>>>>>    [RFC9794] key establishment via a lattice-based key encapsulation
>>>>>>>>>    mechanism (KEM).  This document defines key establishment options for
>>>>>>>>>    TLS 1.3 that use solely post-quantum algorithms, without a hybrid
>>>>>>>>>    construction that also includes a traditional cryptographic
>>>>>>>>>    algorithm.  Use cases include regulatory frameworks that require
>>>>>>>>>    standalone post-quantum key establishment, constrained environments
>>>>>>>>>    where smaller key sizes or less computation are needed, and
>>>>>>>>>    deployments where legacy middleboxes reject larger hybrid key shares.
>>>>>>>>> 
>>>>>>>>> I don't think this middlebox text is really on point.
>>>>>>>>> 
>>>>>>>>> If we look at John Schauman's helpful breakdown of a hybrid CH that
>>>>>>>>> offers both X25519 and X25519/Kyber768, we see that the total CH is
>>>>>>>>> 1815 octets. Swapping out the hybrid for MLKEM-768 would buy you 23
>>>>>>>>> octets, which doesn't change things materially. If we were to swap to
>>>>>>>>> MLKEM-512, this would buy us another 384 octets, so assuming I'm doing
>>>>>>>>> the math right, just that change gets us down to 1431 bytes, so it's
>>>>>>>>> *just* possible that this might be large enough to push you into two
>>>>>>>>> packets in some cases where the rest of the CH was appropriately
>>>>>>>>> sized. I'm skeptical that this is going to be very frequent,
>>>>>>>>> especially in light of the fact that at least the CNSA profile 2.0 [0]
>>>>>>>>> requires ML-KEM 1024, which has a 1568 byte key, thus putting us
>>>>>>>>> squarely in the zone of two packets with or without a hybrid.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> [0] https://www.ietf.org/archive/id/draft-becker-cnsa2-tls-profile-02.html
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> S 4.2.
>>>>>>>>> As a number of people have observed, much of this text repeats text in
>>>>>>>>> 8446 and contradicts the negotiation algorithm there, which depends on
>>>>>>>>> the group list, not the key shares. You should remove everything up to the
>>>>>>>>> graf that starts "For the client's share".
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> S 4.3.
>>>>>>>>> Here too, the diagram seems duplicative, so I would remove it.
>>>>>>>>> 
>>>>>>>>>    The shared secret output from the ML-KEM Encaps and Decaps algorithms
>>>>>>>>>    over the appropriate keypair and ciphertext results in the same
>>>>>>>>>    shared secret shared_secret as its honest peer, which is inserted
>>>>>>>>>    into the TLS 1.3 key schedule in place of the (EC)DHE shared secret,
>>>>>>>>>    as shown in Figure 1.
>>>>>>>>> 
>>>>>>>>> I don't know what "honest" is doing here. If you connect to a malicious
>>>>>>>>> peer, you might still get a shared secret.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> S 5.2.
>>>>>>>>> 
>>>>>>>>>    While it is recommended that implementations avoid reuse of ML-KEM
>>>>>>>>>    keypairs to ensure forward secrecy, implementations that do reuse
>>>>>>>>>    MUST ensure that the number of reuses abides by bounds in [FIPS203]
>>>>>>>>>    or subsequent security analyses of ML-KEM.
>>>>>>>>> 
>>>>>>>>>    Implementations MUST NOT reuse randomness in the generation of ML-KEM
>>>>>>>>>    ciphertexts.
>>>>>>>>> 
>>>>>>>>> This kind of normative language doesn't belong in Security
>>>>>>>>> Considerations.  If it's important it should go elsewhere.
>>>>>>>>> 
>>>>>>>>> -Ekr
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> [0] https://www.netmeister.org/blog/images/kyber-kex-wireshark-ch.png
>>>>>>>>> 
>>>>>>>>> On Thu, Feb 12, 2026 at 11:06 AM Joseph Salowey <joe@salowey.net <mailto:joe@salowey.net>> wrote:
>>>>>>>>>> This message starts the second Working Group Last Call for the pure ML-KEM document (draft-ietf-tls-mlkem-07).
>>>>>>>>>> 
>>>>>>>>>> The file can be retrieved from:
>>>>>>>>>> https://datatracker.ietf.org/doc/draft-ietf-tls-mlkem/
>>>>>>>>>> 
>>>>>>>>>> The diff with the previous WGLC draft (-05) is here:
>>>>>>>>>> 
>>>>>>>>>> https://author-tools.ietf.org/iddiff?url1=draft-ietf-tls-mlkem-05&url2=draft-ietf-tls-mlkem-07&difftype=--html <https://author-tools.ietf.org/iddiff?url1=draft-ietf-tls-mlkem-05&url2=draft-ietf-tls-mlkem-06&difftype=--html>
>>>>>>>>>> 
>>>>>>>>>> The main focus of this WGLC is to review new text providing more context around the use of pure ML-KEM.  For those who indicated they wanted this text, please let us know if the new text satisfies you and if you support publication. This working group last call will end on February 27, 2026. 
>>>>>>>>>> 
>>>>>>>>>> Thank You.
>>>>>>>>>> _______________________________________________
>>>>>>>>>> TLS mailing list -- tls@ietf.org <mailto:tls@ietf.org>
>>>>>>>>>> To unsubscribe send an email to tls-leave@ietf.org <mailto:tls-leave@ietf.org>
>>>>>>> _______________________________________________
>>>>>>> TLS mailing list -- tls@ietf.org <mailto:tls@ietf.org>
>>>>>>> To unsubscribe send an email to tls-leave@ietf.org <mailto:tls-leave@ietf.org>
>>>>>> 
>>>> 
>>>> _______________________________________________
>>>> TLS mailing list -- tls@ietf.org <mailto:tls@ietf.org>
>>>> To unsubscribe send an email to tls-leave@ietf.org <mailto:tls-leave@ietf.org>
>>