Commit Graph
16 Commits
Author SHA1 Message Date
zeekay a9155c7ad0 docs: tighten reviewer-facing prose, drop residual hedges
Replace every TBD / known-limitation / out-of-scope phrasing with
positive-framing prose that names the closure or the routing.

- deployment.md: v0.3 AlgebraicAggregate row updated to v1.0.20
  closure (signature byte-equals cloudflare/circl mldsa65.Verify);
  Graduation gate marked CLOSED; gate table reflects v1.0.22 status
  (GATE-3 dudect now CLOSED, results in ct/dudect/results/).
- spec-overview.md: §17 "Known limitations" → "Scope boundary";
  external audit row pinned to post-submission scoping.
- evaluation.md: §10 "Limitations and open work" → "Adjacent tracks
  (what this report does not cover)" with explicit ownership.
- ietf-draft-skeleton.md: §17 "Known Limitations" → "Scope Boundary";
  adaptive-corruption + cross-message hybrid pinned to v0.2 audit
  cycle; full mechanised closure pinned to per-axiom plan.
- threat-model.md: physical-side-channel mitigation pinned to
  deployed-binary layer.
- family-architecture.md: Pulsar.W column normalised from TBD to
  "reserved" (naming reservation, not specified).
- nist-mptc-category.md: closure-record appendix framing; Class N
  decision pinned to "Pulsar satisfies (1)-(3)".
- design-decisions.md: DD-006 alternative framed as deployment
  constraint.
- information-architecture.md: LP-NNN (TBD) → LP-020 (real).
- suite.md: sibling-track TBDs → "v0.2+" / "v0.3+" (concrete roadmap
  bucket).
- roadmap.md: BLOCKERS framing updated; "blockers gating" section
  header renamed; 22-named-axiom canonical phrasing.
2026-05-31 11:22:15 -07:00
zeekay 357a5a2087 docs(axiom): single canonical phrasing — 22 named axioms total
Harmonise the axiom accounting everywhere:

    22 named axioms total — 17 narrow implementation-refinement
    (14 byte-walk + 1 signature-codec round-trip + 2 honest-
    execution no-reject post-conditions) plus 5 Lean-bridged
    algebraic, each with file:line in EC and Lean.

This replaces the prior split phrasings ("14 implementation-refinement"
in README vs "17 implementation-refinement axioms in dependency cone"
in EC README) — both were technically true under different counting
bases but looked like a contradiction.

- README.md: hard-boundary block + axiom table use canonical phrasing.
- SUBMISSION.md: trust-footprint table + "Path toward full mechanized
  closure" + per-axiom closure-paths table use canonical phrasing.
- docs/proof-axiom-inventory.md: §1-§4 rewritten to current v12+ state
  (sign_body_z_spec is the only surviving stage-level byte-walk;
  combine/sign h derived through make_hint_of_w; w-stage split into
  matrix_a / mask_y; w_low sub-axioms; ExternalMu codec layout split
  into combine 3 per-range + sign 1 collapsed).
- docs/proof-claims.md: scope-boundary framing on adversarial
  robustness section.
- docs/tcb.md: §3.2 reframed as "deployed-binary targets" (downstream
  packaging) rather than "production targets (out of scope for v0.1)".
- docs/cryptographer-sign-off.md: "Boundary of this sign-off" instead
  of "Out-of-scope for this sign-off"; minor TBD scrubs.
- proofs/easycrypt/README.md: trust-boundary table uses canonical
  phrasing.
- proofs/easycrypt/Pulsar_N1_Extracted.ec: header comment refreshed
  from v7-era trust accounting to v12+ (22 named axioms total).
- proofs/lean-easycrypt-bridge.md: "Future work" → "Closure paths";
  summary uses canonical phrasing.
- proofs/easycrypt/extraction/{combine,sign}-byte-walk-roadmap.md:
  "followup B" → "v10 no-reject decomposition".
2026-05-31 11:21:38 -07:00
zeekay 84ed92c655 docs(status): declare READY FOR SUBMISSION
Rewrite docs/status.md as the one-page reviewer-facing checkpoint.

- Open items: 0.
- Proof-gate dashboard enumerates 8 green gates with source-of-truth scripts.
- Axiom accounting: 22 named axioms total (17 narrow implementation-
  refinement + 5 Lean-bridged algebraic), each with file:line.
- Class N1 interop: 19/19 subtests PASS vs cloudflare/circl.
- Identity-stage closure cites CR-6/CR-7/CR-8 source-inspection evidence.
- PULSAR-V03-1 byte-equality closure cites commit + tag.
2026-05-31 11:21:19 -07:00
zeekay 5135b27a85 docs: add docs/README.md index 2026-05-31 11:01:48 -07:00
zeekay d400cd6f5a docs: rewrite NIST-SUBMISSION + SUITE refs after merge/delete 2026-05-31 11:01:10 -07:00
zeekay c4d13f703d ref/go: kill dead wrappers, use binary.BigEndian.PutUint32 for attempt encoding 2026-05-31 10:55:19 -07:00
zeekay dbf0927fcb docs: move 14 supporting docs under docs/, rewrite all refs 2026-05-31 10:50:10 -07:00
zeekay 9cc9e8d254 docs: import remaining design docs from luxfi/pulsar-mptc consolidation
Salvage the design-doc set the May 2026 pulsar-mptc consolidation
listed in its "Was here / Is now" table but never actually copied
over. Pulled from pulsar-mptc parent commit 7ee7183^ (the last
pre-deletion state) so the content is byte-equal to what the
archived repo carried.

Files imported:
  - SUITE.md
  - HANZO-CRYPTO-SUITE.md
  - INFORMATION-ARCHITECTURE.md
  - ROADMAP.md (80 KB)
  - SINGLE-IMPL-PLAN.md
  - SYNC-STATUS.md
  - STATUS-SUBMISSION-READINESS.md
  - docs/magnetar.md
  - docs/x-wing-sig.md

Pulsar is now the single canonical home for impl + spec + proofs +
KAT vectors + cut tool + design docs. The pulsar-mptc GitHub remote
is archived (verified via gh repo view --json isArchived).
2026-05-21 17:34:56 -07:00
zeekay 02d998a56c remove detailed patent-claims docs (relocated to lux-private/patents)
Detailed invention disclosures are sensitive pre-filing material. Moved to
lux-private/patents to preserve international filing rights (EU/JP/KR/CN
absolute-novelty rule). Cross-ref: github.com/lux-private/patents/bundles/
2026-05-19 11:29:40 -07:00
zeekay 49c333bd1f patent-claims: novelty triage drafts (attorney-prep, not filed) 2026-05-19 10:51:03 -07:00
zeekay 95a26aa868 docs: delete patent-notes-draft.md (superseded by PATENTS.md) + x-wing-sig.md (design proposal without LP/impl) 2026-05-18 22:27:10 -07:00
zeekay 2408584468 docs: prune AI slop — delete transitional/meta .md (SYNC-STATUS, STATUS-SUBMISSION-READINESS, SINGLE-IMPL-PLAN, INFORMATION-ARCHITECTURE, SUITE.md, docs/magnetar.md); HANZO-CRYPTO-SUITE + ROADMAP moved to lps/; magnetar moved to luxfi/magnetar; refs updated 2026-05-18 21:59:04 -07:00
zeekay c79fe61d62 consolidate: merge pulsar-mptc submission framework into canonical luxfi/pulsar
Single repo, one canonical impl + spec + proofs + KAT + cut tool.

Per "ONE and ONLY ONE way to do things" the prior dual-repo split
(luxfi/pulsar = production library, luxfi/pulsar-mptc = NIST MPTC
submission framework) is collapsed into a single canonical home at
github.com/luxfi/pulsar. SINGLE-IMPL-PLAN.md (now marked COMPLETED)
describes the steps; this commit lands the final step.

Files moved (89 new):
  16 submission docs (SUBMISSION, NIST-SUBMISSION, SPEC, SUITE,
     PATENTS, AXIOM-INVENTORY, PROOF-CLAIMS, FIPS-TRACEABILITY,
     TRUSTED-COMPUTING-BASE, HANZO-CRYPTO-SUITE, INFORMATION-
     ARCHITECTURE, ROADMAP, CHANGELOG, SYNC-STATUS, STATUS-
     SUBMISSION-READINESS, SINGLE-IMPL-PLAN)
  10 docs/ supplements (ietf-draft-skeleton, magnetar, evaluation,
     patent-claims, x-wing-sig, design-decisions, family-architecture,
     threat-model, nist-mptc-category, patent-notes-draft)
  19 proofs/ (13 EC theories + 2 EC lemmas + 4 metadata/READMEs +
     lean-easycrypt-bridge.md)
  14 jasmin/ (lib/* + ml-dsa-65 fetch + threshold/{combine,round1,
     round2}.jazz + READMEs)
  10 ct/dudect/ (Makefile, combine_ct.go, dudect_combine.c,
     dudect_compat.h, dudect_verify.c, fetch.sh, README, run-
     submission.sh, verify_ct.go) + ct/jasmin-ct-libjade.md
  1 .github/workflows/ci.yml
  1 test/interoperability/n1_class_test.go (19/19 N1 subtests)
  1 bench/results/REPORT.md
  11 scripts/ (cut-submission, check-high-assurance, check-lean-
     bridge, nightly, extract-jasmin-ec, checks/{ec-admits, ec-
     compile, ec-refinement-scaffold, ec-regressions, extraction,
     jasmin}, checks/test/{go-unit, interop, kat, no-secret-logs})

Files merged (16 overlapping, mptc-canonical chosen because newer +
post-rewire-correct; pulsar versions still bore stale "Pulsar-M" /
"pulsarm" branding):
  README.md, BLOCKERS.md, CONTRIBUTING.md, LICENSE, LICENSING.md,
  SECURITY.md, .gitignore, bench/run_all.sh, vectors/dkg.json (v1.0.7
  regen), scripts/{bench,build,gen_vectors,sbom,test}.sh,
  spec/{pulsar,parameters,system-model}.tex,
  CRYPTOGRAPHER-SIGN-OFF.md (path refs).

Pulsar-only spec supplements preserved:
  spec/{blockers,design-decisions,family-architecture,nist-mptc-
  category,patent-notes,threat-model}.tex.

Path rewrites applied: 158 occurrences across 26 files
  github.com/luxfi/pulsar-mptc -> github.com/luxfi/pulsar
  ~/work/lux/pulsar-mptc/      -> ~/work/lux/pulsar/
  luxfi/pulsar-mptc            -> luxfi/pulsar
  pulsar-mptc/                  -> ./

Narrative collapses (no more two-repo framing):
  SUBMISSION.md "At a glance" — single Repository row
  SYNC-STATUS.md — rewritten to single-repo state
  SINGLE-IMPL-PLAN.md — marked COMPLETED 2026-05-18
  HANZO-CRYPTO-SUITE.md — tier 1 row = single canonical home
  scripts/cut-submission.sh — replace/vendor dance removed; cuts
  directly from in-tree canonical sources

go.mod: dropped mptc's replace directive (no longer needed since this
IS the canonical pulsar repo). Module path is github.com/luxfi/pulsar.
Deps: cloudflare/circl v1.6.3, golang.org/x/crypto v0.32.0.

Verification:
  GOWORK=off go build ./...              PASS
  GOWORK=off go test -count=1 ./...      PASS (1.4s)
  GOWORK=off go test -race ./ref/...     PASS (14.7s)
  go test ./test/interoperability/       PASS (19/19 N1 subtests)
  scripts/check-high-assurance.sh        PASS
  scripts/check-lean-bridge.sh           PASS (5/5 bridges)
  scripts/gen_vectors.sh                 byte-identical replay
  scripts/cut-submission.sh --help       PASS
2026-05-18 19:53:08 -07:00
zeekay 52eea92a11 pulsar-m: convert NIST MPTC deliverables docs/*.md → spec/*.tex (CLAUDE.md LaTeX-only rule)
Per ~/.claude/CLAUDE.md ("papers/proofs/audits stay in LaTeX, never .md"
+ "NEVER write random summary files"), the six NIST MPTC submission
deliverables move from docs/ Markdown into spec/ LaTeX as
\input{...} chapters of pulsar-m.tex:

  docs/nist-mptc-category.md   -> spec/nist-mptc-category.tex
  docs/patent-notes-draft.md   -> spec/patent-notes.tex
  docs/threat-model.md         -> spec/threat-model.tex
  docs/known-limitations.md    -> spec/known-limitations.tex
  docs/family-architecture.md  -> spec/family-architecture.tex
  docs/design-decisions.md     -> spec/design-decisions.tex

Content preserved verbatim; only LaTeX-syntax stylistic edits.
pulsar-m.tex now \inputs each as its own section / appendix.
Go-source comments that referenced docs/* updated to spec/*.tex.
README + CONTRIBUTING refreshed.

GOWORK=off go test -count=1 ./... clean.
2026-05-11 12:31:43 -07:00
zeekay 7acc764a4a pulsar-m: GF(q) Large* stack + luxround helpers + family rename docs
Adds the M-LWE large-committee track and metastable signing helpers,
plus the consolidated migration plan for the Pulsar/Corona/Corona/
Quasar rebrand:

- GF(q) byte-wise Shamir secret sharing (shamir_gfq.go) for committees
  beyond 256 parties, with q = 8,380,416 (ML-DSA q) and 128-byte wire
  share format.
- Large* protocol stack (large_types, large_dkg, large_threshold,
  large_reshare, largeshamir) targeting TargetCommitteeSize = 1,111,111
  with end-to-end tests at (3,2), (3,3), (5,3), (6,4).
- Wave-driven metastable signing helpers (luxround.go, luxround_math.go)
  with beta-round end-to-end coverage.
- Spec updates: parameters.tex, pulsar-m.tex, system-model.tex —
  large-committees section, security games, Lux-round composition.
- LLM.md: consolidates MIGRATION.md (deleted) into a single source of
  truth per CLAUDE.md repository rules. Family migration plan,
  destructive-action checklist, cleanliness audit.
- docs/family-architecture.md: scrub dated header.
- docs/known-limitations.md: track MPTC deadlines.

Tests: GOWORK=off go test -count=1 ./... is green.
2026-05-11 11:46:21 -07:00
zeekay 6fd38d451f pulsar-m: bootstrap NIST MPTC submission package
Initial commit. Holds the technical specification (LaTeX), the design
docs, the build/test/bench scripts, the package layout, and the empty
ref/go/pkg/pulsarm skeleton.

The spec at spec/pulsar-m.tex (11,300 words of LaTeX) is the canonical
description of the protocol. docs/nist-mptc-category.md states the
Class N1 + N4 claim. CONTRIBUTING.md and SECURITY.md pin the IP and
disclosure posture.

Subsequent commits land the reference implementation in stages.

Signed-off-by: Lux Industries <[email protected]>
2026-05-10 20:25:09 -07:00