Ready Communication

Last modified Sep 22, 2022
Ready Communication

Ready’s processes for messaging and file transfer/storage are based on the proven Signal protocol and, thus, are secure, transparent, and sophisticated.

It should be emphasized that the following descriptions are simplified versions of the actual algorithms/protocols.

Mutually Authenticate Conversation Partners (with the Extended Triple Diffie-Hellman Key Exchange Protocol)

The fundamentals of secured communication are that the messages go to the intended recipient and that the conversation itself is closed to outsiders. Ready fulfills both of these requirements by using the Extended Triple Diffie-Hellman key exchange protocol at the start of any conversation.

  1. All users publish their identity, signed keys, and signatures to Ready’s key servers.
Notion image
  1. User A wants to talk to User B.
Notion image
  1. User A retrieves User B’s identity , signed keys , and signatures from the servers.
Notion image
  1. User A verifies the signatures to ensure that the identity and keys genuinely belong to User B.
Notion image
  1. User A generates a temporary key to create a secret key composed of the aforementioned temporary key , User A and B’s identities and , and one of User B’s signed keys .
Notion image
  1. User A encrypts an initial message with this secret key and sends it to User B, along with User A’s identity and the temporary key .
Notion image
  1. User B has his own identity (I_B) and the key used by User A (SPK_B), so he can now construct an identical secret key.
Notion image
  1. Both users share the same secret key that can now provide the basis for further communication.
 

Send and Receive End-to-End Encrypted, Forward Secured Messages (with the Double Ratchet Algorithm)

The Double Ratchet Algorithm provides post-compromise security by encrypting each message with a different key derived from the previous, making a compromised key non-functional for future communication.

  1. Once two users establish a conversation, they share a secret key that is used to generate two key chains: one for sending and one for receiving.
Notion image
 
  1. When User A sends User B a message, User A’s sending chain generates a key to encrypt the message.
Notion image
  1. On User B’s side, his receiving chain also generates a key to decrypt User A’s message.
Notion image
  1. This process is continuously repeated, in which each new sending/receiving key is derived from the previous one.
Notion image

Implement Ready’s Messaging Protocol in a Group Setting

In a group setting, both X3DH and Double Ratchet are applied to every possible pair of users.

  1. Establish secret keys between users with X3DH.
Notion image
  1. Send and receive encrypted messages, pairwise, with Double Ratchet.
Notion image