Files
corona/proofs/easycrypt/README.md
T
zeekay df1db68bd0 docs/comments: correct lattice-family label Ring-LWE -> Module-LWE (Corona is Module-LWE)
Corona is Module-LWE (threshold-Raccoon/Ringtail), NOT Ring-LWE. Confirmed in code: sign/sign.go samples A in R_q^{8x7} (sign.go:87 SamplePolyMatrix M=8,N=7), secret s a rank-7 ring vector, b=A*s+e (sign.go:106-107) over R_q=Z_q[X]/(X^256+1) (LogN=8), q=0x1000000004A01 -- rank>1 module structure, not rank-1 ring-LWE. threshold/threshold.go:4-5 already said Module-LWE.

Fixed the family label across README, SPEC, SUBMISSION, NIST-SUBMISSION, PATENTS, LLM, CONTRIBUTING, SECURITY, CHANGELOG, DEPLOYMENT-RUNBOOK, Makefile, AXIOM-INVENTORY, PROOF-CLAIMS, BLOCKERS, CRYPTOGRAPHER-SIGN-OFF, FIPS-TRACEABILITY, TRUSTED-COMPUTING-BASE, AUDIT-2026-05/06, docs/mptc/*, jasmin/README, 3 Go comments + cli help string.

Also corrected the downstream false claim that Corona (Ring-LWE) and Pulsar (Module-LWE) are 'different lattice families' giving 'structural/family diversity': both are Module-LWE, so the Double-Lattice defense is construction/implementation diversity (threshold-Raccoon vs ML-DSA), not hardness-family diversity; a Module-LWE break affects both legs (hash-based Magnetar is the assumption-diversifier). Fixed companion R-SIS -> Module-SIS where it was the module scheme's SIS assumption; added the Langlois-Stehle (DCC 2015) Module-LWE citation alongside LPR 2010.

Delicate artifacts: proof identifiers (rlwe_sign_op, RLWE_Functional theory/file, *_eq_rlwe bridges, CentralRLWESign, RLWESign, rlwe_compute_*) were NOT renamed -- EasyCrypt/jasmin toolchains are absent here so a rename cannot be compile-verified, and .assurance/ gates parse those names. Added clarifying naming notes to the 5 prominent .ec files, proofs/easycrypt/README.md, AXIOM-INVENTORY.md, and jasmin/rlwe/sign.jazz. .assurance/*.txt left untouched (already say Module-LWE/Module-SIS; rlwe tokens are gate-parsed identifiers). Left AUDIT-2026-06.md:463 historical rename-log and the ProtoStar-LWE paper-title substring untouched.

go build ./... and go test ./... green (GOWORK=off; all packages ok).
2026-06-27 16:12:24 -07:00

2.4 KiB

Corona EasyCrypt Theories

This directory holds the EasyCrypt mechanization of the Class N1 (byte-equality) and Class N4 (reshare public-key preservation) correctness claims for Corona, mirroring ~/work/lux/pulsar/proofs/easycrypt/.

Naming note. Identifiers and file names containing RLWE / rlwe here (e.g. the RLWESign module type, rlwe_sign_op, and lemmas/RLWE_Functional.ec) are retained proof identifiers for the single-party reference signer the threshold protocol refines against; Corona is a Module-LWE scheme (threshold-Raccoon/Ringtail; module dims M=8, N=7 over Z_q[X]/(X^256+1)).

File map

File Contains
Corona_N1.ec Master theorem: threshold output = single-party output (byte-equal) on the reconstructed share
Corona_N4.ec Reshare public-key preservation on the honest reshare module
Corona_N1_Memory.ec byte-memory model (mem_t + load/store + frame laws)
Corona_N1_Signature_Codec.ec Corona signature type + codec round-trip + length
Corona_N1_Combine_Layout.ec Combine input/output byte layout invariants
Corona_N1_Sign_Layout.ec centralized Sign input/output byte layout invariants
Corona_N1_Combine_Refinement.ec byte-walk + memory-sep + layout-frame axioms for the extracted Combine
Corona_N1_Sign_Refinement.ec byte-walk + memory-sep + layout-frame axioms for the extracted Sign
Corona_N1_Combine_Wrapper.ec wrapper bridge: extracted Combine -> Corona_Threshold module interface
Corona_N1_Sign_Wrapper.ec wrapper bridge: extracted Sign -> RLWESign module interface
Corona_N1_Extracted.ec the IMPLEMENTATION-BACKED end-to-end theorem; cite this
lemmas/RLWE_Functional.ec in-house EC mechanization of Boschini ePrint 2024/1113 §3 Sign
lemmas/Corona_CT.ec constant-time obligations on the threshold-layer routines

Total: 13 EC files, mirroring Pulsar's exact count.

Admit budget

0 admits across all files. Tracked by scripts/checks/ec-admits.sh (ADMIT_BUDGET=0).

Trust footprint

The IMPLEMENTATION-BACKED theorem to cite for end-to-end N1 byte-equality correctness is

Corona_N1_Extracted.corona_n1_byte_equality_extracted

The full per-axiom inventory lives in AXIOM-INVENTORY.md. The Lean correspondence lives in proofs/lean-easycrypt-bridge.md.

Compile

bash scripts/checks/ec-compile.sh

Requires easycrypt on PATH. Skips silently otherwise.