Disco
Embedded Disco is an implementation of disco, a protocol designed by merging the Noise protocol framework and the Strobe protocol framework. This means that it supports a subset of Noise's handshakes while offering the cryptographic primitive Strobe has to offer. In other words, you can use EmbeddedDisco to securely connect peers together, or to do basic cryptographic operations like hashing or encrypting. All of that in only 1000 lines of code.
- The secure protocol parts are based on the Disco specification which extends the Noise protocol framework. The Noise protocol framework is used by many applications including WhatsApp, Wireguard, the Bitcoin lightning network, etc.
- The symmetric cryptographic primitives are all based on the Strobe protocol framework. solely relies on the SHA-3 permutation (called keccak-f) which is a FIST standard and has undergone years of cryptanalysis during the SHA-3 competition.
- The asymmetric cryptographic primitive (X25519) was designed by Daniel J. Bernstein et al. It is a strong standard used in most protocols nowadays (including SSL/TLS 1.3). EmbeddedDisco uses the tweetNaCl implementation, written by Daniel J. Bernstein et al. as well.
Want to know more about the technical details? Watch our presentation at Black Hat Europe 2017.
Learn More
To learn more about it, you can read this blog post or watch our presentation at Black Hat Europe 2017.
If you want help, head to the issues on github.
If you want to stay tuned on what we're doing, we don't have a mailing list but we have better: a subreddit over at r/discocrypto.