diff --git a/protocol.md b/protocol.md
index dbe5fac7409bf6189c9dda00306baaf99388ab6a..daa772bf31f1fd483536cc924d0ceb705c93d414 100644
--- a/protocol.md
+++ b/protocol.md
@@ -12,7 +12,12 @@
       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 a RSA key-pair.
+   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).