Call for Submissions - NIST Workshop on Guidance for KEMs
February 25-26, 2025
(Virtual Event Only)
Submission Deadline: January 28, 2025
NIST recently published FIPS 203, Module-Lattice-Based Key-Encapsulation Mechanism Standard, to update its cryptographic standards with an algorithm designed to provide protection from quantum attacks. In addition, NIST will select one or two additional quantum-resistant key encapsulation mechanisms (KEMs) for standardization. To provide guidance on using KEMs, NIST has released draft NIST SP 800-227, Recommendations for Key Encapsulation Mechanisms. Public comments on SP 800-227 are due by March 7, 2025.
To further engage the cryptographic community and gather feedback, NIST will hold a virtual workshop on February 25-26, 2025, focusing on draft SP 800-227. The workshop aims to facilitate discussions on NIST's guidance for KEMs.
NIST invites submissions in the form of discussion papers, surveys, presentations, research, case studies, panel proposals, and participation from all interested parties, including researchers, system architects, implementors, vendors, and users. NIST will post any accepted submissions on the conference website after the conference; however, no formal proceedings will be published.
Topics for submissions should include but are not limited to:
Testing and validations of implementations of KEMs
Impacts to existing applications and protocols (e.g., changes needed to accommodate KEMs)
Steps or strategies for organizations to prepare for migrating to KEMs
Input checking for values input to KEM algorithms
Using KEMs for authenticated key establishment
Key combiners for KEMs, or hybrid/composite KEMs
Performance, scalability, or interoperability considerations for KEM deployment
Implementation experiences and lessons learned from KEM adoption
Potential use cases and industry applications of KEMs
Limits for use of ephemeral keys
Additional relevant topics are welcome.
Submissions should be provided electronically, in PDF or PowerPoint format. As there is a short amount of time for this call, NIST is looking for extended abstracts of 1-2 pages describing what would be presented. Alternatively, slides of a proposed presentation could be submitted. Proposals for panels should include the topics for discussion, as well as possible panelists and an indication of which panelists have confirmed their participation.
Please submit the following information to pqc-ke...@nist.gov:
Name, affiliation, email, phone number (optional), postal address (optional) for the primary submitter
First name, last name, and affiliation of each co-submitter
Extended abstract, presentation, or panel proposal in electronic format as an attachment
All submissions will be acknowledged. General information about the conference, including registration information, will be available at the conference website: http://www.nist.gov/pqcrypto.
Thanks Dustin, this is great to get an IDP to quickly.
I may have skimmed too quickly, but does 800-277 give any clarification on whether the seeds passed into ML-KEM.KeyGen_internal may come from a KDF, or are you leaving in place FIPS 203’s requirement that the seed come directly from an approved DRBG?
In particular, this impacts the IETF’s X-Wing proposal [1] which has the following KeyGen:
def expandDecapsulationKey(sk):
expanded = SHAKE256(sk, 96)
(pk_M, sk_M) = ML-KEM-768.KeyGen_internal(expanded[0:32], expanded[32:64])
sk_X = expanded[64:96]
pk_X = X25519(sk_X, X25519_BASE)
return (sk_M, sk_X, pk_M, pk_X)
To my understanding, expanding a seed with SHAKE256 prior to invoking ML-KEM.KeyGen_internal is currently explicitly FIPS-disallowed, and will remain so under SP 800-227. I would appreciate if NIST could confirm that my understanding is correct.
[1]: https://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem
---
Mike Ounsworth
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.
To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/PH0PR09MB8667B8EBCD77C12889F5CA65E5112%40PH0PR09MB8667.namprd09.prod.outlook.com.
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.
To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/20250109130152.4089.qmail%40cr.yp.to.
These random bytes shall be generated using an approved RBG, as prescribed in SP 800-90A, SP 800-90B, and SP 800-90C.
THALES GROUP LIMITED DISTRIBUTION to email recipients
Perhaps this is something else for NIST to add to their Errata spreadsheet now published with each standard?
Linking back to an earlier thread, I’d still strongly suggest similar is done to formalize statements made on this mailing list linked to permitted external-mu calculation and FIPS 204.
Thanks for arranging this!
I think it is great to have a workshop to discuss KEMs and everything related to them.
We just submitted the following paper to the workshop
https://emanjon.github.io/Publications/ML-KEM%20is%20Great!%20What's%20Missing.pdf
We focused mostly on high level topics in the paper. We will provide more detailed comments and suggestions in comments on March 7.
Cheers,
John
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
pqc-forum+...@list.nist.gov.
To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/c94fb5c4-f658-4f9f-bba2-cbeab10c21f5n%40list.nist.gov.
---
Mike Ounsworth
I have a concern about "6.2.1. Hybrid Public-Key Encryption (HPKE)", pages 34-35 in Draft SP 800-227.
For HPKE to be CCA-secure, the common method is to compose a CCA-secure KEM with a CCA-sexure symmetric-key encryption (SKE) scheme. Now we consider a typical construction of CCA-secure symmetric-key encryption that composes a CPA-secure SKE and a MAC scheme. We assume the key used by CPA-secure SKE is K1, and that used by MAC is K2.
With ML-KEM, the 256-bit random seed $s$ is used to derive a 256-bit key $K$ encapsulated and a random string used in FO-transformation. For the above CCA-secure HPKE, the actual entropy of K1 or K2 may be much lesser than 256. Actually, the entropy of K1 or K2 is double decreased: first decreased from $s$ to $K$, and the second entropy decrease is from $K$ to $K1$ or $K2$.
Would this cause quantum threat to the underlying CPA-secure SKE or MAC in reality? For example, the MAC-key K2 can be viewed as like H(counter.H(counter,seed)), the collision resistance is particularly reduced, which may in turn ruin the security of MAC in reality.
In RO model, entropy reduction may not be a problem, but reduction in collision resistance might be a problem in reality. Consider the following attack: (1) We first make the following assumption, each length doubling will cause half entropy reduction reality. That is, with the original random seed of entropy of 256, the entropy of K is about 128, and the entropy of K1 or K2 is about 64 in reality; (2) With this assumption, could the underlying SKE and MAC still provide classic 256 or even 128 bit security? An adversary might take time much lesser than 2^128 to have key collision with K1 or K2. In comparison, with traditional public-key cryptography like RSA, one could encrypt a random seed of 512 bits or even longer, and can use random seeds of varying lengths according to different security levels.
With this in mind, NIST may consider seeking for future KEMs that allow CPA-encrypting seed of varying length.
Yours sincerely
Yunlei
-----原始邮件-----
发件人: "'dustin...@nist.gov' via pqc-forum" <pqc-...@list.nist.gov>
发送时间: 2025-02-19 21:23:49 (星期三)
收件人: pqc-forum <pqc-...@list.nist.gov>
抄送: "dustin...@nist.gov" <dustin...@nist.gov>
主题: [pqc-forum] Re: Recommendations for Key-Encapsulation Mechanisms | Draft SP 800-227 is Available for Comment
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.
To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/bc2a65db-eeef-4c20-a153-d0acc3695525n%40list.nist.gov.
Hi,
Here are the comments Ericsson submitted on SP 800-227 ipd
https://emanjon.github.io/NIST-comments/2025%20-%20SP%20800-227.pdf
“We think SP 800-227 should discuss binding properties [1–2], private key storage formats [3], implicit and explicit rejection [4], and anonymity and robustness of KEM-DEM constructions [5]. We think future KEMs should exhibit strong binding properties (e.g., MAL-BIND-K-CT, MAL-BIND-K-PK, etc.), ensure anonymity and robustness in KEM-DEM constructions, use a 32-byte seed as the private key, and be explicitly rejecting. While committing AEADs imposes significant performance costs, KEM binding properties can be achieved with a small performance impact. We do not believe implicit rejection offers practical security benefits in systems—on the contrary, it merely defers the problem, assuming that later steps will properly handle the rejection. This places an additional burden on application correctness, which is disadvantageous. As shown in [4], explicit rejection is as secure as implicit rejection. Moreover, implicit rejection excludes certain binding properties and introduces additional performance overhead.”
We cannot see any theoretical or practical benefits with implicit rejection, are there any?
Cheers,
John
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.
To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/20250309224605.333326.qmail%40cr.yp.to.
When implemented correctly (ie in a side-channel silent way) the two
are quite different.
First of all, the attacker does not get timing information which is
important, because with explicit rejection generally timing reveals a
lot of where the fault is occurring opening avenues to reveal secret
state.
True, though it seems that in the above context, timing would matter only for “local” attacker that can “physically” affect the processing device.
Secondly the attacker can't tell what kind of failure occurred.
Did the cryptosysytem fail completely and returned a pseudo-randomly
generated key? Or did the attacker succeed in generating ciphertext
that actually results in a valid key exchange ?
I’m afraid I don’t understand the above. What role for the attacker does the above example assign? If the attacker can inject traffic – then sooner or later she’ll learn whether the given attempt was successful or not, right?
Finally, it may (depending on the operation/protocol/application) force
the attacker to spend the same amount of resources the target spends in
order to verify whether the attack caused a failure or not, because it
forces the attacker to complete the whole handshake/exchange in order
to get the reply.
Oh yes – in “my” scenario, the attacker has to complete the entire handshake. But that’s what I meant when I said “one informs the attacker quicker, and the other one forces to wait till KC completes”.
> Re. KEM returning “reject” vs. random key in case of failure: aren’t
> the two essentially the same from the adversary point of view, at
> least in practical use?
No. An attacker paying attention to the cryptosystem details will send
modified ciphertexts, will look at which ciphertexts produce "reject"
and which ciphertexts instead give keys, and will use this information
What I’m failing to understand is how this is different from “…will look at the result of the handshake to see which ciphertexts resulted in valid (confirmed) keys, and which ones produced garbage keys”? Except that a complete handshake will likely take more time than “reject” in the middle of the process?
See
Thanks – will do (actually, pulled, and am reading).
TNX
Hi,
We cannot point to insecure instantiations of explicit rejection and conclude that explicit rejection is insecure in general.
For each implementation of implicit rejection there is an explicit counterpart.
Namely, compute the binary value that determines whether to implicitly reject or not, and make it public.
For ML-KEM, this would be Line 9 in Algorithm 18 and revealing the outcome of the comparison c = c’.
Conversely, each implementation of explicit rejection has an implicit counterpart (namely, compute the binary value and instead of releasing it, return a random key).
The difference in information between the implicit & explicit counterparts to the attacker is 1 bit – whether or not rejection has taken place.
This appears to be the same bit of information that an attacker would obtain through plaintext confirmation.
So the question is whether revealing this bit of information as part of the KEM is really an issue, in particular when plaintext confirmation is used.
I do not have a strong opinion one way or the other at this point, as implicit rejection may indeed be harder to get wrong, but I would not go as far as to say explicit rejection (as implemented above) is less secure in all scenarios..?
KR,
Joost
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.
Bobby McGee writes:
> So, if I'm following, there exist attacks using modified ciphertext whose
> validity is unknown, and implicit rejection prevents deciding between the
> cases
> - modified ciphertext invalid and
> - modified ciphertext valid (but possibly associated with different
> plaintext if the original plaintext was unknown)
> since the eventual "failure" resulting from different derived keys could be
> attributed either to implicit rejection or to acceptance (of a different
> key or the key associated with the original plaintext if the plaintext
> wasn't known in the first place)?
Right. As an example, let's look at a chosen-ciphertext attack against
Niederreiter's compressed version of the original McEliece system.
Assumptions about Alice and Bob trying hard to stop attacks:
... this sounds like best practices in
stopping chosen-ciphertext attacks, right?
For example, a device is trying to connect to a cloud server with static
ML-KEM key, to store some data.
A) If ML-KEM implicitly accepts, the ML-KEM handshake succeeds, and the data
is sent.
B) If ML-KEM implicitly rejects, the ML-KEM handshake fails, the data is not
sent.
A & B can be distinguished by anybody observing the communication, even
without side channels.Ahtml#ntrw is an example of this.
'Christopher J Peikert' via pqc-forum writes:
> The deficiency is that nothing ensures that "e" (the random input to the
> one-way encryption) is "authentic." Requiring this is a basic goal of the
> re-encryption paradigm; we want to ensure that whoever produced the
> ciphertext must have "known" the encryption algorithm's random input.
As one can easily see from Niederreiter's paper or from the description
that I posted, this PKE is deterministic: i.e., the PKE randomness is
the empty string, while e (a longer vector) is the PKE plaintext.
So, even if the caller chooses e randomly (as the KEM that I described
does), it's not correct that e is "the random input to the one-way
encryption".
First of all, empty randomness is automatically authentic, so the claim
of nothing ensuring authenticity of the randomness is incorrect.
More fundamentally, the attribution of this chosen-ciphertext attack to
a lack of reencryption is incorrect.
> FO and Dent ensure an "authentic e" by requiring "e" to be a certain
> hash output. Another way is to include a hash of "e" in the
> ciphertext. Both are conspicuously missing here.
This description of what FO and Dent require is incorrect, since e is
actually the PKE plaintext.