-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ml-kem: seed support for DecapsulationKey
#53
Comments
As a data point for comparison, the |
The LAMPS WG at IETF seems to be heading towards seeds-only. See https://mailarchive.ietf.org/arch/msg/spasm/OxnYtr1mIzB3GejYswduSfkEIA4/ and earlier emails in the thread (later emails go off topic into RSA-land). |
BoringSSL has moved to using seeds and only seeds: https://boringssl-review.googlesource.com/c/boringssl/+/70407 |
Is anyone actively working on this at the moment (@bifurcation)? If not, I would be happy to do so. |
I have not picked this up. @supinie if you want to take a stab at a PR, I would be happy to review. |
One problem is I haven't managed to find any test vectors, though a few people have claimed they are interested in working on them soon. I've also been curious if a KDF could be leveraged to provide shorter, more secure seeds: https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/1r6FnG0coiM/m/I9_Jn5lJDQAJ |
Actually, the NIST key generation test vectors are already framed in terms of So this PR might be as simple as making |
This is what I had in mind. Have we decided if this will be replacing the current API or be additional? Alternatively, we could have a feature flag to toggle between whether the public API will accept seeds or keys? |
@supinie it should absolutely replace the existing API. I guess the remaining question is the specific seed format, although multiple could be supported with the specific one inferred from length. |
I was going to argue the opposite direction :) That since FIPS 203 defines both formats, we should support both. As far as seed format, the [1] Page 17, "The seed |
I think it would be OK to keep the existing API under a feature-gate (possibly |
If we added the required validation checks and had Maybe a compromise could be: Repurpose As an aside: The BoringSSL example reminds me that if we're going to have |
This IETF thread asked the question of whether both expanded private keys and seeds should be accepted or just seeds, and there was unanimous agreement that only seeds should be supported: https://mailarchive.ietf.org/arch/msg/spasm/vaAKtzW3BVHN8cm_JbwIaX-ypms/ If we do support the expanded private key format, we may be one of the only implementations that does so. |
Good data. How about we keep it, behind a feature flag? Seems like we can deprecate/remove it later if it's really not useful. |
Feature flagging it seems ok |
Seeds provide a shorter secret which is always valid as opposed to having to be validated.
Some have suggested seeds should be the only API for instantiating an ML-KEM decapsulator: https://words.filippo.io/dispatches/ml-kem-seeds/
The text was updated successfully, but these errors were encountered: