Files
zeekay 3b3887b417 feat(ring): generic R_q substrate + Ringtail/ML-DSA profiles
The one ring abstraction both consumers bind onto, adapting
luxfi/lattice/v7/ring. A *Profile is the single place a scheme's
parameters live (ring, module shape K×L, public Pedersen matrices A/B,
secret distribution chi, KeyFinalize). Everything above is generic.

- ring.go   : Ring wrapper at fixed (n,q); Poly/Vector/Matrix aliases.
- ops.go    : module algebra (MatVecMul NTT-Mont, CT compare, NUMS
              matrix derivation, Gaussian + bounded-uniform samplers),
              ported verbatim from corona/utils + dkg2 domain convention.
- fips204.go: FIPS-204 Power2Round/Decompose (verbatim, circl-identical).
- profiles  : Ringtail() (corona K=8xL=7, q=48-bit, Gaussian, round-Xi)
              and MLDSA65() (pulsar K=6xL=5, q=23-bit, uniform-eta, t1).

Ringtail matrices use corona's exact NUMS tags so Phase-3 wiring
reproduces corona group keys byte-for-byte. Tests: profiles construct,
matrices deterministic + domain-separated, samplers in-range,
Power2Round obeys the FIPS-204 reconstruction identity, CT compare.
2026-06-27 19:34:15 -07:00

6 lines
258 B
Plaintext

Copyright (C) 2025-2026, Lux Industries Inc. All rights reserved.
Use of this source code is governed by a BSD-3-Clause-style license that
can be found in the luxfi organization LICENSE terms. See
https://github.com/luxfi for the canonical licensing terms.