Signal - Documentation
Signal - Documentation
org/docs/
Technical
information
Specifications and software libraries for
developers
Specifications
Encryption in messaging environments
integrates many ideas which often need to
be composed separately in different
applications. We make an effort to break
out ideas into independent specifications
so that they can be integrated as
appropriate for different projects.
This document describes how to create This document describes the Double
and verify EdDSA-compatible signatures Ratchet algorithm, which is used by two
using public key and private key formats parties to exchange encrypted messages
initially defined for the X25519 and X448 based on a shared secret key. The parties
elliptic curve Diffie-Hellman functions. derive new keys for every Double Ratchet
This document also describes "VXEdDSA" message so that earlier keys cannot be
1 of 3 11/1/23, 02:37
Signal >> Documentation https://www.signal.org/docs/
which extends XEdDSA to make it a calculated from later ones. The parties
verifiable random function, or VRF. also send Diffie-Hellman public values
attached to their messages. The results of
Diffie-Hellman calculations are mixed into
X3DH
the derived keys so that later keys cannot
This document describes the "X3DH" (or be calculated from earlier ones. These
"Extended Triple Diffie-Hellman") key properties give some protection to earlier
agreement protocol. X3DH establishes a or later encrypted messages in case of a
shared secret key between two parties compromise of a party's keys.
who mutually authenticate each other
based on public keys. X3DH provides Sesame
forward secrecy and cryptographic
deniability. This document describes the Sesame
algorithm for managing message
encryption sessions in an asynchronous
PQXDH
and multi-device setting.
This document describes the "PQXDH" (or
"Post-Quantum Extended Diffie-Hellman")
key agreement protocol. PQXDH
establishes a shared secret key between
two parties who mutually authenticate
each other based on public keys. PQXDH
provides post-quantum forward secrecy
and a form of cryptographic deniability but
still relies on the hardness of the discrete
log problem for mutual authentication in
this revision of the protocol.
Software libraries
Signal Protocol library
2 of 3 11/1/23, 02:37
Signal >> Documentation https://www.signal.org/docs/
3 of 3 11/1/23, 02:37