RFC 9941: Secure Shell (SSH) Key Exchange Method Using Hybrid Streamlined NTRU Prime sntrup761 and X25519 with SHA-512: sntrup761x25519-sha512
- M. Friedl,
- J. Mojzis,
- S. Josefsson
Abstract
This document describes a widely deployed hybrid key exchange method in the Secure Shell (SSH) protocol that is based on Streamlined NTRU Prime sntrup761 and X25519 with SHA-512.¶
Status of This Memo
This document is not an Internet Standards Track specification; it is published for informational purposes.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
Secure Shell (SSH)
[RFC4251]
is a secure remote login protocol. The key exchange protocol described in
[RFC4253]
supports an extensible set of methods.
[RFC5656]
defines how elliptic curves are integrated into the extensible SSH framework, and
[RFC8731]
adds curve25519
Streamlined NTRU Prime [NTRUPrimePQCS] [NTRUPrime] [NTRUPrimeWeb] provides
post-quantum small lattice-based key
This document specifies a hybrid construction using both sntrup761 and X25519, in the intention that a hybrid would be secure if either algorithms is secure.¶
This document also describes how to implement key exchange based on a hybrid between Streamlined NTRU Prime sntrup761 and X25519 with SHA-512 [RFC6234] in SSH.¶
This document was derived from SSH KEX Using Curve25519 and Curve448 [RFC8731].¶
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
3. Key Exchange Method: sntrup761x25519-sha512
The key agreement is done by the X25519 Diffie-Hellman protocol as described in Section 3 ("Key Exchange Methods") of [RFC8731] and by the key encapsulation method described in [NTRUPrimePQCS].¶
The key exchange procedure reuses the ECDH key exchange defined in Sections 4 ("ECDH Key Exchange") and 7.1 ("ECDH Message Numbers") of [RFC5656].¶
The protocol flow and the SSH
Implementations MAY use the name SSH
The SSH
The SSH
Clients and servers MUST abort if the length of
the received public keys Q_C or Q_S are not the expected
lengths. An abort for these purposes is defined as a
disconnect
The SSH
Some earlier implementations may implement this protocol only
through the name sntrup761x25519
4. Security Considerations
The security considerations in [RFC4251], [RFC5656], [RFC7748], and [RFC8731] are inherited.¶
Streamlined NTRU Prime sntrup761 aims for the standard
goal of IND-CCA2 security, is widely implemented with good
performance on a wide range of architectures, and has been
studied by researchers for several years. However, new
cryptographic primitives should be introduced and trusted
conservatively, and new research findings may be published at
any time that may warrant implementation reconsideration
The increase in communication size and computational requirements may be a concern for restricted computational devices, which would then not be able to take advantage of the improved security properties offered by this work.¶
Since sntrup761x25519
As discussed in the security considerations of [RFC8731], the X25519 shared secret K is bignum-encoded in that document, and this raises the potential for a side-channel attack that could leak one bit of the secret due to the different length of the bignum sign pad. This document resolves that problem by using string encoding instead of bignum encoding.¶
The security properties of the protocol in this document, SSH
itself, and the cryptographic algorithms used (including
Streamlined NTRU Prime) depend on the availability and
proper use of cryptographical
5. IANA Considerations
IANA has added the following entry to the "Key Exchange Method Names" registry within the "Secure Shell (SSH) Protocol Parameters" registry group [IANA-KEX]:¶
6. References
6.1. Normative References
- [NTRUPrimePQCS]
-
Bernstein, D.J., Brumley, B. B., Chen, M., Chuengsatiansup, C., Lange, T., Marotzke, A., Peng, B., Tuveri, N., Vredendaal, C. V., and B. Yang, "NTRU Prime: round 3", DOI 10
.5281 , , <https:///zenodo .13983972 doi >. <https://.org /10 .5281 /zenodo .13983972 ntruprime >..cr .yp .to /nist /ntruprime -20201007 .pdf - [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC4251]
-
Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Protocol Architecture", RFC 4251, DOI 10
.17487 , , <https:///RFC4251 www >..rfc -editor .org /info /rfc4251 - [RFC4253]
-
Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Transport Layer Protocol", RFC 4253, DOI 10
.17487 , , <https:///RFC4253 www >..rfc -editor .org /info /rfc4253 - [RFC5656]
-
Stebila, D. and J. Green, "Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer", RFC 5656, DOI 10
.17487 , , <https:///RFC5656 www >..rfc -editor .org /info /rfc5656 - [RFC6234]
-
Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)", RFC 6234, DOI 10
.17487 , , <https:///RFC6234 www >..rfc -editor .org /info /rfc6234 - [RFC7748]
-
Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves for Security", RFC 7748, DOI 10
.17487 , , <https:///RFC7748 www >..rfc -editor .org /info /rfc7748 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8731]
-
Adamantiadis, A., Josefsson, S., and M. Baushke, "Secure Shell (SSH) Key Exchange Method Using Curve25519 and Curve448", RFC 8731, DOI 10
.17487 , , <https:///RFC8731 www >..rfc -editor .org /info /rfc8731
6.2. Informative References
- [IANA-KEX]
-
IANA, "Key Exchange Method Names", <https://
www >..iana .org /assignments /ssh -parameters - [NTRUPrime]
-
Bernstein, D.J., Chuengsatiansup, C., Lange, T., and C. van Vredendaal, "NTRU Prime: reducing attack surface at low cost", , <https://
ntruprime >..cr .yp .to /ntruprime -20170816 .pdf - [NTRUPrimeWeb]
-
NTRU Prime, "NTRU Prime", <https://
ntruprime >..cr .yp .to / - [OpenSSH]
-
OpenSSH, "OpenSSH", <https://
www >..openssh .com / - [TinySSH]
-
TinySSH, "TinySSH", <https://
tinyssh >..org /
Appendix A. Test Vectors
Acknowledgements
Jan Mojzis added
"sntrup4591761x
Thanks to the following people for review and comments: Roman Danyliw, Loganaden Velvindron, Panos Kampanakis, Mark Baushke, Theo de Raadt, Tero Kivinen, Deb Cooley, Paul Wouters, Damien Miller, Mike Bishop, Éric Vyncke, D. J. Bernstein, and Gorry Fairhurst.¶