Disco – A plug-and-play secure protocol and a cryptographic library in Golang
discocrypto.com
discocrypto.com
David Wong is a cryptographer at NCC Crypto. I like David. I added that because I know he's reading this.
Noise is Trevor Perrin's transport protocol framework (it's a "framework" because it's parameterized, and defines several different protocols with different cryptographic tradeoffs). Noise is used by Signal, and the WireGuard VPN uses a variant protocol inspired by it.
Strobe is Mike Hamburg's framework for building encrypted transports out of a sponge function --- sponges are the cryptographic kernels of newer hashes like Keccak. I think it works in a similar fashion to Keccak's promise of getting an entire cryptosystem out of a single crypto primitive, which is something David likes a lot.
In a sense, you'd have Noise doing the handshake and key establishment, and Strobe doing the actual encryption. Noise + Strobe = Disco. Cute.
What's the CSS framework this is done it? It's very clean.
(Corrections: it's WhatsApp that uses Noise, not Signal; Wireguard uses a variant of Noise directly).
Are you sure?
While its good to push the envelope further, I'm not sure how much practical impact this will have (compared to vanilla Noise). Especially if some of the gained simplicity is countered by sheer novelty of this construction.
Apart from just being a cool thing to design, Hamburg's rationale for STROBE was for microcontroller environments, where being able to derive everything from a single sponge function saves on text space.
If you don't have that very specific problem, there's not really a good reason to use STROBE (or Disco) --- it's subtantially slower than "vanilla" Noise, which uses primitives either designed to be fast on modern hardware (Chapoly) or that have hardware acceleration (AES-GCM).
This sounds intriguing. Could you share some keywords helpful in searching for more precise descriptions of deriving various crypto primitives from Keccak? I can image generating keys using hash functions but not the primitives themselves.
Quick search yielded only this: https://csrc.nist.gov/CSRC/media/Presentations/FIPS-202-and-...
Have you seen production lately?