Jump to content
Wikipedia The Free Encyclopedia

Draft:LNQC Post Quantum Cryptography

From Wikipedia, the free encyclopedia
Submission declined on 25 May 2026 by .nhals8 (talk).
This draft appears to contain text generated by a large language model (such as ChatGPT). You cannot use LLMs to generate article content.

LLM-generated pages with certain obvious signs of being machine generated may be deleted without notice.

Instead, only summarize in your own words a range of independent, reliable, published sources that discuss the subject.

See the advice page on large language models for more information.
This draft's references do not show that the subject meets Wikipedia's criteria for inclusion. The draft requires multiple published secondary sources that:
  • provide significant coverage : discuss the subject in detail, not just brief mentions or routine announcements;
  • are reliable : from reputable outlets with editorial oversight;
  • are independent : not connected to the subject, such as interviews, press releases, the subject's own website, or sponsored content.
Please add references that meet all three of these criteria. If none exist, the subject is not yet suitable for Wikipedia.
  • If you would like to continue working on the submission, click on the "Edit" tab at the top of the window.
  • If you have not resolved the issues listed above, your draft will be declined again and potentially deleted.
  • If you need extra help, please ask us a question at the AfC Help Desk or get live help from experienced editors.
  • Please do not remove reviewer comments or this notice until the submission is accepted.

Where to get help
  • If you need help editing or submitting your draft, please ask us a question at the AfC Help Desk or get live help from experienced editors. These venues are only for help with editing and the submission process, not to get reviews.
  • If you need feedback on your draft, or if the review is taking a lot of time, you can try asking for help on the talk page of a relevant WikiProject. Some WikiProjects are more active than others so a speedy reply is not guaranteed.
How to improve a draft

You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article.

Improving your odds of a speedy review

To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags.

Editor resources
Declined by .nhals8 2 months ago. Last edited by .nhals8 2 months ago. Reviewer: Inform author.
Resubmit Please note that if the issues are not fixed, the draft will be declined again.
  • Comment: There's no third-party, independent evaluation/research of this standard that we can find online, evident by how you published the npm 4 hours before this review... nhals8 (rats in the house of the dead) 12:35, 25 May 2026 (UTC)

LNQC Post Quantum Cryptography (PQC) is a family of post-quantum key encapsulation mechanisms (KEMs) whose security reduces to the hardness of the fixed-weight Learning Parity with Noise (LPN) problem over the binary field GF(2). Developed under Project LNQC by Sami Mirqulaja at Lanit Labs, the scheme restricts all cryptographic operations to constant-time binary matrix algebra, providing architectural immunity to timing and power analysis side-channel attacks without requiring masking or shuffling countermeasures. LNQC is offered in three security tiers (LNQC-256, LNQC-512, LNQC-714) and is implemented in Rust with WebAssembly (WASM) bindings, published as the npm package @lanitlabs/pqc-lnqc714.[1] [2]

Background

[edit ]

Post-quantum cryptography landscape

[edit ]

The advent of large-scale quantum computers threatens classical public-key cryptography through Shor's algorithm,[3] which solves integer factorization and discrete logarithm problems in polynomial time, rendering RSA, ECDSA, and ECDH obsolete. In response, the U.S. National Institute of Standards and Technology (NIST) has standardized lattice-based schemes including ML-KEM (FIPS 203)[4] based on Module-LWE over polynomial rings. Most NIST candidates require modular arithmetic with rejection sampling, introducing potential side-channel leakage vectors.

LNQC takes an alternative approach grounded in the LPN problem over GF(2), a strictly simpler algebraic structure whose best known quantum attack remains super-polynomial.

The LPN problem

[edit ]

The Learning Parity with Noise (LPN) problem asks an attacker to recover a secret vector s given a random binary matrix A and a noisy vector t = As + e (modulo 2), where e is a sparse error vector with exactly w non-zero bits. The problem is NP-hard in its worst-case formulation[5] and is believed to resist quantum algorithms, as its binary structure provides no multiplicative group for Shor's period-finding technique.

The best known classical attack, the Blum–Kalai–Wasserman (BKW) algorithm,[6] reduces the dimension of s by iteratively finding linear combinations of samples that cancel blocks of coordinates at the cost of amplifying the noise rate. For the LNQC-512 tier, BKW requires more samples than the available budget to reduce the secret below half its original dimension before the accumulated noise becomes destructive, placing the scheme beyond BKW's practical reach.[1]

Relation to LWE

[edit ]

The Learning With Errors (LWE) problem, introduced by Regev,[7] operates over larger moduli and admits a worst-case hardness reduction from lattice problems. LPN can be viewed as LWE over GF(2), with the compromise that no worst-case-to-average-case reduction is known for binary LPN. However, LNQC's fixed-weight noise model provides stronger concrete security than Bernoulli noise of equivalent density, and the GF(2) arithmetic enables the constant-time guarantee that is the scheme's principal architectural advantage.

Design

[edit ]

Constant-time execution

[edit ]

Unlike lattice-based schemes, LNQC restricts all cryptographic operations to binary matrix–vector products modulo 2:

  • Key generation: t = A s e {\displaystyle \mathbf {t} =\mathbf {A} \mathbf {s} \oplus \mathbf {e} } {\displaystyle \mathbf {t} =\mathbf {A} \mathbf {s} \oplus \mathbf {e} }
  • Encapsulation: U = R A ( mod 2 ) {\displaystyle \mathbf {U} =\mathbf {R} \mathbf {A} {\pmod {2}}} {\displaystyle \mathbf {U} =\mathbf {R} \mathbf {A} {\pmod {2}}}, V = R t c {\displaystyle \mathbf {V} =\mathbf {R} \mathbf {t} \oplus \mathbf {c} } {\displaystyle \mathbf {V} =\mathbf {R} \mathbf {t} \oplus \mathbf {c} }
  • Decapsulation: c ~ = V U s ( mod 2 ) {\displaystyle {\tilde {\mathbf {c} }}=\mathbf {V} \oplus \mathbf {U} \mathbf {s} {\pmod {2}}} {\displaystyle {\tilde {\mathbf {c} }}=\mathbf {V} \oplus \mathbf {U} \mathbf {s} {\pmod {2}}}

All operations use only XOR and AND gates on binary vectors, producing no data-dependent branching or variable-time arithmetic. The Gallager bit-flipping decoder is bounded at a fixed maximum iteration count (200) regardless of syndrome weight, eliminating early-exit timing variation.[1]

Three-tier parameterization

[edit ]

LNQC defines three security tiers, each with equal LPN dimension and sample count (n = m) but differing noise weights and LDPC parameters:

Parameter LNQC-256 LNQC-512 LNQC-714
LPN dimension (n) 256 512 714
LPN samples (m) 256 512 714
Noise weight (w) 2 4 4
Noise density ~0.78% ~0.78% ~0.56%
LDPC (N, K) (1024, 128) (2048, 256) (2856, 357)
LDPC column weight 15 15 15
Gallager max iterations 200 200 200
Public key size 65,792 B 262,656 B 510,510 B
Ciphertext size 263,168 B 1,050,624 B 2,042,040 B
Total bandwidth ~321 KB ~1.3 MB ~2.4 MB
Shared secret 128 bits 256 bits 357 bits

LDPC error correction

[edit ]

Each tier includes a Low-Density Parity-Check (LDPC) code constructed as a systematic linear code with a generator matrix derived from a regular parity-check matrix with a uniform column weight of 15. The systematic construction allows direct extraction of the shared secret from the first K positions of any valid codeword without additional decoding steps.

During decapsulation, a Gallager bit-flipping decoder[8] iteratively corrects the residual LPN noise. Each iteration computes the syndrome, counts failed parity checks per bit, and flips bits with the maximum failure count. The decoder runs for up to 200 iterations and achieves a 0% decryption failure rate across test trials.[1]

Cryptographic randomness

[edit ]

All randomness for key material, noise vectors, and ephemeral matrices is drawn from operating system entropy sources via getrandom (Linux getrandom syscall, Windows BCryptGenRandom, or browser crypto.getRandomValues). The LDPC construction uses a deterministic Xorshift64 PRNG seeded from the OS entropy pool, used only for LDPC matrix construction, never for security-critical key or ephemeral noise generation.[2]

Formal specification

[edit ]

Key generation

[edit ]
Input
Security parameters n, m, w (per-tier)
Output
Public key pk = (A, t), private key sk = s
  1. Sample matrix A via an OS-seeded CSPRNG.
  2. Sample vector s via an OS-seeded CSPRNG.
  3. Generate a sparse noise vector e with exactly w non-zero entries by sampling w distinct indices without replacement.
  4. Compute t = ( A s + e ) mod 2 {\displaystyle \mathbf {t} =(\mathbf {A} \mathbf {s} +\mathbf {e} ){\bmod {2}}} {\displaystyle \mathbf {t} =(\mathbf {A} \mathbf {s} +\mathbf {e} ){\bmod {2}}}.
  5. Return pk = (A, t), sk = s.

Encapsulation

[edit ]
Input
Public key pk = (A, t), message m
Output
Ciphertext ct = (U, V)
  1. Encode the message into an LDPC codeword: c = m G ( mod 2 ) {\displaystyle \mathbf {c} =\mathbf {m} \cdot \mathbf {G} {\pmod {2}}} {\displaystyle \mathbf {c} =\mathbf {m} \cdot \mathbf {G} {\pmod {2}}}.
  2. Sample an ephemeral matrix R with each row having exactly w non-zero entries.
  3. Compute U = ( R A ) mod 2 {\displaystyle \mathbf {U} =(\mathbf {R} \mathbf {A} ){\bmod {2}}} {\displaystyle \mathbf {U} =(\mathbf {R} \mathbf {A} ){\bmod {2}}}.
  4. Compute V = ( R t + c ) mod 2 {\displaystyle \mathbf {V} =(\mathbf {R} \mathbf {t} +\mathbf {c} ){\bmod {2}}} {\displaystyle \mathbf {V} =(\mathbf {R} \mathbf {t} +\mathbf {c} ){\bmod {2}}}.
  5. Return ct = (U, V).

Decapsulation

[edit ]
Input
Private key sk = s, ciphertext ct = (U, V)
Output
Recovered message m'
  1. Compute the noisy codeword: r = ( V U s ) mod 2 {\displaystyle \mathbf {r} =(\mathbf {V} -\mathbf {U} \mathbf {s} ){\bmod {2}}} {\displaystyle \mathbf {r} =(\mathbf {V} -\mathbf {U} \mathbf {s} ){\bmod {2}}}.
  2. Set a temporary vector to equal r.
  3. Loop for a maximum of 200 iterations:
    • Compute the syndrome. If the syndrome weight is zero, break the loop.
    • For each bit, count the failed parity checks.
    • Find the maximum failure count. If it is zero, break the loop.
    • Flip the bits that match the maximum failure count.
  4. Extract the systematic message from the first K positions of the decoded vector.
  5. Return m'.

Security analysis

[edit ]

IND-CPA security

[edit ]

LNQC is IND-CPA secure under the LPN hardness assumption. The public key (A, t) is a single LPN sample; by assumption, it is computationally indistinguishable from a uniform random pair. In the challenge ciphertext, the vector V is protected by Rt. Because the public key is pseudorandom, applying the Leftover Hash Lemma to the sparse matrix R makes Rt statistically close to uniform, rendering V information-theoretically independent of the message state.[1]

Side-channel immunity

[edit ]

All operations are binary dot-products, bit flips, and index sampling with no data-dependent branches. Execution time is invariant to all input values, eliminating timing, cache, and power leakage by construction.

Comparison and limitations

[edit ]

Comparison with ML-KEM

[edit ]
Metric LNQC (512-tier) ML-KEM-768 (FIPS 203)
Hardness assumption LPN fixed-weight Module-LWE
Arithmetic field GF(2) Z q {\displaystyle \mathbb {Z} _{q}} {\displaystyle \mathbb {Z} _{q}} (q = 3329)
Public key size ~257 KB ~1.2 KB
Ciphertext size ~1 MB ~1.1 KB
Side-channel defenses Architectural (binary logic) Requires active masking
Error correction LDPC + Gallager Decoder None required

Limitations

[edit ]
  • Bandwidth efficiency: Public key and ciphertext sizes are orders of magnitude larger than lattice-based alternatives, making LNQC unsuitable for bandwidth-constrained applications like standard TLS handshakes.
  • No worst-case reduction: Unlike LWE, binary LPN lacks a worst-case-to-average-case reduction. Security arguments are based on concrete analysis of known attacks.
  • Deployment state: The scheme currently provides IND-CPA security, with a Fujisaki-Okamoto transform upgrade required to achieve IND-CCA2 compliance.

See also

[edit ]

References

[edit ]
  1. ^ a b c d e Mirqulaja, Sami (2026). LNQC-714: A Constant-Time Post-Quantum Key Encapsulation Mechanism Based on Learning Parity with Noise (Report). Lanit Labs. Project LNQC Technical Report 2026-01.
  2. ^ a b "@lanitlabs/pqc-lnqc714 — Post-Quantum KEM SDK". 1.1.0. npm registry.
  3. ^ Shor, Peter W. (1997). "Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer". SIAM Journal on Computing. 26 (5): 1484–1509. doi:10.1137/S0097539795293172.
  4. ^ National Institute of Standards and Technology (2024). FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM) (Report). U.S. Department of Commerce.
  5. ^ Alekhnovich, Michael (2003). More on average case vs approximation complexity. 44th Annual IEEE Symposium on Foundations of Computer Science. doi:10.1109/SFCS.2003.1238207.
  6. ^ Blum, Avrim; Kalai, Adam; Wasserman, Hal (2003). "Noise-tolerant learning, the parity problem, and the statistical query model". Journal of the ACM. 50 (4): 506–519. doi:10.1145/792538.792543.
  7. ^ Regev, Oded (2009). "On lattices, learning with errors, random linear codes, and cryptography". Journal of the ACM. 56 (6): 1–40. doi:10.1145/1568318.1568324.
  8. ^ Gallager, Robert G. (1962). "Low-density parity-check codes". IRE Transactions on Information Theory. 8 (1): 21–28. Bibcode:1962IRTIT...8...21G. doi:10.1109/TIT.1962.1057683. hdl:1721.1/11804.

AltStyle によって変換されたページ (->オリジナル) /