[TLS] Re: WG Last Call: draft-ietf-tls-mlkem-08 (Ends 2026-07-08)

Tanja Lange <tanja@hyperelliptic.org> Wed, 08 July 2026 20:07 UTC

Return-Path: <tanja@hyperelliptic.org>
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 F21B5113595A1 for <tls@mail2.ietf.org>; Wed, 8 Jul 2026 13:07:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783541274; bh=3a3zN5Ab18c5+FgnLcln/r0evMt3lTMNN+Zf3w0JqX4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=iWltncg8NjBb4f1bGZoMgL8x8RNgGkeJaY0y1ObvfPJqLnE018sKMw0jnH9MrNW7i Q2M9seFAwgnaLpUnUgLO33wDGCoclEEs+oNwSxfOCDZzt3W38BCpA3pIDPabipFHzu gUoNUJOaLmFtKR98iHzti+z+H8lsYnl5MzMsFYyk=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 CddhLUn8OGDq for <tls@mail2.ietf.org>; Wed, 8 Jul 2026 13:07:54 -0700 (PDT)
Received: from calvin.mcs-cc.tuehosted.nl (calvin.mcs-cc.tuehosted.nl [192.87.90.60]) by mail2.ietf.org (Postfix) with SMTP id 5F3B311359442 for <tls@ietf.org>; Wed, 8 Jul 2026 13:06:15 -0700 (PDT)
Received: (qmail 39700 invoked from network); 8 Jul 2026 20:06:08 -0000
Received: from hyperelliptic.org (192.87.90.62) by calvin.mcs-cc.tuehosted.nl with SMTP; 8 Jul 2026 20:06:08 -0000
Received: (qmail 1295874 invoked by uid 1004); 8 Jul 2026 20:06:08 -0000
Date: Wed, 08 Jul 2026 22:06:07 +0200
From: Tanja Lange <tanja@hyperelliptic.org>
To: Nick Sullivan <nicholas.sullivan@gmail.com>
Message-ID: <ak6tr7pD2B281iXG@ein.win.tue.nl>
References: <178231320760.1520243.5914961961176039994@dt-datatracker-f9b87776f-8pmmg> <76f613e9-e952-40fb-a6e0-745392575b91@appelbaum.net> <9445dee2-e5e0-4770-ac51-efc901f2489f@huitema.net> <ak3ochQmnlYhKt6h@chardros.imrryr.org> <ak55dB3pb2etyFoj@ubby> <CAOjisRw2HMHbv30QGe9JkPYXbgpCj1GiwSeAQ6tO4MfewxJ-_w@mail.gmail.com> <CAOjisRyi9h3im5YuL_sXYcUZWDkRt5d24uEB5FD01HwsD45rYw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAOjisRyi9h3im5YuL_sXYcUZWDkRt5d24uEB5FD01HwsD45rYw@mail.gmail.com>
Message-ID-Hash: 3C64STXFIWOXGDAAZRQA4WDO6ZYINH3Z
X-Message-ID-Hash: 3C64STXFIWOXGDAAZRQA4WDO6ZYINH3Z
X-MailFrom: tanja@hyperelliptic.org
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-08 (Ends 2026-07-08)
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/qnudL_jKVprROO2flnoOpslJFJg>
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>

Dear Nick,
In ECDH when you get aG from the server and compute the shared b(aG) you don't
learn anything about a.

In ML-KEM the server encapsulates to your ephemeral public key starting from
some seed m. Decapsulating recovers the seed (and needs to, due to FO).

In the scenario that the RNG is predictable there is no difference and an
outside attacker gets the shared key in either scenario. Hashing the RNG output
before using it is at best a band aid.

In the Dual-EC scenario there is a big difference because ML-KEM gives you raw
RNG output from the server any time you open a connection to it. 

All the best
	Tanja

On Wed, Jul 08, 2026 at 08:22:51PM +0100, Nick Sullivan wrote:
> I just caught up on David and Sophie's emails and retract my
> suggestion. On the documentation side, both drafts normatively cite
> FIPS 203 for ML-KEM, so its approved-RBG requirement already applies
> and there's nothing to add here. If we don't want to lean on that
> assumption, the fix is uniform entropy hardening at the TLS layer per
> 8446 C.1, not an ML-KEM-specific change. It's the same raw-entropy
> dependency X25519 already has, where the private key each side
> generates has to come from a good source and a predictable one breaks
> it just as thoroughly. So if we want to harden against that, the right
> place is uniformly at the TLS layer per 8446 C.1, not a change to this
> primitive.
> 
> Given this, I think the backdoored RNG angle is moot for this draft.
> 
> Nick
> 
> 
> On Wed, Jul 8, 2026 at 7:43 PM Nick Sullivan
> <nicholas.sullivan@gmail.com> wrote:
> >
> > I'm pretty confused by this discussion. If the concern is a
> > compromised RNG, can't we just add a quick SHOULD pointing to RFC 8937
> > and call it a day?
> >
> > The draft references FIPS 203 for the algorithm itself, the
> > Encaps/Decaps definitions and the key check, not as a validation
> > mandate, and it doesn't require an approved RNG anywhere. So a SHOULD
> > on how the encapsulation randomness is generated conflicts with
> > nothing. It sits at the same layer as the "MUST NOT reuse randomness"
> > line already in 4.2, and 8937 just wraps the RNG feeding Encaps, so
> > the output stays an ordinary, interoperable ML-KEM ciphertext. It
> > doesn't touch the primitive.
> >
> > Nick
> >
> > On Wed, Jul 8, 2026 at 5:23 PM Nico Williams <nico@cryptonector.com> wrote:
> > >
> > > On Wed, Jul 08, 2026 at 04:04:34PM +1000, Viktor Dukhovni wrote:
> > > > On Tue, Jul 07, 2026 at 10:27:56PM -0700, Christian Huitema wrote:
> > > > > I just read Jacob Applebaum's message. Given his description of the
> > > > > late-standardization suspicious change that looks like a backdoor in the
> > > > > ML-KEM specification, I agree with his conclusion. The WG should not ask for
> > > > > publication of the current graph, not until the changes requested by Jacob
> > > > > are made.
> > > >
> > > > The removal of whitening of the `m` random input to Encaps is not a
> > > > plausible backdoor.  If all you have is a broken RNG, you're free to
> > > > apply whitening to obtain a new less bad RNG and use that instead.
> > >
> > > Furthermore, `m` is not a covert channel as Jacob said because it
> > > doesn't go in the clear on the wire.  Since `m`'s confidentiality is
> > > critical to the security of ML-KEM, if `m` leaked in a covert channel,
> > > that would destroy ML-KEM's security, but that's why `m` is part of the
> > > construction of ML-KEM's `ct` payload, and it gets encrypted to the `pk`
> > > along the way, and then the peer doesn't surface `m` to the application
> > > either, therefore:
> > >
> > >  - no eavesdropped gets to see `m`
> > >
> > >  - `m` is not a covert channel
> > >
> > >  - hashing or not hashing the RNG output that gets used as `m` makes no
> > >    difference and nothing can be leaked due to not hashing it
> > >
> > > And being a KEM, the two parties both contribute entropy, so a poor
> > > choice of RNG on the server will not compromise the whole session.
> > >
> > > But let's say one wants to hash the RNG outputs, then what has one
> > > achieved?  This: that one has merely altered the RNG design.
> > >
> > > Nico
> > > --
> > >
> > > _______________________________________________
> > > TLS mailing list -- tls@ietf.org
> > > To unsubscribe send an email to tls-leave@ietf.org
> 
> _______________________________________________
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to tls-leave@ietf.org