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

David Benjamin <davidben@chromium.org> Wed, 12 August 2026 15:35 UTC

Return-Path: <davidben@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 DD12F128A00AC for <tls@mail2.ietf.org>; Wed, 12 Aug 2026 08:35:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1786548954; bh=d9BKtRYaW3xBcJWREJhmqHrZB/nWlYflSYlVUnfqfuQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=dRgpZfjyYjJeI/25F1kouQI21yOAcOY28+n2ddteIDgoO33S4CcrA63ZyqKpf2vHV M3GQcBY9ZysfpHAqUKNzSwl517ShWfrBpaF8qMKo6O0n1md/hzrs0LRcoqMFnL65Gm d2LAKmIIomH6tH+rx107SSMIA320Wh74DGPCcmxI=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -9.489
X-Spam-Level:
X-Spam-Status: No, score=-9.489 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, 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_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
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 VCzrDDrNBIPM for <tls@mail2.ietf.org>; Wed, 12 Aug 2026 08:35:52 -0700 (PDT)
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (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 C1858128A009D for <tls@ietf.org>; Wed, 12 Aug 2026 08:35:52 -0700 (PDT)
Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-6a378f90555so1036577a12.3 for <tls@ietf.org>; Wed, 12 Aug 2026 08:35:52 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1786548952; cv=none; d=google.com; s=arc-20260327; b=jNj3mHQvmZMVV62b1qeVX8ohTA0hITiZ1CXz1B3lxeY5vCyG5JgBVCgpUI7pUfOiHM E6Zlu2eybprl4Q5iS7lOfPw0YbFYB5NPgunmHyXcv8XKu6F5XYoxqorBI0POcNUMZRiJ py0WIU244w4hnu4YeunXhtxzqdyn2BUCrcYQf6JeFaD72JlRQADCObnDMX3VpgVMTfWP mU5QN7d/XITYgdFDXpgNFpCi/2tAiBerJCBR0Vh8mo76cAPSkZQJdqs9QisgRSz3K9uv PF6wn3stA4Uw9agAQKhIYASKODt5S1F8sPxEm7hJQ+RHz/6z43yUVyAOe0dROu5/P6GZ J3VQ==
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=d9BKtRYaW3xBcJWREJhmqHrZB/nWlYflSYlVUnfqfuQ=; fh=8AVmPoTZUXibkaNYbOE2qHkKzJE14/tN9fSTk87j4mk=; b=TamZkw5WnLyuMP3Tgcsd7CsqbPLy7VcR1OnifvCoShG0PxS6e3HA2uC8+uqBZ9Q9vU +9sLJV+g3LJXfezlfdfvX4rkcYjzUMGsMsEyAqfn115ABz3TdxHfPT2FFlD52UJgHViN +2F+e5npzurpXusR6kxBzz86RFQZb8g9KFzMdCSi5VAYKxRVrhRvgs7thZgPFQLCv1/G 0qNr0VEa1PpNxNYPKkGXhvJgGt9GRdr5YtyHcg+uV73UvIEtDG7WMm61uQ3ud2Rk/hc1 u6rfZ86UpWENzc+sN2zion8hIlHeIgbm5RneIY3XmY0oGwG3L/8pjy9CeeAXSfay/WDw aw8g==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1786548952; x=1787153752; 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=d9BKtRYaW3xBcJWREJhmqHrZB/nWlYflSYlVUnfqfuQ=; b=hE7kZct7qOr2bHtbet7+RKpjiiDY34C01n1dcdxJ2wiJc7N9IiIsMGKSoHayd+/3Yc S0lPkNXM73eyWNPOpznyN1RWO3gNewbo8D8smeK/mwzBBCIF/iJ3yuomcXHqFwHDp5ar rWYGC/TdQs/s6FydMNLeMLQ4IFZjPvWiLpCcE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786548952; x=1787153752; 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=d9BKtRYaW3xBcJWREJhmqHrZB/nWlYflSYlVUnfqfuQ=; b=aRWpNgUO69nemCFWB+iU2AICbUkcHb1PXXHyM8UsiwWFC4G7VAowny0w6zNA87M0R6 vY+cfV6JHKAmYdMKF2iSTZifR598DjvBx9J97pR45ztUS1uBYne46psmup91fiV/QFf3 DF2nJD0FhaMgNV8D/O2dT87KNyFMv/rwj4lNNeMo/QOS8fuglSLte7Bm6hoIE7LbYD7l kEIjnFT8Ua5cd47+IZrMuZbXAaC4oT+3DM85i+PB7hRqxJHw9upPa+tyzUsc/n3RqBRP 4l5kvUMjvAaurTjgScSvwJEI1NYq8Az7KkxShp7t+ZtybbBP8buUOb+mi+FuAmmLI1WA PSkA==
X-Forwarded-Encrypted: i=1; AHgh+RotFN9VM5K2ST9PuMyd1C0WCOswuVRdXtJ+xzicp5gxH9VSrmWqxOS2J8tPCZjrKvJT82k=@ietf.org
X-Gm-Message-State: AOJu0YwvNrL6axOYBzlroIsbaJqwBhFdMMw8maSESIvanu++X+HDdN1w /HAtNT771UTPSp+oQaDCiuUq+tF8OMV3VUDsPAkVSQdutZAXJOjAB3aZojexXnkcpGus4BWlDQl zHH4FGZJ9AhjswQcp3HthAeX8wXFTbSNcgJBuzoQ=
X-Gm-Gg: AR+sD118nnR9VwNDHGxtchjpZ1arKGXFFULLZT++h+O2oq5tfMmxJmmpHoJda6bNNcc tViOkMl9uFjIoTGXRjJwJC3ucOdGWuE9he40kP6PDSlrwMHr1SZdv3I50dE4fqaBtanwyF/pAm2 EsrexbTFwZGvBFJB+QAF3fi7Yj7+NaKxZdNhEW4F0rQNDKOzb8ILcXuM4pyLHv912n8Yoqu1esJ MoUNzc2yN477yRo/JungTag+U3yHBTlOTmvOvrK7KUd9FUKk22RlTMIn8R5Vx8w2gJ6toLiN7CF NW1dlj9QIBc0j4ug2PAot5xMws/uUr5qhJ/5j8F77uk198xrxBcn5pYFmlKrclPHw2i277IReu+ 9lPLBa4WiUzUFqejnqT0XARTEd2Rvaw==
X-Received: by 2002:a05:6402:1cc7:b0:6a0:584f:454c with SMTP id 4fb4d7f45d1cf-6a375f46435mr2653450a12.16.1786548951285; Wed, 12 Aug 2026 08:35:51 -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>
In-Reply-To: <2581e3fd0ba1a25fcb36921382e120ad90a4d46d.camel@fehcom.de>
From: David Benjamin <davidben@chromium.org>
Date: Wed, 12 Aug 2026 11:35:33 -0400
X-Gm-Features: AUfX_mxjkqUHODsbqP6_YOArw8lg_66IqIZvGNv73jejN-cnDgylnAi48zdFns4
Message-ID: <CAF8qwaBK63Pa5Nd3HfwVeetcMVTPshdysOZs+580qxWj3i88bA@mail.gmail.com>
To: Erwin Hoffmann <feh@fehcom.de>
Content-Type: multipart/alternative; boundary="0000000000009e78de0658db57bb"
Message-ID-Hash: CSWHOQEOW6PQ7VE7L7XFM4VIFJKTQSZZ
X-Message-ID-Hash: CSWHOQEOW6PQ7VE7L7XFM4VIFJKTQSZZ
X-MailFrom: davidben@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: 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/HCOj8tivfT3yGPa5bHexWsUrfg0>
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>

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.