|
3 | 3 | | Feature | Algorithm | |
4 | 4 | |-------------------|---------------------------| |
5 | 5 | | Hash | BLAKE3 | |
6 | | -| Symmetric Crypto | [XChaCha20-BLAKE3-MiCKey] | |
| 6 | +| Symmetric Crypto | [XChaCha20-Poly1305] | |
7 | 7 | | Asymmetric Crypto | Curve25519, EdDSA, X25519 | |
8 | 8 |
|
9 | | -## XChaCha20-BLAKE3-MiCKey |
10 | | -[XChaCha20-BLAKE3-MiCKey]: #xchacha20-blake3-mickey |
11 | | - |
12 | | -(Where "MiCKey" provisionally stands for "Misuse-resistant and Committed Key") |
13 | | - |
14 | | -This is a key committing, nonce misuse-resistant variant of [XChaCha20-BLAKE3] [^bchacha-note]. |
15 | | - |
16 | | -[^bchacha-note]: Why not SChaCha or BChaCha? These look even better, but we're starting to increase the amount of custom crypto that we're rolling. The reasons for the enhancements in these variants make sense, but we're not going to (e.g.) implement our own library that doesn't include HChaCha. |
17 | | - |
18 | 9 | ### Key Commitment & Misuse Resistant Nonces |
19 | 10 |
|
20 | 11 | > [!CAUTION] |
@@ -45,24 +36,18 @@ This strategy also commits to a specific key (and redundantly commits to the mes |
45 | 36 |
|
46 | 37 | Note that to avoid allocating space for the entire payload in the nonce preimage (on creation and validation), we first hash the content. |
47 | 38 |
|
48 | | -> [!NOTE] |
49 | | -> The extra hash step mentioned above may be superfluous, need to double check |
50 | | -> |
51 | | -> — expede |
52 | | -
|
53 | 39 | (Keyed) BLAKE3 by default produces 32-bytes of output. While we could keep this entire value as the nonce, to conform to XChaCha20 we truncate it to 24 bytes (196-bits). |
54 | 40 |
|
55 | 41 | ## Sub-Protocols |
56 | 42 |
|
57 | 43 | | Feature | Algorithm | |
58 | 44 | |--------------------------|---------------------------------------------------------------------------------------| |
59 | 45 | | Group Definition | Capability Graphs | |
60 | | -| Read Group Key Agreement | DCGKA ("Duckling") | |
61 | | -| Read Access Revocation | DCGKA's in-built PCS mechanism | |
62 | | -| Transitive Read Access | DCGKA + Capabilities | |
| 46 | +| Read Group Key Agreement | BeeKEM (Continuous Group Key Agreement) | |
| 47 | +| Read Access Revocation | BeeKEM's in-built PCS mechanism | |
| 48 | +| Transitive Read Access | BeeKEM + Capabilities | |
63 | 49 | | Granular Edit Access | Modified (partition tolerant) OCap, predicate attenuation | |
64 | 50 | | Edit Revocation | Causality locking, backdating detection, default to "whiteout" (skip materialization) | |
65 | 51 |
|
66 | 52 | <!-- External Links --> |
67 | 53 | [encryptment]: https://eprint.iacr.org/2019/016.pdf |
68 | | -[XChaCha20-BLAKE3]: https://kerkour.com/chacha20-blake3#xchacha20-blake3 |
0 commit comments