You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 10, 2026. It is now read-only.
Copy file name to clipboardExpand all lines: PROTOCOL.md
+80-3Lines changed: 80 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,9 @@ Author: ChadSec (Freedom Club)
10
10
Coldwire is a post-quantum secure communication protocol focused on:
11
11
- Minimal metadata
12
12
-*0-trust* in server (server is just a dumb relay, and is always assumed malicious)
13
-
- Messages & Keys plausible deniblity
13
+
- Messages & Keys plausible deniability
14
14
- Post-quantum future proofing (NIST Post-quantum algorithms with tier-5 security)
15
-
- Design minimalism (few dependecies, simple UI)
15
+
- Design minimalism (few dependencies, simple UI)
16
16
17
17
18
18
There are a **best** and **worst** case scenario for Coldwire's security:
@@ -228,7 +228,7 @@ This **plausible unlinkability** only occurs if the server was compromised *Afte
228
228
229
229
Additionally, this **plausible unlinkability** will be the basis on which we build **plausible deniability** later on with `OTP` pads and `PFS`.
230
230
231
-
`SMP` verification, if done relatively quickly with an answer with sufficent entropy, provides an *unbreakable mathmatical guarantee of authenticity* and integrity for the verification of the keys (Assuming no hash collisions).
231
+
`SMP` verification, if done relatively quickly with an answer with sufficent entropy, provides an *unbreakable mathematical guarantee of authenticity* and integrity for the verification of the keys (Assuming no hash collisions).
232
232
233
233
## 5. Perfect Forward Secrecy
234
234
Perfect Forward Secrecy (PFS) ensure that if a ML-KEM-1024 keypair was compromised, it does not affect keys before, and after it.
@@ -359,6 +359,83 @@ The ciphertext result of `Kyber1024` is signed using `per-contact` keys and is s
359
359
`Bob` then saves both the pad and the `hash chain` seed locally as `Alice`'s.
360
360
361
361
`Bob` will use that pad to decrypt future messages sent by `Alice`.
362
+
362
363
`Bob` will also use that `hash chain` to verify messages were not tampered with, nor replayed.
363
364
365
+
### 6.4. Message sending
366
+
Now `Alice` have enough pads to send her messages, and `Bob` has enough pads to decrypt `Alice`'s messages.
367
+
368
+
`Alice` then proceeds to pad & encrypt her message:
`Bob` receives, decrypts the message, reads size of padding by reading first `2 bytes` and discards the padding, verifies hash chain, and finally, if valid, `Bob``client` displays the message.
387
+
388
+
389
+
### 6.5. Security notes
390
+
Even though we utilize OTP encryption, which is unbreakable if used right, we ultimately share the pads using `ML-KEM-1024` (`Kyber1024`).
391
+
392
+
The unbreakable property of OTPs is only true if the `Kyber1024` was not intercepted, if it were, the security becomes `Kyber1024` security.
393
+
394
+
So, even in worst scenario where OTP security = `Kyber1024` security, our protocol still is arguebly more secure than other protocols that don't utilize OTPs.
395
+
396
+
So best case scenario: Your messages could never be broken, no matter how much computing power your adversary has.
397
+
398
+
Worst case scenario: OTP has inherited `Kyber1024` security. Now only compute-power-based security falls only on `Kyber1024`, if we compare that to a typical `Kyber1024` + `AES`, best case and worst case scenarios are equal, your security would be dependent on 2 complex algorithms, both with their own classes of cryptograhic attacks.
399
+
400
+
So in our worst case scenario, our security still wins, by purely focusing on `Kyber1024` instead of an additional complex algorithm with it's very own massive classes of attacks.
401
+
402
+
403
+
## Security Considerations & Threat Model
404
+
Coldwire is designed for:
405
+
- Post-quantum confidentiality and authentication.
406
+
407
+
- Minimal metadata exposure (no timestamps, usernames, presence, contact lists, delivery logs, or message logging).
408
+
409
+
- Perfect forward secrecy (PFS) via frequent key rotation and one-time pad session material.
410
+
411
+
Coldwire does not attempt to defend against:
412
+
413
+
- Traffic analysis at the network layer (timing correlation outside the server).
414
+
415
+
- Compromise of endpoints (malware, key theft from device).
416
+
417
+
- Server compromise during per-contact SMP verification (may weaken plausible deniability).
0 commit comments