Users exchange a set of messages to negotiate a pair of encryption keys. One key is used by the sender to encrypt messages sent to the receiver and the other is used by the receiver to encrypt messages sent to the sender. This protocol ensures that both users are active and are sending messages directly to each other.