[CFRG] Comments on draft-sfluhrer-cfrg-ml-kem-security-considerations-01
Rebecca Guthrie <rmguthr@uwe.nsa.gov> Thu, 24 October 2024 20:20 UTC
Return-Path: <rmguthr@uwe.nsa.gov>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 64A9FC180B4F for <cfrg@ietfa.amsl.com>; Thu, 24 Oct 2024 13:20:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.607
X-Spam-Level:
X-Spam-Status: No, score=-2.607 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.148, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_GOV_DKIM_AU=-0.453, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=uwe.nsa.gov
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N2Y3fyFQhakk for <cfrg@ietfa.amsl.com>; Thu, 24 Oct 2024 13:20:52 -0700 (PDT)
Received: from BY5PR09CU001.outbound.protection.outlook.com (mail-westusazlp170110001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c001::1]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 625EDC151553 for <cfrg@irtf.org>; Thu, 24 Oct 2024 13:20:52 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=olwWuNrWWfw7dKoa2SJeFGNph46k6dPlmptuQ2WALjfvZTgA7k2eYgOehXcN2i9rEgyz+ANdL28smPWzZNlMyGNQOO90GZkJlgv+gxVXv5LcohuQ9Gj7ym+DvBrpYaQt4J5xZYNovVAms5tmpGejbDxMEATNwVELlGlpuwKdkfLVgDZW4KTz42utnvm6DVjeJUTu4w/dcQo7B72acR6DhqdE7iJSnfNcU+PQpSACmeHj2bCIFvihdGV10PiLfwllM5bD4+PUEblZfl/5RQYVSTujIzSdkOzO/M6xNIVc51f7InY8kLPi542NdvnlH9LGJ381O3E9JDQVceVfYnIT2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z25WkHVV8/zBgbBZNCXyLpnJvLW6I8vOyDaPxh82RLM=; b=FiuWq6qiVmUGsMp8mR5ZDaDSskdRkOzLuvnbGyu4cujKgONAgljrZjm9kxK0xav3foJsprzpbIMnhDJCGeQ37JwPQOApkZSyLT3Fm0EVADfegk5OZRzXj5Xw2joTWicqf0idOWhRRG9F6W2Omxl3hrCxS90wKtrdHrqS8zI0YFq7h5yFYQbRg1RrMXdEoIzE5lXR3uP/gSI2UIlAGGDCNt5gcUO1WEujuDaQLRvxHzVlJ65RDqiv3bOKvInQzw/PspAp91FSN9Jnpv0AQMpZeJD7v6tYcOqZ1lW4YX6qx+pUQ5PtHASxyd8vQrwpgvclwQTbiZf+IXbsfxVkIahGwA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uwe.nsa.gov; dmarc=pass action=none header.from=uwe.nsa.gov; dkim=pass header.d=uwe.nsa.gov; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uwe.nsa.gov; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z25WkHVV8/zBgbBZNCXyLpnJvLW6I8vOyDaPxh82RLM=; b=jKl/7RWyoR2ENscP8gX/WXTwU8AKZrxWXYQxa+X3RRLx9ztg0dIRjrZze51AxMBNqH4uBmy53TFa0WN0yLGS4lKZNu68RCXxNpcQyZGRWvFEHKUpITPxSsfvOsdtxy28/PeHAbZUTEeGWqSt+ohFndoSncMh/xYkHTzfzgFS6fWOzZ50sXrYJTp2p1dpLrmsJRqskO45l1Twhv8PY9Pf46eSmAj8QpF1BRljWzqU09byaPPeQU97vGsvQXvK2eJwMA0and+LYisaegqA03ix0GU1X+cEqazhoEoaIzA/gmKZ9hN/6FawFNGCs/Ng+TbGI1ZsCwYw4yZgQewrltQhRQ==
Received: from PH8PR09MB9294.namprd09.prod.outlook.com (2603:10b6:510:18b::16) by SA0PR09MB6841.namprd09.prod.outlook.com (2603:10b6:806:7e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.23; Thu, 24 Oct 2024 20:20:47 +0000
Received: from PH8PR09MB9294.namprd09.prod.outlook.com ([fe80::d809:d0c3:7df9:ba2b]) by PH8PR09MB9294.namprd09.prod.outlook.com ([fe80::d809:d0c3:7df9:ba2b%4]) with mapi id 15.20.8069.020; Thu, 24 Oct 2024 20:20:47 +0000
From: Rebecca Guthrie <rmguthr@uwe.nsa.gov>
To: "draft-sfluhrer-cfrg-ml-kem-security-considerations@ietf.org" <draft-sfluhrer-cfrg-ml-kem-security-considerations@ietf.org>, "cfrg@irtf.org" <cfrg@irtf.org>
Thread-Topic: Comments on draft-sfluhrer-cfrg-ml-kem-security-considerations-01
Thread-Index: AdsmUfOHuQ5tq+fVR/erKEb2ukyC3Q==
Date: Thu, 24 Oct 2024 20:20:47 +0000
Message-ID: <PH8PR09MB9294B78E1EC3708DC5105A37FC4E2@PH8PR09MB9294.namprd09.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=uwe.nsa.gov;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH8PR09MB9294:EE_|SA0PR09MB6841:EE_
x-ms-office365-filtering-correlation-id: 2c93efb5-0a84-4bb4-a291-08dcf4695864
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|8096899003|38070700018;
x-microsoft-antispam-message-info: PJ8mosRjHV+2ya092cgywfy+ylsPWE+LOqLaEmJX1Sa3atV+teWEI22FAi03ehn3Hm/2E36zePuQCkseymq3EASlzB0nHIDsLb+hON/9sslS37dXGorMqtv9y1vTCa/VJZ09jqtAZhaDiu3BDl82h5RlujRzyusHmenOSqIuqTIiG6Lyg11mt4N8QiNkBd38QNtpJ7T68TrsruZCJ1k7pvNtmt7wfFvfvA9bC5g1qej9w/KJhBU56HhJuJHkQUocmRsIR8OHx6av+Iiuk6+EUhqn/zfaPk+4DVv8Hyi5rUajGq885PWrzmWi4mdBlwZaM2FMMhe/UfcRg/G8kEWk3BeIwO9lykV7BUNHMxJ2M3XOIEqb9st/qn7yYzGsmCyaNgYt9yv75gG+xUcVC6+FHqJR3kA9/r8A+Pd6dWRcackSmKDxLdoEvQuvuSqmyQeddbCnknceJBWiOoENBCVCsiyLAv5ETAtt8ZWEP5R77WwxN1eLvlsZpy+dzfH1ZX5fBM8axGWqsaMARixR/EmlM7ReSMsu0dBSibjuqgiUD0dbiMUeE6NoQ57iv9CLuBrgYmN9bO1y3DEkSAEtchYPxrGgv6MoO5wLpmLhqIEvC6pbYG7oCIbEYU6iKWLGWqSanCZzIiWeeweFHP2Pki57XGo99aW1MBN1WeziwP2S3Ow0RpyfXMjyPHpGAJvh74n1ALvUpHpfoIxsnaCw8eyg+ekTw9CQ8DqnRBq/g7Rtf3O36rc/YaHQkw5at134oH+bqyNVX7td7nrGe1Syui/WtDINKhFGaXfR7ngX1eUt2TiluOLlfrDfGt+KkFlF56H4lazr0ipJ7iXQaJPYcaB7ySs8T6SHGaVcHom9Ymo9CzAmaLL1xAs2zzAbwRoZdzeqsyU7ejHQlauNUPZJI8Npr/P3sUDTTU9iqYXAcMd55Pg40IMzK26b17XnysvB+A/A5btVNHpl3J4p7nJP2VwOBHShULR9oVIdlJOJ2kdVYgy4qPANxWWONfHBZVjXFfwZ0ELf10GWZl2px86YGaPHV6zFxWIkONFpjGnClQiDFjEZicDcCkBWPCWALQwgTjU9AS+WQFJ6AI+bVcK2nai+fhjq9kDXFEOOZgDmSFjVtm+c6LOnnScFaZUGtqwQQC261UyTBgEdZHxPNDSEMoeeBy/SBX4SJihBCN/L6osM1AmygQJUo2F98yMIjaebhMQkqjqw1ZaCAA7NdN0959qPP/KvX2H9hWyR6DRNXDUSAncKSgb9wv8MA92l8ZWOK2fhcsWIDLCqmtwohD+13xZHIWuMIDqLuOxotGsopeyy8UknHXLd19ubC/VT2WEigvqfwKAZOO/VXalGL9ax+p0HGnX0VP+89KpbzPEEWx+p2iA=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR09MB9294.namprd09.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(8096899003)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: s2gmsoAcAIyZU8VHCY7ztHTrR6ugiLSTvxVV15lfF2jUZ1yGD+gF4jawqOncdc1v5rEC0ncGOrexLP2bpQH57WEBgovfCNn/HKqhM18vv2j6UMkHEklmToOFTM+vik890PUOIa+nbEjh4fqONvBXha12uX6hgqxFSRfnd8jjff558ozOhAZCA/fnb3neigw04ew5/XrvR/oDbKK8PF4M206ZoilaXjL1hBBUbjHLGPgp1gW4TyAOpRe/Q7xEjo9/5ThXv+51hv6bLY3kRxMsRzMLanYS93A8XBy+2OVZMZ/e3BZ1KNYDfixUg5d9n40Ey2Q/Ndh2O0jKwTON4YXUenSz6xBB5svJpXC0D5Cljs4PXHATInrdfjRBkB8USi+UTwUsvrCNMWhDTywTCJ1KkDbFCqVH4YmvcRbPtl4m62S1WCTNVt4tXTCoZ0JkRXZtZPVAI3tPw6OEXFuPf780/5YZQc0l9pnpsB3cFETkgmSdc3zrybUavU5ZENzd9998uZyx7Z9+IHx3noVICz0EJfu+u8ibqGreqma7iRaSXrH6bY7lrI5Fzwo7NozciyC0AV2kbLFXjPR9l/mxrg1vVB6x6xafXk0TVORL8/ZLI43MzhCB/2Qnb3oDJO0LAZ98IB1jqkUMZ1EyDCFLKap4nyu7P1XSu/RifwMzhksutiP2sAB0MDjLoWXqTRhlPi+1/fIPCCSNmtfnrdwujWj8tcJ+a/IyqaxVd91Og1khPLv17eOz05K01FaoNZ90toO1EiplWQVaJAzK5tjLHN7cXGFUeCkoHX9s/pmGToOZ/YcC3PBzG5b8Idt+jVG/s8Xex/CpX6eYB1qVNMPyOdEhEc9Qft+E25U/3tXduu5zmaHwv+ylCDTLmVJje6tt4YeXEC34KYgccc0cahQbCA6snC9+7alSWtsI/e7QUezXgZEATfO8tz/Wp5s5GcsBfScBKywWjUvHnDsiYgPbwWgYbLWdA2iV/aooJE4fdWmXqlIa5g6yhngjZYPijQNKKh3z5EMJ0G78AJiHbbMZeToDNtH5bvPG/AEYIdw3ACXBhpGKlU3a0pvct/FhQyIxL/f5yKtNvtpa1zOQiKYve0K+Ujnmi3eEJ5fX6CtuGvCZk7mTG32HFzDic84wlKGiyDxnaQ1ERM/OarM+MXE6sIpTz7rY9G9cuFniemlu+cOvM1klsD9iw0Wr3TqbYdtHwwCgrtECL4wTIIrkHMn7cky55tgmUCKZnF/jm7mOr7UdtYEOxPAI0lGStu7pTO7AiXf7yg5SU4nPcJxUnOEN2EdwJ6vU7/PqSiJdm80p3WfbFy77E6eFKbGMh25RshodjFYHo8HZ1Yh+AOmqUocB9sHxn5AvVrZEZzFXv/WXNTfENXdokCp20skrldBwvKvAINBxn5biBRocyHz8RwBKrRpiw4hA7l6r0RmOSYJ51fwrEE+N7mSIXa9bbFaUw47DiRWBM0+YHWYxbRtLNkFwZpCWHSVjRzR+gITV4E9YiJh5dpYMhPWxrWZ1RFHSSMd9WfjG9PlwUosaXDKjxNvEZZPPSWal2o7VQ7UzVSwDbtjY2HgWfU4Sxp5R1pAH/quPUUkQ
Content-Type: multipart/alternative; boundary="_000_PH8PR09MB9294B78E1EC3708DC5105A37FC4E2PH8PR09MB9294namp_"
MIME-Version: 1.0
X-OriginatorOrg: uwe.nsa.gov
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH8PR09MB9294.namprd09.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c93efb5-0a84-4bb4-a291-08dcf4695864
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2024 20:20:47.1052 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: d61e9a6f-fc16-4f84-8a3e-6eeff33e136b
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR09MB6841
Message-ID-Hash: R6IULS6BHKOSESZ5SY2IUZE7SMTLSXHY
X-Message-ID-Hash: R6IULS6BHKOSESZ5SY2IUZE7SMTLSXHY
X-MailFrom: rmguthr@uwe.nsa.gov
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cfrg.irtf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [CFRG] Comments on draft-sfluhrer-cfrg-ml-kem-security-considerations-01
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/Uc6C2Lb3oghNPdZ7WxjhGMHw9r8>
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>
Thank you to the authors for writing this draft- I read through it and have some comments- more substantive comments listed first, followed by comments that lean editorial.
1 Introduction
Paragraph 3
Suggest including this paragraph in Section 4 on ML-KEM Security Considerations instead of here in the introduction. None of the readability of the introduction would be lost if this paragraph does not appear here, and a lot of the paragraph might not be understood by the reader yet if it is kept in its current place. For example, ML-KEM.Decaps has not yet been defined, and Alice and Bob have not yet been introduced w.r.t their roles in ML-KEM.
P4, P5
It would be helpful to the reader if this portion of the document began with a definition or explanation of what a KEM is (it is a type of key establishment like DH or RSA, encapsulation means this, here are the three components (KeyGen, Encaps, Decaps) of a KEM), before comparing KEMs/ML-KEM to other key establishment mechanisms. Doing this will also help the reader better understand the comparison- for example, Alice, Bob, and ciphertext are mentioned, but the reader has not yet been introduced to Alice and Bob (whether or not P3 is included here; Alice and Bob are mentioned there but their roles w.r.t. ML-KEM or KEMs have not yet been defined), and does not know what the ciphertext is.
When comparing the structure and behavior of KEMs/ML-KEM to other key establishment mechanisms, it could be helpful to the reader to be more explicit in which properties/behaviors are true for all KEMs, and which are true for ML-KEM specifically (for example, ML-KEM's not allowing Bob to choose to use the same shared secret with multiple parties).
A minor note for clarity here is that P4 also says "ML-KEM internally generates the shared secret in a way that Bob cannot select the value," and also "This is different from RSA-KEM... where Bob cannot select the value..." The end of this latter sentence does in fact contrast with ML-KEM, but the first part doesn't, and the phrasing implies that this first part is contrasting as well.
In P5, suggest reordering some of the explanation in the first couple of sentences. Instead of contrasting DH and KEM in the second sentence, consider explaining how DH parties exchanging two public keys means that DH is "asynchronous" and "non-interactive." In sentence three, explain why KEM ciphertext being a function of Alice's public key means that it is neither of these.
The paragraph could also do with a bit more detailed of an explanation as to why a KEM is a drop-in replacement for static-ephemeral but not ephemeral-static.
I think enough information is presented in P4 and P5 that it could be broken off into its own section or subsection- I'm not sure it fits the "introduction" label at this point. Suggest adding either here or in the beginning of section 2 a diagram between Alice and Bob that shows how they use ML-KEM.KeyGen(), ML-KEM.Encaps(), and ML-KEM.Decaps() (and which pieces of data they send to one another).
2.1 ML-KEM Key Generation
"The first step for Alice is to generate a public and private keypair." -> "The first step of ML-KEM is for Alice to generate a keypair consisting of a public and private key."
Rephrase to make clear that this is the first step of ML-KEM (both Alice and Bob) and not just the first step for Alice. Also suggest rewording end of sentence- "public and private keypair" makes it sound like there are two keypairs, one public, and one private.
2.2 ML-KEM Encapsulation
"matrix data"
This should probably be defined/explained or at least provide a pointer to a reference that defines it.
2.3 ML-KEM Decapsulation
"It also repeats the encapsulation process to ensure that the ciphertext was created strictly according to the specification, implicitly rejecting ciphertexts that were not."
Suggest including a brief explanation of *how* repeating the encapsulation function has this effect. What is the result if the ciphertext is good vs. if it is bad?
"...insecure probability..."
What does this mean?
2.4 ML-KEM Parameter Sets
Perhaps in this section it would also be good to mention terms security level, Level 1, Level 3, and Level 5? (FIPS 203 doesn't mention levels 1/3/5 but these terms are used in practice quite often, and FIPS 203 does use the term security level, so mentioning/defining all of these could be useful.
3 KEM Security Considerations
This is a little pedantic, but this section discusses Alice and Bob for a general KEM when section 2 only introduced Alice and Bob's role in ML-KEM. Introducing Alice and Bob in the intro P4/P5 would fix this.
"It is recommended that she zeroize her private key when she will have no further need of it."
Can the draft specify or give guidance on when this might be in the context of a communications protocol? (after she and Bob use the shared secret to successfully establish a shared connection, after the connection is closed, some other time?)
"...protocol exchange transcript..."
I am only familiar with "transcript" being used in the context of TLS. Do other protocols use it as well, should this be framed as an example for TLS, or should a more general term be used instead?
4 ML-KEM Security Considerations
"It is recommended that she zeroizes her private key when she will have no further need of it."
If this is already stated for KEMs in general, isn't it implied that it would be true for any KEM in particular, including ML-KEM? Suggest that KEM security considerations are not restated for ML-KEM; if they were comprehensively restated, the KEM section would just be a proper subset of the ML-KEM section.
"...(and zeroize the private key immediately after)..."
Alice needs to wait until after she performs ML-KEM.Decaps() at least to zeroize the private key. Also, make sure however this is stated aligns with mention of zeroization earlier in this section, and in section 3 ("when she will have no further need of it").
"It is essential that..."
This paragraph should be moved earlier in the section to when key generation is discussed.
--------------------
1 Introduction
P1
"A large reliable quantum computer (often termed a Cryptographically Relevant Quantum Computer or CRQC) would be able to break..." -> "A Cryptographically Relevant Quantum Computer (CRQC) is a large and reliable quantum computer that can break..."
"Even though... read the traffic." -> "Though it is believed that a CRQC does not exist at the time of publication of this document, an adversary today can intercept and store a protocol exchange that is protected by a quantum-vulnerable encryption algorithm, and later, when they have access to a CRQC, decrypt and read the traffic."
Attempt to remove "we"; rephrase to remove "possibility" of attack (may make attack appear unlikely or theoretical)
P2
"Because of this potential threat," -> "Because of this threat,"
"NIST has standardized... which is standardized..." -> "NIST has published FIPS 203, which standardizes a quantum resistant Module-Lattice-Based Key Encapsulation Mechanism called ML-KEM."
Rephrase to only say "standardize" once; suggestion to include "quantum resistant" (or something to that effect) in this sentence so the reader understands the connection between this paragraph and the previous one.
"NIST plans to standardize one or more code-based KEMs in the future."
This is probably not relevant to state here, since the document is about ML-KEM in particular and not NIST KEMs in general. Readers also might not know what is meant by "code-based" without an explanation. Suggest removing.
P3
"The fundamental security property is..." -> "The fundamental security property of ML-KEM is..."
"...the shared secret key and this is true..." -> "...the shared secret key, and this is true..."
"...secure, that is, ..." -> "...secure; that is, ..."
"...submit arbitrary ciphertexts and observe..." -> "...submit arbitrary ciphertexts using a fixed public key and observe..."
P4, P5
"As long a the application..." -> "As long as the application..."
The last sentence of P5 repeats what is stated in P4.
2 Using ML-KEM
"...there are three steps involved" -> "...there are three steps involved."
2.1 ML-KEM Key Generation
"In FIPS 203, this function is..." -> "In FIPS 203, the key generation function is..."
"...public key (termed an..." -> "...public key (known as an..."
"...private key (termed a..." -> "...private key, or a..."
"The seed can be securely retained..." -> "The seed can be securely stored..."
"...data ust..." -> "...data must..."
2.2 ML-KEM Encapsulation
"...perform the what FIPS 203 terms as ML-KEM.Encaps()..." -> "...perform ML-KEM's encapsulation algorithm, called ML-KEM.Encaps()..."
Note that there is an unnecessary "the" after "perform" regardless of if the other proposed change is made
"... you should check whether the library you are using does." -> "...implementations should determine whether the library they use combine these steps."
Remove use of "you" in "you should check"
2.3 ML-KEM Decapsulation
"...perform the what FIPS 203 terms as ML-KEM.Decaps()..." -> "...perform ML-KEM's decapsulation algorithm, called ML-KEM.Decaps()..."
Same suggestion here- unneeded "the" after "perform", and also explicitly state in the body (not just header) that Decaps is decapsulation.
"Although not necessary... this step should not..." -> "Although this step is not necessary... it should not..."
"...as maliciously generated ciphertexts could induce decapsulation failures..." -> "...as a maliciously generated ciphertext could induce a decapsulation failure..."
"...whichcan..." -> "...which can..."
"... you should check whether the library you are using does." -> "implementations should determine whether the library they use combine these steps."
2.4 ML-KEM Parameter Sets
"ML-KEM comes with three parameter sets..." -> "[FIPS 203] specifies three parameter sets for ML-KEM..."
"...which parameter sets they use..." -> "...which parameter set they use..."
"Table 1 shows a summary of how those parameter sets differ:" -> "Table 1 shows the size of the cryptographic material of ML-KEM for each parameter set:"
Suggest not necessarily this exact phrasing, but something explicitly naming that the table looks at the size/length of things in each parameter set. Also suggest removing summary because a summary would be an abbreviated version of the info in the table.
"Table 2 shows an example of ML-KEM performance [EBACS]:" -> "Table 2 shows an example of ML-KEM performance at each parameter set:"
Suggest including mention of parameter set. Also suggest moving [EBACS] reference into Table description ("Table 2: Single-core performance in operation per second on AMD Ryzen 7 7700 from [EBACS]")
"Table 1 and Table 1" -> "Table 1 and Table 2"
3 KEM Security Considerations
"...including ML-KEM" -> "...including ML-KEM."
"To use a KEM, you need to use a high-quality source..." -> "KEMs require the use of a high-quality source..."
"...key-pair..." -> "...keypair..."
For consistency
"...lets Bob be able to verify that the public key he obtains came from Alice and that the ciphertext Alice receives came from Bob (that is, an entity that Alice is willing to communicate with)." -> "...lets Bob verify that the public key he obtains came from Alice, and lets Alice verify that the ciphertext she receives came from Bob."
Make clearer that Alice and not Bob is verifying the latter part. No need to include parenthetical at this point, since Bob has already been introduced.
4 ML-KEM Security Considerations
"To use ML-KEM, you need a source of random bits with security strength equal to greater than the security strength of the KEM during both key generation and encapsulation steps." -> "ML-KEM requires that a source of random bits with security strength equal to or greater than the security strength of ML-KEM be used when generating the keypair and ciphertext during ML-KEM.KeyGen() and ML-KEM.Encaps() respectively."
"...ML-KEM.Decaps..." -> "...ML-KEM.Decaps()..."
For consistency
"...if the protocol allows it (if Alice and Bob exchange messages anyways) that Alice generates a fresh keypair..." -> "... if the protocol already includes Alice sending Bob her public key, she should generate a fresh keypair..."
"Be noted that generally key generation of ML-KEM is very fast, see Table 2. That is, ..."
The "That is" sounds like it is elaborating not on the sentence beginning with "Be noted" but with the earlier sentence that mentions PFS. Suggest cutting this sentence or moving it after the sentence beginning with "That is,..." If moved and not cut, two suggestions:
"Be noted..." -> "Note..."
"..., see Table 2." -> "...(see Table 2)."
"...cryptographical..." -> "...cryptographic..."
"...if so, that should be verified." -> "...they should each verify whether this is the case."
"The shared secret key... are 32 bytes..." -> "The shared secret key... is 32 bytes..."
"As such, it is suitable both to use directly as..." -> "As such, the 32-byte string is suitable for use both directly as..."
I am not certain that "it" is the 32-byte string, but if so, suggest the above change.
"...and for inserting into..." -> "...and as input into..."
Rebecca
Rebecca Guthrie
she/her
Center for Cybersecurity Standards (CCSS)
Cybersecurity Collaboration Center (CCC)
National Security Agency (NSA)
- [CFRG] Comments on draft-sfluhrer-cfrg-ml-kem-sec… Rebecca Guthrie