diff --git a/docs/nkode_over_unencrypted_channel.md b/docs/nkode_over_unencrypted_channel.md
index 26f1875..136dc3b 100644
--- a/docs/nkode_over_unencrypted_channel.md
+++ b/docs/nkode_over_unencrypted_channel.md
@@ -52,29 +52,18 @@ sequenceDiagram
rect rgb(191, 223, 255)
Server -->> Mobile Client: Store ChaCha20 256-bit key
end
- rect rgb(191, 223, 255)
- Server ->> Server: Shuffled Keypad Index Array =
ChaCha20FisherYates(Keypad Index Array, SharedKey, Nonce)
- Server ->> Mobile Client: Shuffled Keypad Index Array + Nonce
- end
- Note right of Server: Server also sends the 96-bit nonce in plain-text.
The Server must never use the same nonce twice.
It must be randonly generated for every authentication.
The only additional overhead is the 96-bit nonce.
- rect rgb(191, 223, 255)
- Mobile Client ->> Mobile Client: Keypad Index Array =
Unshuffle(Shuffled Keypad Index Array, SharedKey, Nonce)
+ Server ->> Mobile Client: Keypad Index Array
end
Mobile Client ->> User: Render Keypad
User ->> Server: Set nKode
Server ->> Server: Disperse Keypad
- rect rgb(191, 223, 255)
- Server ->> Server: Shuffled Keypad Index Array =
ChaCha20FisherYates(Keypad Index Array, SharedKey, Nonce)
- Server ->> Mobile Client: Shuffled Keypad Index Array + Nonce
- end
- rect rgb(191, 223, 255)
- Mobile Client ->> Mobile Client: Keypad Index Array =
Unshuffle(Shuffled Keypad Index Array, SharedKey, Nonce)
- end
+ Server ->> Mobile Client: Keypad Index Array
Mobile Client ->> User: Render Keypad
User ->> Server: Confirm nKode
Note over User,Server: Login
rect rgb(191, 223, 255)
Server ->> Server: Shuffled Keypad Index Array =
ChaCha20FisherYates(Keypad Index Array, SharedKey, Nonce)
+ Note right of Server: Server also sends the 96-bit nonce in plain-text.
The Server must never use the same nonce twice.
It must be randonly generated for every authentication.
The only additional overhead is the 96-bit nonce.
Server ->> Mobile Client: Shuffled Keypad Index Array + Nonce
end
rect rgb(191, 223, 255)