[ssh_x509] Post-Quantum Traditional (PQ/T) hybrid key exchange methods - phase1

ssh_x509 at roumenpetrov.info ssh_x509 at roumenpetrov.info
Thu Aug 21 22:28:07 EEST 2025


Hello,

I would like to inform you on the status of the hybrid key exchange 
method in PKIX-SSH.


A) History
1.) 18 Apr 2019
First implementation is based on "Streamlined NTRU Prime 4591^761" PQ 
algoritm for key encapsulation coupled with x25519 i.e.,
traditional diffie-hellman with curve25519.
It appears in PKIK-SSH 12.0 and method is disabled by default.

2.) 3 Mar 2021
PKIX-SSH 13.0 release replaces "Streamlined NTRU Prime" sntrup4591761 
with sntrup761.
Implementation has to be enabled at build time and is not enabled by 
default in configuration.

2.1.) 11 Apr 2022
PKIX-SSH 13.3.2 adds method to default configuration.
Note implementation has to be enabled at build time.

3.) 3 Oct 2024
PKIX-SSH 15.0 adds Module-Lattice based key encapsulation with level 768 
ML-KEM-768 coupled with x25519.
The release switch "Streamlined NTRU Prime" from "reference" to faster 
"compact" implementation.
Implementations has to be enabled at build time.

4) 8 Mar 2025
PKIX-SSH 16.0 implement key exchange method x25519 using generic "ECX" 
support from cryptographic library (OpenSSL 1.1.0, 25 Aug 2016).
The release update build-in ML-KEM-768 implementation with corrections 
for big-endian systems.


B) Issues
1.) integration model
All above algorithms are snapshot export from an reference 
implementation and build statically.
For a long period of time imported code remains as is.

2.) maintenance
Reference implementations does not provider stable API.
Using another snapshot requires a lot of work to integrate with the 
existing code base.

3.) security fixes
Nobody monitors reference implementation for security fixes not 
improvements.
Note that 1.) and 2.) prevent easy backporting of security fixes, if any.

4.) security review
Algorithms implemented by widely used cryptographic library are well tested.
Widespread use leads to in-depth code review.
Side effect is improved security.

5.) performance
A lot of algorithms in the widely used cryptographic library are 
implemented in assembler for fast performance.

6.) code compatibility
PKIX-SSH code is C89 compatibly with few C99 extension.
This is not the case with imported code.
For instance imported ML-KEM requires a lot of modern C functionality 
i.e., modern compiler.
Empirically testing compiler's capability with result that silently 
ignores imported code is not a user-friendly option.


Main conclusion:
To minimize use of imported code and use functionality from 
cryptographic library.
This includes model that allows user to setup build of imported code but 
excludes easy activation from configuration.
Also setup is not documented. User should review code and to find how to 
build code.
If compilation fail user should find suitable compiler or to arrange 
compiler options that build imported code.



Remark: ECX support in PKIX-SSH 16.0 eliminates part of issues above - 
Curve25519 support by cryptographic library.


Regards,
Roumen Petrov



More information about the ssh_x509 mailing list