Skip to content
Snippets Groups Projects
protocol.md 1.03 KiB
Newer Older
# 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.
Wistauder, Martin's avatar
Wistauder, Martin committed
   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.
Wistauder, Martin's avatar
Wistauder, Martin committed
   1. AES, CTR-mode
4. Authenticate each other directly.
5. (?) Check communication transcript (avoid malicious server).