[TLS] Re: Last Call: <draft-ietf-tls-mlkem-09.txt> (ML-KEM Post-Quantum Key Agreement for TLS 1.3) to Informational RFC

Sophie Schmieg <sschmieg@google.com> Wed, 12 August 2026 16:39 UTC

Return-Path: <sschmieg@google.com>
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 5E26C128A6D04 for <tls@mail2.ietf.org>; Wed, 12 Aug 2026 09:39:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1786552766; bh=kOQGwohlfZzdH89oTMd7ePxPNBw2KHVigZVgYvEM5Mg=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=O37Ehe1dpPHjh9GXaAv+e57n4L0OduIHJ0n2HyfknFKzmS2clykTtCoAV8gABT8ld i4tIzxCDPYk15jMcy/ni0/YvDJHXzNn7qap7xbLAeLhGGweiwa+a6KM5MKNV/eHnLA wz0tdgT8m6sY7D7irkmHywEcXHTh6At9uCXb5v5A=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -17.59
X-Spam-Level:
X-Spam-Status: No, score=-17.59 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 5s3kD_yzG6ja for <tls@mail2.ietf.org>; Wed, 12 Aug 2026 09:39:25 -0700 (PDT)
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (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 7ADD1128A6CDB for <tls@ietf.org>; Wed, 12 Aug 2026 09:39:13 -0700 (PDT)
Received: by mail-qt1-x82a.google.com with SMTP id d75a77b69052e-51c10e86e52so313791cf.1 for <tls@ietf.org>; Wed, 12 Aug 2026 09:39:13 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1786552753; cv=none; d=google.com; s=arc-20260327; b=RPBTlEWIQKYRf6a4aj+SYEQN4HQT5SvEqwFFnSjwxWzaTyeg4ueo6r/C4eTbuR1RDa U+beTcN2kwG+KlePDVYCouavR4QqhQb0Ik9r91VpFGG1LS5dTUEGHRCi2pWXN6TRx7j4 5KXYVd1YnPMjYun2bQYxfIQ1y0pjCaO/5+vU4oHE8Y5vXo484KRTSRRyPb5AnFVo52yU ygMT+PxVcFGkZ3dAfYnV5yKcEBaPdRseCK2s4N8y7IkbLgrf1jUcxRzwXiYDgYtw3fKW 4MaPCGA+E1TPeWv8l4iYNsiHYPaN727qCbcRnuMkyjnS8IAXiCAzX+PUzkZnx97jzEB5 0hjA==
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=kOQGwohlfZzdH89oTMd7ePxPNBw2KHVigZVgYvEM5Mg=; fh=h/EtZTN0iTTI30XyiBQowMqj/E3VjJRcsDhQKzArWsI=; b=WVuQb9MlAf7gkiaP+3Lo56jqW2S62ecA6O1dcCZdgxsolxbuAqAZHRc3PtvUzz9ieP kUDjRKD0mUargRD/XNPXe5+n0mv4XaQCn0By7mWHzcgjsMuiXmTy11tnehE7OxBHc7ck sYU3Y7pPV7BfnDzem0rMt6R2oEZ8U+4Z3KemveRuiUVb5Fe7mbky7FcXwpgGqd4SfBYo um2I7IHb6kuDpsEL9ENFO0uPCocEa/+jKxvnXD1BcvdlcinqDrThjziwAiM15KHgZouG kCwDSJ+YyOn4KFmxBsohA8mdoFTTgGOL5VsGss7e/QkEiGen/8KFxyomRkGyuPnd83J3 Ekxw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786552753; x=1787157553; darn=ietf.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=kOQGwohlfZzdH89oTMd7ePxPNBw2KHVigZVgYvEM5Mg=; b=onX2ARwBflqSq1DbJzo+1pLQEPs0C0ur28HEbsCwI17VG/Dg/KJwVCRBVIYGRL7Kgh Lj7V3KkQTK4pcWIRSw9i3dCImd1JQubnyR+EmZxVvYq8em2uG/BAyNo2D2GZ+HjU1h0L /hcuU0VbwK7ZfUVP0U8/B9HrR7na3NGssvVdUPcYrewpbqCAkUZ/azzbHoVN4EMgyL/b mcn99CpDvz9w1GLHwIzzczJjUYDipWsGASPGlTkA1SD5ZfoUsb5/y/gMnn5hyZ9TJSwC Y2OPCtE5WoZRLBL9TniD4jW7+BNurTVK1tTiMsadUq/h6QC0iz7YRuNj/Q7drHExJczM awXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786552753; x=1787157553; 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=kOQGwohlfZzdH89oTMd7ePxPNBw2KHVigZVgYvEM5Mg=; b=ZXAXJySIbflU6Ajs4GXEv0+ayRS6EdPEVh8OY0M+Fhu+yIqgWOme+pVqa4Yd21aJCQ K7Q8Y4TPX/fuH91wmvRNjJhs1qf0S6RjXv2xMH7CGTeX545KDxc5lPm++YodjCtgXDNy 8dR8Qp24l9VWHcBZmhHjqDYf86lagXmYCgI3mCDMNEdBlMQYzMTadMNPASzzSTjOAMbh C6edHVkp5Dm9m7xO//XTP8eH+eovWDiFcOIzNowukA5BB/rnDGCMclaak/qm2LF+NnM7 r3NycZF3mZEVpu4EDUtzZ0m0phwEYC3YyqCafvOgjfDGZT3tfUtTaLsxw1Qs+whQgsDQ WAXg==
X-Forwarded-Encrypted: i=1; AHgh+RpdaO7IWDzGIPLs1DPIr6MH4fxfn/BDQRUF2qGTX+b1tQAR+/J2HBNyjbFeqd9yhxgf7zo=@ietf.org
X-Gm-Message-State: AOJu0YzkAB+Dv8t9QgJj/aiGnHV5U7PEPSzkRCHHkX8/faWBeh+kzsWV tWwtUMPPboxJq6Op4JB2lDJxPdqRJAoiw1EtHQtxj+zc1eUxLnxA+mzQQh6+tXwMoipO/X6M+dr 4F96hrzU4H5II0MgMLsATpDsjXJ2ELOCGLKrooTlO
X-Gm-Gg: AR+sD10JK/9i3MzEgWJFEiAo1cfvppzw5O4LxuUNV5DsouU2xiFEoYke2bKdZcm86GB S1k0zYDRBTeiHb+U2PpDG2uev2jRBFmXYzRriELt6f3VJ6kr3yfdthvGTdQgXk5bx2oWRv/IdYT eA1Esh900eUInslk8eTbeYJRo5aianjNsgeCUvDmk35CnbgdWJ/R23+K4VonkW+Fe/6vyK/G74O Mn3Wt9/Mvc9dLK8kjI8I7vJm3DNL4Ncrph7qIRUqjzhW8eJ/P4ZB09OqFFtdhF3SyhPoJyUH+jO Zd+gEa1mGqEc2iOjIMgWgOe7BlYq+7+4a3mEoFUUTYfvBBPuVyV7CuwLq04SFrAPxAtjdeF1/RW RHPjyOT+z03Wbv/Y6ie3NOBIrk+1/e9RnEw==
X-Received: by 2002:ac8:5716:0:b0:51c:ca9:3d17 with SMTP id d75a77b69052e-52d61f7a0e7mr22226421cf.12.1786552751788; Wed, 12 Aug 2026 09:39:11 -0700 (PDT)
MIME-Version: 1.0
References: <20260811105051.2792930.qmail@cr.yp.to> <996f4ae94583837bf48195eb8293740b90a27c75.camel@fehcom.de> <CAF8qwaCnVmBg6AraXRLE36oT6S7RaEhJfzBgV=O4Q0wp7nP0aw@mail.gmail.com> <2581e3fd0ba1a25fcb36921382e120ad90a4d46d.camel@fehcom.de> <CAF8qwaBK63Pa5Nd3HfwVeetcMVTPshdysOZs+580qxWj3i88bA@mail.gmail.com>
In-Reply-To: <CAF8qwaBK63Pa5Nd3HfwVeetcMVTPshdysOZs+580qxWj3i88bA@mail.gmail.com>
From: Sophie Schmieg <sschmieg@google.com>
Date: Wed, 12 Aug 2026 09:39:00 -0700
X-Gm-Features: AUfX_mzzLQUUsGA1Mxsplzn-COmVN9EVYGZlBaoRVoroiXyAvCECwFgCtR0GL-E
Message-ID: <CAEEbLAZ=+YjS134dDVdO9zfzC94838+mcumUequFhUiV4Gwn_Q@mail.gmail.com>
To: David Benjamin <davidben@chromium.org>
Content-Type: multipart/alternative; boundary="00000000000026a5c20658dc3a14"
Message-ID-Hash: YHWO5TQGCS65YRQD6CZTGBIEZJSYHQS7
X-Message-ID-Hash: YHWO5TQGCS65YRQD6CZTGBIEZJSYHQS7
X-MailFrom: sschmieg@google.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; header-match-tls.ietf.org-1; header-match-tls.ietf.org-2; header-match-tls.ietf.org-3; header-match-tls.ietf.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Erwin Hoffmann <feh@fehcom.de>, last-call@ietf.org, tls@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [TLS] Re: Last Call: <draft-ietf-tls-mlkem-09.txt> (ML-KEM Post-Quantum Key Agreement for TLS 1.3) to Informational RFC
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/aDSdCIWmSfomc9NjeXRuDSwC9lE>
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>

And importantly, this transcript hash enforces that client and server will
always either get their preferred key exchange algorithm or fail the
exchange. This continues to be the main argument as to why this should be
standardized, even if one (as I do) believes that a hybrid is currently the
better choice for key exchange compared to pure. It simply does not impact
anyone who does not specifically and against recommendations set up their
client and server to actually negotiate the pure key exchange. If one
wishes to make that judgement call, one should be free to do so, given that
it has zero impact on anyone else.

Ultimately, this is not a question on which key exchange algorithm is more
secure, or more efficient, or has a brighter hue of blue coloration. None
of this matters beyond the recommendation section of the RFC.

On Wed, Aug 12, 2026 at 8:38 AM David Benjamin <davidben@chromium.org>
wrote:

> On Wed, Aug 12, 2026 at 10:24 AM Erwin Hoffmann <feh@fehcom.de> wrote:
>
>> Hi David,
>>
>> Am Dienstag, dem 11.08.2026 um 17:46 -0400 schrieb David Benjamin:
>> > Just answering the one misconception about TLS 1.3 in here:
>> >
>> > On Tue, Aug 11, 2026 at 5:33 PM Erwin Hoffmann <feh@fehcom.de> wrote:
>> > > 4. The way the random number is used in ML-KEM, does IMHO not
>> > > conform
>> > > to this basic assumption: It is fed directly (not taking the
>> > > transcript-hashes into account) to generate the Master Secret [2].
>> > > Correct me, if I'm wrong.
>> > >
>> > > 5. Thus, at the bottom-line, the Master Secret depends solely of
>> > > the
>> > > quality of the PRNG. As explained in [1], its Algorithmic
>> > > Information
>> > > Content (AIC) is preserved given the ML-KEM handshake.
>> > > This is a clear violation of risk-minimization because of
>> > > disclosing
>> > > its origin. Additional hashing would involve some additional
>> > > computational cycles, of course.
>> > >
>> >
>> >
>> > While it is narrowly true that the TLS 1.3 "master secret" (called
>> > the "main secret" in RFC 9846) does not incorporate the transcript,
>> > this is a red herring. While it shares a name with a TLS 1.2 concept,
>> > they are not used in the same way. The "master secret" in TLS 1.2 is
>> > the primary output of the TLS 1.2 handshake. It is the resumption
>> > secret in a TLS 1.2 session, and used to derive the TLS 1.2 record
>> > keys.
>> >
>> > That is not how TLS 1.3 works. In TLS 1.3, this value is not the
>> > output of the handshake. (Our implementation does not retain it after
>> > the handshake at all!) The outputs of the handshake are not the HKDF-
>> > Extract left spine of the key schedule, but the Derived-Secret values
>> > on the right. Each of those incorporates the transcript. You'll see
>> > different prefixes in the diagram, but this is simply because they're
>> > computed at different times.
>> > https://www.rfc-editor.org/rfc/rfc9846.html#section-7.1-13
>> >
>> > So, no, the TLS 1.3 handshake thoroughly uses the transcript hashes
>> > in all of its outputs, whether the key agreement is ML-KEM or
>> > something else. All this was part of very thorough analysis that the
>> > WG did when TLS 1.3 was designed.
>>
>> hm, did you look at my drawing, explaining this as well? [2]
>>
>
> I did look at your drawing. As pointed out elsewhere, it mistakenly claims
> only the Hello messages are hashed. The arrow on the left spine can also be
> misread as thinking the "master secret" continues on, when it does not.
> Please see the actual diagram in the specification, which I linked to above.
>
>
>> The transscript hash adds entropy and uniqueness (and some state) to
>> the calculation - certainly in a better way using the HKDF - rather
>> than TLS 1.2 with the combination of MD5 and SHA1 together with some
>> string constants. But still: It is public material and does not improve
>> security at that point.
>>
>> But maybe, I've missunderstood your reply.
>
>
> Your message specifically cited a lack of transcript hashing:
>
> > > 4. The way the random number is used in ML-KEM, does IMHO not
> > > conform to this basic assumption: It is fed directly (not taking the
> > > transcript-hashes into account) to generate the Master Secret [2].
> > > Correct me, if I'm wrong.
>
> This was indeed wrong, so I've corrected it per your request. :-) The
> transcript hashes are incorporated into every output of the TLS 1.3
> handshake. This very much improves security, Take a look at the long
> history of issues in TLS 1.2 (e.g. 3-SHAKE) for why we do this.
>
> I see you are now bringing a new concern that the transcript hash and
> other non-shared-secret inputs are "public material"[*]. This is just how
> such handshakes work. In a non-PSK TLS 1.3 handshake, the *entire point*
> of the asymmetric shared secret is to provide *the* non-public input to
> the key schedule. This is why, if one uses a legacy ECC algorithm as the
> asymmetric shared secret, an attacker with a CRQC can decrypt the
> connection. If you choose X to provide the asymmetric shared secret, you
> are relying on X to do so securely. And, yes, part of that depends on any
> PRNG inputs to X meeting the security requirements of a PRNG. There isn't
> really any way around that here.
>
> One can evaluate subjective tradeoffs on which X are more likely secure,
> which X are more expensive, which X are more complex, and which X are carry
> a high coordination cost, but those are ultimately subjective tradeoffs.
> The TLS WG spent an inordinate amount of time exploring that tradeoff
> already and incorporated the results into the document.
>
> David
>
> [*] Strictly speaking, the transcript hash actually isn't strictly public
> per se because part of the TLS 1.3 handshake is encrypted, but this is
> somewhat a digression. I don't believe we actually depend on this fact for
> the security of the handshake itself, but I may be misremembering.
> _______________________________________________
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to tls-leave@ietf.org
>


-- 

Sophie Schmieg | Information Security Engineer | ISE Crypto |
sschmieg@google.com