Skip to content

Commit e7b0131

Browse files
3x3xX3N0Nclaude
andcommitted
Threat model and paper draft, adversarially produced - and the IK claim was false
Two documents drafted by a subagent fan-out, two per item, adversarially looped: drafter -> hostile critic (verify every number against BENCH-netem.md, every mechanism against the source; the code wins over the docs) -> reviser, three rounds each; the critics failed every round, which is where the quality came from. 14 agents, ~1.25M tokens. docs/THREAT-MODEL.md - Phase 0 of the audit plan, code-verified. Its findings are the point: - THE HANDSHAKE IS NOT NOISE IK. core/Handshake.kt has no initiator static and no responder ephemeral: it is N-pattern-shaped (e, es) hybridized with ML-KEM. NOTICE and AUDIT-PLAN said IK; both corrected. Consequences the threat model now states plainly: the initiator is cryptographically anonymous (anyone with the server's published keys can connect), and first-flight forward secrecy is bounded by both server statics. - The ticket key is a concentrated-risk asset: one operator key roots ticket encryption, retry tokens, AND stateless-reset tokens - compromise yields recorded-resumed-session keys, off-path connection kills, and validation bypass at once. An auditor should start there. - Resumed sessions have no forward secrecy at all (no fresh DH/KEM on the resumption path); strictly weaker than fresh connects. - Two stale in-code comments flagged (StatelessReset.kt header-protection and idle-timeout claims vs the authoritative code). docs/paper/DRAFT.md - the arXiv cs.NI draft. The abstract is the calibration the week earned: the mechanism account labelled inferred-not-packet-traced, the CC comparison hedged at n=3 per arm, the FEC side's own 2.7 s low-rate boundary reported against itself, 11 [CITE:] placeholders and one [VERIFY] instead of invented references. Every load-bearing number spot-checked against BENCH-netem.md after generation. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 5cae3f0 commit e7b0131

4 files changed

Lines changed: 282 additions & 98 deletions

File tree

NOTICE

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,15 @@ and academic work, implemented from the documents rather than from any codebase:
5959
lengths. No crypto primitive is implemented in this
6060
repository.
6161
FIPS 203 ML-KEM
62-
Noise Protocol Framework the IK handshake pattern
62+
Noise Protocol Framework the one-flight pre-shared-responder-key premise. CORRECTED
63+
2026-08-29: earlier revisions of this file said "the IK
64+
handshake pattern"; the code (core/Handshake.kt) has no
65+
initiator static and no responder ephemeral - it is
66+
N-pattern-shaped (e, es) hybridized with ML-KEM, a
67+
misstatement found by adversarial review of the threat
68+
model and verified against the source. Consequences in
69+
docs/THREAT-MODEL.md (no initiator identity, first-flight
70+
forward secrecy bounded by both server statics).
6371
Homa (Ousterhout et al.) receiver-driven credit scheduling
6472
kwik (tech.kwik) benchmark-only dependency of :bench (`bench vs`): an
6573
independent, spec-derived Java QUIC implementation

docs/AUDIT-PLAN.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ bugs by itself.
1515

1616
## Phase 1 — formal handshake delta (weeks, nearly free)
1717

18-
The handshake is Noise IK, which already has machine-checked proofs (Noise Explorer, Kobeissi/Bhargavan). The
19-
job is therefore NOT to prove the handshake — it is to document every deviation from the proven model and show
20-
each one either maps onto it or stands as an open question:
18+
CORRECTED 2026-08-29 (adversarial review of the threat model, verified against core/Handshake.kt): the
19+
handshake is NOT Noise IK as this plan and NOTICE previously said — there is no initiator static and no
20+
responder ephemeral. It is N-pattern-shaped (e, es) hybridized with ML-KEM. Noise Explorer's machine-checked
21+
proofs cover the N pattern too, but the proven properties are weaker (no initiator authentication; forward
22+
secrecy of the first flight bounded by the responder statics) and the delta document must start from N, not IK:
2123
- ML-KEM hybridization into the key schedule (FIPS 203 + X25519)
2224
- 0-RTT resumption tickets and the replay window (core/Resumption.kt, core/ZeroRtt.kt)
2325
- the key-rotation chain (secret_{n+1} = HKDF(secret_n); KeyPhaseState)

0 commit comments

Comments
 (0)