Skip to content
This repository was archived by the owner on Mar 10, 2026. It is now read-only.

Commit 61317a6

Browse files
authored
Update PROTOCOL.md
1 parent ad8a4eb commit 61317a6

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

PROTOCOL.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,10 @@ Perfect Forward Secrecy (PFS) ensure that if a ML-KEM-1024 keypair was compromis
235235

236236
### 5.1. Assumptions
237237
`Alice` wants to generate / rotate ephemeral `ML-KEM-1024` (`Kyber1024`) keys with `Bob`.
238+
238239
`Alice` and `Bob` have verified each other's `per-contact` keys using `SMP`
239-
`Alice` is the initiator
240+
241+
`Alice` is the `SMP` initiator.
240242

241243
### 5.2. PFS Exchange
242244
`Alice` generates new ephemeral `ML-KEM-1024` keypair and signs them with her `per-contact` keys for `Bob`
@@ -391,14 +393,21 @@ Even though we utilize OTP encryption, which is unbreakable if used right, we ul
391393

392394
The unbreakable property of OTPs is only true if the `Kyber1024` was not intercepted, if it were, the security becomes `Kyber1024` security.
393395

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.
396+
Even in worst scenario where `OTP` security = `Kyber1024` security, our protocol still is arguebly more secure than most other messaging protocols.
397+
398+
To summarize:
395399

396-
So best case scenario: Your messages could never be broken, no matter how much computing power your adversary has.
400+
**Best case scenario**: Your messages could never be broken, no matter how much computing power your adversary has.
397401

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.
402+
**Worst case scenario**: `OTP` has inherited `Kyber1024` security.
399403

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.
404+
If we compare the *worst case* scenario to a typical `Kyber` + `AES` scheme, our scheme would be arguably more secure because we rely only on **one** hard problem. If `Kyber` holds, everything is safe, if `Kyber` breaks, both scheme fail.
401405

406+
With the `Kyber` + `AES` scheme, you've now doubled your dependecy, significantly increasing the attack-surface.
407+
408+
So our `Kyber` + `OTP` can be thought of as just `Kyber` under *worst case* scenario. Which is still significantly better than most other encrypted protocols, because we now only trust a single-primitive.
409+
410+
Additionally, `OTP` has no modes, no nonces, no padding quirks, no classes of attacks and bugs. Making it incredibly easy to implement in comparsion to `AES` which is fairly complex, and even when implemented per-spec, would still deliever argueably worse security than our `OTP` scheme.
402411

403412
## Security Considerations & Threat Model
404413
Coldwire is designed for:
@@ -428,11 +437,10 @@ Coldwire assumes:
428437

429438
Future versions may:
430439
- Add group chat support
431-
- Hydrid traditional encryption alongside Post-quantum encryption
440+
- Hydrid traditional encryption alongside Post-Quantum encryption
432441
- Improve support for offline messaging
433442

434443

435444

436-
Our protocol is experimental. Coldwire is not meant to be the next Signal, or Matrix. Instead, we trade usability for security.
437-
445+
And lastly, our protocol is experimental, Coldwire is not meant to be the next Signal, or Matrix. Instead, we aim to be the most secure messenger available, even if it costs us some usability trades for security.
438446

0 commit comments

Comments
 (0)