Research · Curve generation & practice
Formalizing curve-generation rigidity
P5.3 and SG-01 through SG-11 are resolved; Q014 and Q015 now carry self-contained evidence, derivations, artifacts, scope boundaries, and reopening conditions.
Problem
1. Formal statement
Setting. A curve-generation procedure , together with a public safety predicate .
Define. A game for a curve designer who knows a weak set , unknown to other participants, and wants the published curve to lie in while passing all public checks.
Bound. Bound as a function of the designer's degrees of freedom , measured in bits.
Construct. Give a generator minimizing subject to the safety conditions, and audit existing standard curves under an explicit accounting.
2. Required deliverables
- A game-based definition with the order of quantifiers explicit.
- Reproducible degrees-of-freedom accounting rules.
- An audit of at least P-256, Curve25519, Brainpool, secp256k1, and BLS12-381, with every judgement call documented.
- A proof of the bound and tightness conditions.
- A minimal- generator proposal and comparison with the audit.
- A discussion of tradeoffs between rigidity, safety, and performance.
3. Scope and cautions
- This is an accounting method, not a claim about any designer's intent.
- Public safety is a separate requirement from rigidity.
- Choices that look like defaults—hash, encoding, endianness, field, equation form, cofactor, counter rule, base point—must be included.
- The audit must use published specifications rather than secondary summaries.
Findings & state of play
State in five lines
The fixed-menu game, accounting contract, and main theorem are in
DEFINITIONS.md.
The five-curve A256 audit and its source boundaries are in AUDIT.md.
A002 supplies the coefficient-uniform toy sampler; A004 supplies the
class-uniform refinement and exact census.
Q014 and Q015 in OPEN_QUESTIONS.md are self-contained evidence and
resolution ledgers for the archival and sampling-kernel questions.
All requested deliverables and SG-01 through SG-11 are complete.
Established results
- PROVED For screenable candidates, ; candidate independence is unnecessary.
- PROVED Uniform marginals give the requested bound, and translated disjoint hit events attain it.
- PROVED Final constants do not identify historical : the same public output can arise from menus of different sizes.
- PROVED A sufficient provenance certificate fixes the complete finite domain, equivalence projection, generator, enumeration/ties/stopping, randomness origin, replay transcript, and residual branches.
- PROVED The ideal canonical-beacon generator has minimal designer capacity .
- CITED A256 core results are P-256 conditional on its field/model boundary, Curve25519 given equal to 0, and brainpoolP256r1 equal to 0.
- CITED SEC 2 v1 gives a broad repeated-selection criterion for the Koblitz family, while the earliest surviving linked BLS12-381 commit gives partial constraints and a canonical generator rule. Neither record fixes a complete finite historical menu and transcript.
- CITED crates.io and docs.rs both begin the public
pairinghistory at 0.9.0 on 2017-07-08; there is no earlier registry snapshot in that channel. - CONDITIONAL: SHAKE256 blocks are independent uniform strings A002 is uniform over passing coefficient encodings, and A004 is uniform over the 67 canonical safe isomorphism classes under the fixed toy profile.
- EMPIRICAL: exhaustive enumeration at There are 258 nonsingular classes from 16,002 coefficient encodings. The safety predicate retains 67 classes and 4,179 encodings with orbit histogram .
- PROVED Conditional on the census, coefficient-uniform class masses are and , versus under class-uniform sampling; the total-variation distance is .
- PROVED Uniform is the unique minimizer of maximum singleton probability on a fixed finite universe, so the forced class-uniform generator is the toy minimax answer and has .
Audit result
| Curve | A256 core | A256 package | Boundary |
|---|---|---|---|
| P-256 | fixed field/model; full-seed sensitivity | ||
| Curve25519 | given | affine; 0 u-only | field-selection universe |
| brainpoolP256r1 | explicit point-sign choice | ||
| secp256k1 | no finite historical menu/order | ||
| BLS12-381 | incomplete -domain/objective order |
Interpretation invariant
PROVED means “not identifiable from the cited public record.” It means neither zero nor infinity and carries no claim about motive. Encoded literal length must not be substituted for menu size.
Reopening condition
Reopen Q014 only for a dated pre-publication artifact that constrains the admissible historical fiber by fixing the missing finite domain, selection order/objective priority, and transcript. Later folklore alone is insufficient. Q015 is closed for the fixed toy universe; a production-scale profile would be a separately authorized problem.
Files that matter
DEFINITIONS.md, AUDIT.md,
OPEN_QUESTIONS.md,
attempts/A001-fixed-menu-game.md,
attempts/A002-toy-first-passing.md,
attempts/A003-archival-provenance.md,
attempts/A004-registry-and-class-kernel.md,
code/sample_rigid_curve.py,
code/class_uniform_kernel.py,
code/tests/test_class_uniform_kernel.py,
data/class_kernel_b7_20260708.json,
data/class_kernel_b7_20260708.csv, and
refs/crates-pairing2017.md.
Final validation
env/check_env.py passed under Python 3.13.4. The combined shared and P5.3
suite passed 79 tests, compileall succeeded, no unresolved-status tag
remains, and the Markdown control-character scan was clean. Deterministic
replay produced SHA-256
1BA019A7DA47C2FB64764B3D9A79680C7CB2904D6AD9062899069689AEB03F15
for the JSON and
EDC4C7875E2CE7A0AB0F44529BD65A99D35ADF5A57C8E485070B983DBFD382A9
for the CSV.