Signal Protocol: What extra features does double ratchet algorithm add to Diffie-Hellman ratchet? I have been reading the documentation of Signal protocol and could not find out why they came up with double ratchet instead of using Diffie-Hellman ratchet which was available at first place in OTR?
There can be many messages exchanged within the same DH ratchet round. Without the symmetric-key ratchet, all messages encrypted based on the same comprised DH key can be revealed. However, since the symmetric-key ratchet computes a new message key to send or receive each message and deletes old keys (including previous DH results, root keys, chain keys, symmetric message keys, etc.) after each encryption or decryption, the adversary cannot retrieve old message keys to decrypt previous messages if it knows only the current key materials within a DH ratchet round.