I've been reading details about the Double Ratchet algorithm, and I wanted some clarification regarding the aspect of the DH public keys going out in the plain in the header of every message. Quoting from the specifications of the Double Ratchet:

Every message from either party begins with a header which contains the sender's current ratchet public key. When a new ratchet public key is received from the remote party, a DH ratchet step is performed which replaces the local party's current ratchet key pair with a new key pair

Doesn't that effectively allow an adversary to trace back the message to you and effectively prevent deniability? For example, lets say some messages get delayed from A to B, and meanwhile B is advertising the same public key over and over again, won't you be able to somehow know that it is B communicating with A. Probably, another way to put the same question is, is there a way for some adversary to know who B is, given that they can see their public key in the header (in that interval of time when B has not received a new DH public key from A)? Or alternatively, at least link that communication to a distinct user.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.