The Double Ratchet algorithm is used by two parties to exchange encrypted messages based on a shared secret key.| Signal Messenger
This document describes the "X3DH" (or "Extended Triple Diffie-Hellman") key agreement protocol.| Signal Messenger