SPANSE: One-Time Code-Based Signature
- SPANSE is a one-time digital signature protocol leveraging dense QC-LDGM codes and the NP-hard syndrome decoding problem for post-quantum security.
- It achieves efficient signing and verification by using linear algebra routines along with quasi-cyclic structures and dense random masking to prevent key leakage.
- Key features include moderate public key sizes, fast operations, and strong resistance against both statistical and structural cryptanalytic attacks.
The SPANSE scheme is a one-time code-based digital signature protocol designed to achieve efficient signing and verification with moderate public key size and enhanced resistance against key-leakage attacks. SPANSE distinguishes itself from earlier code-based signatures by employing dense, zero-free signatures and leveraging the NP-hard syndrome decoding problem for large-weight vectors, aligning its security with recent trends in post-quantum cryptography. The scheme exploits the structure of quasi-cyclic low-density generator matrix (QC-LDGM) codes and introduces dense random masking to eliminate structural leakage, targeting both practical efficiency and robust cryptanalytic resistance (Baldi et al., 2022).
1. Design Objectives and Security Foundations
SPANSE was designed with several principal goals: enabling fast one-time signature generation and verification using linear algebra routines; optimizing public key size to a few megabytes through QC representations; and eliminating earlier vulnerabilities posed by signature sparsity, specifically information leakage exploitable by support-decomposition or key-recovery attacks.
Security is founded on the hardness of the syndrome decoding problem (SDP) over for vectors with weight close to the codeword length, a problem known to be NP-complete for any target weight. A crucial aspect is that all signatures are densely populated—no zero entries—preventing statistical attacks that exploit sparse output. Additional safeguards are achieved by ensuring that no helpful algebraic structure is accessible in the public key , with the underlying secret QC-LDGM code and a dense masking transformation obfuscating the system. One-time usage per key-pair is mandatory, as repeated signature publication can lead to statistical distinguishability without further countermeasures (Baldi et al., 2022).
2. Scheme Definition: Structure and Algorithms
The SPANSE construction relies on:
- Field: A prime field of size , typically (e.g., ).
- QC-LDGM code: Length , dimension , redundancy , structured via circulant blocks.
- Secret matrices: Sparse generator matrix 0, systematic parity-check 1, random permutation 2, and a dense QC matrix 3 with specifically chosen row/column distribution.
- Hash and syndrome map: Cryptographic hash 4 and randomness-dependent mapping 5 to binary vectors of prescribed weight.
The workflow consists of three main stages:
2.1 Key Generation
Input parameters are code structure (6, 7, 8, 9), LDGM row weight 0, and base field 1. The key steps are:
- Generate a random QC-LDGM generator 2 with prescribed sparse row weight.
- Compute a systematic parity-check matrix 3.
- Sample a random QC permutation 4.
- Sample a dense QC matrix 5 with defined distribution.
- Derive the public key 6.
The secret key comprises 7; the public key is 8.
2.2 Signature Generation
Given a message 9 and the secret key:
- Compute 0.
- Use 1 to obtain 2, a binary vector of prescribed weight 3.
- Map 4 with the secret permutation (5).
- Form an error vector 6 so 7.
- Repeat: sample random weight-8 codeword 9, compute 0. Repeat until all entries of 1 are nonzero.
- Output 2.
2.3 Signature Verification
Given 3, message 4, and signature 5:
- Reject if any entry of 6 is zero.
- Compute 7 and 8; reject if 9.
- Compute syndrome 0; accept if 1, else reject.
3. Hardness Assumptions and Security Reductions
The core hard problem is the large-weight Syndrome Decoding Problem (SDP2), in which 3 and a target weight 4 (here, typically 5 or 6) are given, and the task is to find an 7 of at least this weight such that 8. This version remains NP-complete.
The best known generic attack is the PGE+Subset-Sum solver (generalization of Debris-Alazard et al.), with time complexity 9, for 0 in typical settings (1, 2, 3). "Decoding One Out of Many" (DOOM) techniques yield a further speed-up factor of 4, impacting the effective exponent. Other attacks such as Information Set Decoding (ISD) are countered by the masked code design; their complexity is approximately 5 operations on the intended parameters (Baldi et al., 2022).
Asymptotically, the problem’s resistance scales linearly in 6 for fixed code rate and field size.
4. Concrete Parameters and Performance Metrics
A parameterization for 128-bit classical security includes:
- 7
- Circulant size 8
- 9, 0 (1), 2
- LDGM generator row weight 3
- Syndrome weight 4
- Codeword sampling: sum 5 rows of 6 for target codeword weight 7
- Masking distribution for 8: e.g., uniform binary 9 leads to negligible rejection rate (0)
Performance characteristics:
| Parameter | Value/Estimate | Notes |
|---|---|---|
| Public key size | ≈ 2,437 kB | 120 × 120 circulant polynomials, 1 |
| Signature length | 21 kB | 2 bits |
| KeyGen cost | 3 ops | Performed offline |
| Signing/verif. | 4 ops | < 1 ms on modern hardware |
This balance of efficiency and compactness is made possible by the dense signature regime and quasi-cyclic structures (Baldi et al., 2022).
5. Security Analysis and Cryptanalytic Position
The scheme’s main line of defense is the standard large-weight SDP for random-looking codes as obfuscated by dense 5 and 6. No support-leakage or structural attacks are facilitated, given that every signature reveals no sparsity pattern. The primary cryptanalytic avenues are:
- ISD and generic decoding: estimated workfactor 7.
- PGE+SS for large-weight decoding: 8 after accounting for DOOM speedup.
- Structural recovery: the design of 9 and 0 precludes attacks leveraging the sparseness or algebraic redundancy of the underlying LDGM code.
- Key reuse: signatures produced per key are one-time and rejection-sampled for uniformity, but keys must not be reused across multiple messages, as this could enable statistical distinguishers.
A plausible implication is that with the correct rejection-sampling and strict one-time usage policy, the system’s resistance to state-of-the-art algebraic and statistical attacks is commensurate with its targeted classical security margin.
6. Comparative Context and Relation to Previous Schemes
Earlier code-based signature schemes relying on QC-LDGM structures and sparse signatures (e.g., Baldi–Chiaraluce–Santini, 2013) were vulnerable to decomposition and key-recovery due to observable sparsity. Goppa code-based hash-and-sign approaches such as CFS/KKS face significant limitations in key size (>10 MB) and slow signature generation (many syndrome decoding attempts). WAVE, a large-weight scheme using special 1 codes over 2, achieves similar key size but slower cubic signing cost.
SPANSE delivers multiple improvements:
- Public key sizes approach 2.5 MB with a compact QC structure over a large prime field.
- Both signature generation and verification scale quadratically, without the need for decoding loops.
- Dense signature outputs avoid any sparsity-exploitable leakage.
- The security basis is the standard large-weight SDP, benefiting from straightforward security reductions for random codes.
This positions SPANSE as a competitively efficient and secure one-time signature primitive within the landscape of post-quantum code-based cryptography (Baldi et al., 2022).