← Back to context

Comment by tptacek

1 day ago

NTRU Prime (sntrup) is there mostly as a quirk of history (mlkem wasn't available when SSH went down the road of doing PQ). You can use either, but my guess is using sntrup is going to be a little like how GPG used to default to CAST as its cipher.

NTRU Prime was written by Dan Bernstein, who also had a strong hand in the creation of ed25519 elliptic curve keys, and the chacha20-poly1305 AEAD cipher.

https://news.ycombinator.com/item?id=32360533

While Kyber may have been the winning algorithm, there will be great preference in the community for Bernstein's NTRU Prime.

> NTRU Prime (sntrup) is there mostly as a quirk of history (mlkem wasn't available when SSH went down the road of doing PQ).

ML-KEM (originally "CRYSTALS-Kyber") was available, it's just the Tiny/OpenSSH folks decided not to choose that particular algorithm (for reasons beyond my pay grade).

NIST announced their competition in 2016 with the submission deadline being in 2017:

* https://en.wikipedia.org/wiki/NIST_Post-Quantum_Cryptography...

TinySSH added SNTRUP in 2018, with OpenSSH following in 2019/2020:

* https://blog.josefsson.org/2023/05/12/streamlined-ntru-prime...

SSH just happened to pick one of the candidates that NIST decided not to go with.

  • I'm simply repeating what Damien Miller said.

    https://news.ycombinator.com/item?id=32366614

    I'm curious where you got the idea that they had mlkem available to them? They disagree with you.

    • From the link:

      > We (OpenSSH) haven't "disregarded" the winning variants, we added NTRU before the standardisation process was finished and we'll almost certainly add the NIST finalists fairly soon.

      Nothing in his statements talks about 'availability', just a particular choice (from the ideas floating around at the time).

      CRYSTALS-Kyber (now ML-KEM) was available at the same time as SNTRUP because they were both candidates in the NIST competition. NTRU (Prime) is listed as round three finalist / alternate (along with CRYSTALS-Kyber):

      * https://en.wikipedia.org/wiki/NIST_Post-Quantum_Cryptography...

      Given that they were both candidates in the same competition, they would have been available at the same time. Tiny/OpenSSH simply chose a candidate that ended up not winning (I'm not criticizing / judging their choice: they made a call, and it happened to be a different call than NIST).