A Diffie-Hellman ratchet repeatedly refreshes shared keying material during a conversation. It helps Signal recover from a temporary key compromise instead of leaving every later message exposed. section 10.4 section 10.4.3
The exchange proceeds as a repeating back-and-forth:
- When Bob receives a new key from Alice, he combines it with his own ratchet key to derive fresh decryption material. section 10.4.3
- Bob then generates a new random ratchet key, uses it for encryption, and advertises it in subsequent messages. section 10.4.3
- This ping-pong replaces ratchet key pairs, eventually producing DH output unavailable to an attacker who only briefly compromised one party. section 10.4.3
Alice sends, Bob refreshes
Alice sends a message with a new ratchet public key. Bob performs a Diffie-Hellman exchange with that key, derives message decryption keys through the symmetric ratchet, creates a new ratchet pair, and advertises his public key back.
