summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/meshbay-draft-v5.md15
1 files changed, 12 insertions, 3 deletions
diff --git a/docs/meshbay-draft-v5.md b/docs/meshbay-draft-v5.md
index 6fdbbc6..e8cc3a4 100644
--- a/docs/meshbay-draft-v5.md
+++ b/docs/meshbay-draft-v5.md
@@ -353,11 +353,20 @@ whose group the user joins, and GEK and keypair bundle fetches are served in the
window because the client needs its bundle to compute the proof. The window is bounded
(4 fetches) and audited.
-The bundle's own protection moved from PBKDF2-SHA512 to **Argon2id, 64 MB, t=3, p=1**
+The bundle's own protection moved from PBKDF2-SHA512 to **Argon2id, 128 MB, t=3, p=1**
(`static/vendor/argon2.min.js`, WebAssembly, no external host). PBKDF2 is compute-only,
so 600k iterations cost an attacker with a GPU far less than the wall clock suggested:
-measured on the dev machine, both take ~0.3 s honestly, but only one of them makes a
-graphics card allocate 64 MB per guess. The two implementations — the browser's WASM and
+measured on the dev machine, PBKDF2 costs 241 ms and Argon2id 88 ms natively, but only
+one of them makes a graphics card find 128 MB per guess. The honest size of that gain:
+on a single card the ceiling moves from roughly 8k guesses/s to roughly 2k — a factor of
+four, not a thousand. What it really buys is the cost of scale, since 128 MB per lane caps
+a 24 GB card at about 187 concurrent guesses and makes custom hardware unattractive.
+
+**The passphrase, not the KDF, is what decides this.** At ~2k guesses/s a dictionary-plus-
+rules run of 10⁹ candidates — which covers a large share of human-chosen passwords —
+takes about six days on one card. Four random words (~52 bits) takes longer than the age
+of the universe. No parameter choice saves a weak passphrase; it only moves it from hours
+to days. The two implementations — the browser's WASM and
`argon2-cffi` in QE — are held byte-identical by a parity test, because a disagreement
would present as an account nobody can open.