Non-Contributory Keys in the Matrix
Soatok yesterday alleged a pair of vulnerabilities in the Matrix Vodzemac cryptography library. I’m going to focus on the first here,
The basic gist of the issue is this:
- Normally in Elliptic Curve Diffie-Hellman, you multiply your private key by the other party’s public key.
- If, instead of their public key, they send you the “identity” curve element, then the output of the multiplication is also the identity element
- This means that the output of your ECDH operation is the identity element.
- This means that the keys securing your communications are all-zero, and a passive observer can now decrypt your messages.
Now that sounds bad, I’ll agree. RFC 7748, which defines X25519, calls this case out: