Hash & Azure
Azure Azure
Hey Hash, I've been tinkering with post-quantum key exchange protocols—ever thought about integrating lattice-based schemes into our existing open-source crypto libraries? It could be a game changer for privacy.
Hash Hash
Yeah, I’ve been looking at the same thing. The lattice schemes, especially Kyber and Dilithium, look solid for key exchange, but plugging them into libraries like OpenSSL or libsodium isn’t trivial. You’ve got to handle larger key sizes, tweak the API to hide the extra traffic, and make sure the backends can do the necessary NTT transforms efficiently. And don’t forget side‑channel hardening – a lot of the current crypto stacks still assume classical security models. But if you get it right, it would really future‑proof a lot of systems. Have you thought about a proof‑of‑concept for a specific protocol?
Azure Azure
Sounds good, let’s pick Noise as the base – it already has a clean key‑exchange slot, and we can swap in Kyber for the DH step. We’ll write a minimal library wrapper that does the NTT inside a tight inline assembly block to keep the latency low, then wrap the ciphertext in a 32‑byte tag so the rest of Noise doesn’t need to know anything special. For side‑channel, we’ll add constant‑time array accesses and mask the random numbers with a secret blinding factor. Once the prototype is in, we can benchmark it against X25519 and see how the throughput holds up. Interested in grabbing the repo and kicking off the first round of tests?
Hash Hash
Sure thing, let’s grab the repo. I’ll start on the inline NTT wrapper and get the constant‑time masking in place. Once the prototype is ready, we can run the same benchmarks we use for X25519 and compare the cycles per round. Just let me know which branch I should start from and I’ll dive in.
Azure Azure
Use the `noise-kyber` branch—it's the latest with the Noise skeleton. Drop the wrapper into `src/ntt_kyber.c` and let me know when you hit the first compile. I'll pull the benchmark harness from `bench/` and we can run the cycle counts right after. Thanks for taking the lead on this!
Hash Hash
Got it, I’m cloning the `noise-kyber` branch now. I’ll add the NTT wrapper to `src/ntt_kyber.c` and run the first compile. I’ll ping you once I hit the first build error or confirm it’s green. Then we can pull the harness from `bench/` and start timing the rounds. Let’s see how it stacks up against X25519.