Replies: 5 comments 2 replies
-
For reference there's a lot of material to process. An additional feature for Linux liboqs and liboqs-go. Lot's to figure out, reach a cloudflare level of security. |
Beta Was this translation helpful? Give feedback.
-
With HTTPS, key exchange using MLKEM+X25519 can easily be achieved today by using a front-end to On the Post-quantum DNSCrypt will require more work. A proof of concept was created a while ago using SIKE, but SIKE was unfortunately found to be broken. Due to its small ciphertext size and its high security margin, Classic McEliece would make more sense than MLKEM for post-quantum DNSCrypt. However, its large public keys are not a good fit for distribution via DNS. The only reasonable solution would be to embed them in the stamp instead of the certificate. Another problem is cost. This will require more CPU cycles than the current systems. As a user, you probably don't care. But as a volunteer running free DNS servers and paying for them out of my own pocket, I absolutely care — and so do all other similar DNS operators. |
Beta Was this translation helpful? Give feedback.
-
Ok well by accident I achieved X25519MLKEM exchange with your current version of dnscrypt-proxy. |
Beta Was this translation helpful? Give feedback.
-
Works with cloudflare, and local_doh. |
Beta Was this translation helpful? Give feedback.
-
It would be interesting to also add a feature for encrypted client hello, would require an extra certificate. |
Beta Was this translation helpful? Give feedback.
-
I found something quite interesting if you want to add Post Quantum Cryptography to dnscrypt-proxy.
It's quite new and in the prototyping stages. Ran a little experiment with the crypto library. If you add the mlkem folder as a sub folder in the crypto library. You can achieve X25519KEM768 handshakes with a hybrid post quantum key arrangement.
If you can get it to work with your current build add the additional crypto folder mlkem folder from the go crypto source.
https://cs.opensource.google/go/go/+/refs/tags/go1.24.2:src/crypto/
So far it works with with Firefox 137.0.2 and key exchanges as read in Wireshark are Client Hello Supported Groups: (0x11ec)
and Server hello key_share 4588. Which is X25519KEM768.
Just an idea.
It I can figure out how your processing the certificates it could be taken a step further to support full quantum safe algorithms, with certificates and keys.
Beta Was this translation helpful? Give feedback.
All reactions