-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add [email protected]. #455
base: master
Are you sure you want to change the base?
Conversation
A more fundamental question is: why another lattice PQ KEM? We intend to add add Kyber soon. That would give OpenSSH a LWE PQ KEM (Kyber) and a lattice PQ KEM (Streamlined NTRU Prime). Why McEliece too? Re regression testing: basic testing of all key exchange algorithms is built in to the regression tests run by Is there a SUPERCOP implementation of this algorithm? If so, extracting it into the same source file as sntrup (and renaming it) might avoid some duplication. |
Thanks for feedback! Indeed choice of algorithms is a fundamental bigger question.
Classic McEliece is code-based, and one argument for McEliece is to have at least one non-structured lattice-based KEM. Both Kyber and SNTRUP share some similarities: https://ntruprime.cr.yp.to/warnings.html Yes, Classic McEliece is in SUPERCOP and the same code is inside the reduced-focus libmceliece - https://lib.mceliece.org/ - so I think it would be possible to extract a slimmed down implementation much like sntrup761.c. I'm happy with relying on I see Classic McEliece as a conservative fall-back algorithm with a long history in crypto research; significant improvements to attacks would be more remarkable than attacks on all KEMs that popped up for the last 10 years. See nice graph on historic attacks on lattice vs McEliece here: https://classic.mceliece.org/comparison.html Two other code-based KEMs would be alternatives: BIKE and HQC, however they don't nearly have the same long history as Classic McEliece and thus doesn't offer a lot compared to SNTRUP761 or Kyber768 which are also new. BIKE and HQC offer shorter public keys than McEliece, though, but if we have sntrup761/kybe768 as state-of-the-art KEMs, it may make sense to focus remaining efforts on a conservative alternative. See https://en.wikipedia.org/wiki/NIST_Post-Quantum_Cryptography_Standardization#Round_four |
fe12fed
to
4fe6fe5
Compare
Signed-off-by: Simon Josefsson <[email protected]>
4fe6fe5
to
639c178
Compare
Hi. I've pushed an update in 639c178 This adds a This is also built on GitLab -- https://gitlab.com/gsasl/openssh-portable/-/pipelines -- on Debian with/without libmceliece from unstable, and on macOS. You can see performance numbers at the end of each CI/CD job, summarized here:
|
Hi. This is work in progress, but I'm opening up a merge request for wider review and feedback. Let me know if this use of a merge request is inappropriate.
All feedback is welcome, but I'm requesting help to resolve these questions:
A specification for the protocol is available here: https://datatracker.ietf.org/doc/html/draft-josefsson-ssh-mceliece