soft-hash analysis §9.2: pin Phase 1 reference impl landing under #000035

#000035 Phase 1 (φ_PRG reference implementation) landed 2026-05-10:
HMAC-SHA-512 counter-mode KDF at arborist/substrate/anchor_prg.py,
20 tests, 10 KAT vectors, PHI_PRG_VERSION export.

§9.2 of the soft-hash analysis already recorded the design decision
("use HMAC-SHA-512(seed, digest ‖ counter)") but did not yet point
at the landed reference. This commit closes that gap by linking
§9.2 to the impl/tests/KAT artifacts and updating §11 status block
to reflect the new state — decision pinned + Phase 1 landed,
awaiting v7 plastic-training spec for the §9.10 amendment landing
(Phase 2, exogenous gate).

Doc-only update; no schema, no governance hash, no code change.
This commit is contained in:
russell@unturf.com 2026-05-10 12:28:22 -04:00
parent 018a2a163b
commit 0b038f1e36
No known key found for this signature in database

View file

@ -394,6 +394,25 @@ The reduction in §4 leaves three loose threads:
dim_h floats. Keeps the dependency surface (already on SHA-256)
tight.
**Phase 1 landed 2026-05-10** under #000035: reference
implementation at `arborist/substrate/anchor_prg.py`
(HMAC-SHA-512 counter-mode KDF, pure stdlib — `hashlib` +
`hmac`, no third-party crypto dep). 20 tests in
`tests/test_anchor_prg.py` covering determinism, range
invariants, chi² uniformity, dim_h boundary (1, 16384),
seed-bit-flip and hash-bit-flip avalanche, input validation,
module-export shape, and KAT regression. 10 pinned KAT
vectors at `bench/fixtures/phi-prg/known-answer-tests.jsonl`
covering block-boundary cases (dim_h=16 = one HMAC block;
dim_h=17 = two blocks with truncation), one-bit-flip
variants, and a 4096-element counter-rollover stress sample.
Module exports `PHI_PRG_VERSION = "phi-prg-v1-hmac-sha512"`
so future algorithm rotation is detectable at the call site
without string-comparing module paths. Spec amendment text
drafted at #000035 §3.4; Phase 2 lands it into a v7
plastic-training spec when one gains an active deployment
target.
3. **T3 per-window budget formal bound.** ~~§6 lists "bounded by
per-window budget" without giving the bound.~~ **Closed
2026-05-10**: the explicit closed-form bound now lives at
@ -424,10 +443,13 @@ The reduction in §4 leaves three loose threads:
**Open questions:** §9.1 (Hessian alignment under `φ_linear`,
parks on v7 deployment per #000034 Phase 1b),
§9.2 (PRG cryptographic strength for `φ_PRG`, awaits v7 §9.10
spec amendment per #000035 Phase 2). §9.3 closed 2026-05-10
via the T3 per-window bound at
``docs/soft-hash-channel-t3-bound.md`` (under #000036).
§9.2 (PRG cryptographic strength for `φ_PRG`: decision pinned +
Phase 1 reference implementation landed 2026-05-10 per #000035
HMAC-SHA-512 with 32-byte committed seed, KAT-pinned; awaits v7
§9.10 spec amendment when v7 plastic-training spec gains an
active deployment target). §9.3 closed 2026-05-10 via the T3
per-window bound at ``docs/soft-hash-channel-t3-bound.md``
(under #000036).
**Closed:** §4 reduction shows T1/T2 are bounded by SHA-256 partial-
preimage hardness under any `φ` independent of parameter geometry.