diff --git a/protocol.md b/protocol.md
new file mode 100644
index 0000000000000000000000000000000000000000..a1fe44f0868c71d1ee4568995e6896463df03c97
--- /dev/null
+++ b/protocol.md
@@ -0,0 +1,18 @@
+# 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.
+      1. A calculates the challenge.
+      2. A sends the challenge to the server.
+   2. B tells the server to answer A's communication request.
+      1. B receives A's challenge.
+      2. B answers the solution to the server.
+      3. The server checks the solution and accepts the communication establishment.
+2. Generate and exchange an ephemeral key.
+3. Instantiate symmetric encryption using the ephemeral key.
+4. Authenticate each other directly.
+5. Check communication transcript (avoid malicious server).
\ No newline at end of file