Skip to content

Commit 4fb0fe5

Browse files
committedDec 29, 2023
Noise: remove dangling cipher upgrade text
A few spots were missed in 2a712c8.
1 parent 73ec7a6 commit 4fb0fe5

File tree

1 file changed

+2
-15
lines changed

1 file changed

+2
-15
lines changed
 

‎04-Protocol-Security.md

+2-15
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,13 @@ The following functions will also be referenced:
150150

151151
## 4.5 Authenticated Key Agreement Handshake
152152

153-
The handshake chosen for the authenticated key exchange is an **`Noise_NX`** augmented by algorithm negotiation prior to handshake itself and server authentication with simple 2 level public key infrastructure.
153+
The handshake chosen for the authenticated key exchange is an **`Noise_NX`** augmented by server authentication with simple 2 level public key infrastructure.
154154

155-
The complete authenticated key agreement (`Noise NX`) is performed in five distinct steps (acts).
155+
The complete authenticated key agreement (`Noise NX`) is performed in three distinct steps (acts).
156156

157157
1. NX-handshake part 1: `-> e`
158158
2. NX-handshake part 2: `<- e, ee, s, es, SIGNATURE_NOISE_MESSAGE`
159159
3. Server authentication: Initiator validates authenticity of server using from `SIGNATURE_NOISE_MESSAGE`
160-
4. Cipher upgrade part 1: Initiator provides list of alternative aead-ciphers that it supports
161-
5. Cipher upgrade part 2: Responder confirms or dismisses upgrade to a different aead-cipher
162160

163161
Should the decryption (i.e. authentication code validation) fail at any point, the session must be terminated.
164162

@@ -287,15 +285,6 @@ signature is constructed for
287285

288286
Signature itself is concatenation of an EC point `R` and an integer `s` (note that each item is serialized as 32 bytes array) for which identity `s⋅G = R + HASH(R || P || m)⋅P` holds.
289287

290-
291-
#### 4.5.5.1 Upgrade to a new AEAD-cipher
292-
293-
If the server provides a non-empty `CIPHER_CHOICE`:
294-
295-
1. Both initiator and responder create a new pair of CipherState objects with the negotiated cipher for encrypting transport messages from initiator to responder and in the other direction respectively
296-
2. New keys `key_new` are derived from the original CipherState keys `key_orig` by taking the first 32 bytes from `ENCRYPT(key_orig, maxnonce, zero_len, zeros)` using the negotiated cipher function where `maxnonce` is 2<sup>64</sup> - 1, `zerolen` is a zero-length byte sequence, and `zeros` is a sequence of 32 bytes filled with zeros. (see `Rekey(k)` function<sup>[8](#reference-8)</sup>)
297-
3. New CipherState objects are reinitialized: `InitializeKey(key_new)`.
298-
299288
## 4.6 Encrypted stratum message framing
300289

301290
After handshake process is finished, both initiator and responder have CipherState objects for encryption and decryption and after initiator validated server's identity, any subsequent traffic is encrypted and decrypted with `EncryptWithAd()` and `DecryptWithAd()` methods of the respective CipherState objects with zero-length associated data.
@@ -394,6 +383,4 @@ prefixed_base58check = "9bXiEd8boQVhq7WddEcERUL5tyyJVFYdU8th3HfbNXK3Yw6GRXh"
394383
4. <a id="reference-4"> https://tools.ietf.org/html/rfc8439</a>
395384
5. <a id="reference-5"> https://www.ietf.org/rfc/rfc2104.txt</a>
396385
6. <a id="reference-6"> https://tools.ietf.org/html/rfc5869</a>
397-
7. <a id="reference-7"> https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf</a>
398-
8. <a id="reference-8"> https://noiseprotocol.org/noise.html#cipher-functions</a>
399386
```

0 commit comments

Comments
 (0)
Please sign in to comment.