Signal Protocol
Signal で使われている E2EE のプロトコル
public key, private key から EdDSA 互換の署名を作る・検証する方法を解説
Extended Triple Diffie-Hellman アルゴリズムの解説。X3DH は 互いに public key で認証した 2人の間に共通秘密鍵をつくる方法。
X3DH には前方秘匿性と cryptographic deniability (何?否認?)がある。
Double Ratchet 共有鍵を持つ2人の間で暗号化されたメッセージをやり取りするアルゴリズム。
新しい鍵から古い鍵が計算されないようにメッセージごとに新しい鍵を生成するらしい。
古い鍵から新しい鍵が計算されないように Diffie-Hellman calculations の結果と mix されるらしい。
つまり、あるメッセージに対する鍵が漏れても前後のメッセージの安全性が保たれる。
Sesame は、非同期・マルチデバイスの元でメッセージを暗号化するセッション(?)を管理するアルゴリズム。
Signal Protocol には、Java, C, Javascript のライブラリがある。