Skip to content
Snippets Groups Projects

The Authentication and Message Exchange Protocol

[A]lice wants to communicate with [B]ob privately.

Protocol Steps

  1. Authenticate to the server and establish communication.
    1. A tells the server to open a communication. 2. A sends an id_code to the server. 3. If someone answered with the same id_code, A gets a comm_id from the server.
    2. B tells the server to answer A's communication request. 2. B sends A's id_code to the server. 3. The server checks if it matches and returns a comm_id to B.
  2. Generate and exchange an ephemeral key.
    1. A and B generate RSA public-private key pairs.
    2. A and B exchange public keys.
    3. A and B encrypt their chosen secret value and send them to each other.
    4. A and B decrypt the received secret values and add them to their secret value.
    5. The result is the ephemeral key.
  3. Instantiate symmetric encryption using the ephemeral key.
    1. AES, CTR-mode
  4. Authenticate each other directly.
  5. (?) Check communication transcript (avoid malicious server).