https://github.com/systemslibrarian/crypto-lab-lll-break
Browser-based LLL and BKZ lattice reduction demo — Gram-Schmidt orthogonalization, Lovász condition, step-by-step basis reduction animation, toy LWE primal attack, parameter explorer showing why Kyber's n=256 q=3329 survives while toy parameters fail instantly. The hardness assumption, made tangible. No backends. No simulated math.
https://github.com/systemslibrarian/crypto-lab-lll-break
bkz browser-demo crypto-lab cryptography gram-schmidt lattice-cryptography lattice-reduction learning-with-errors lll-algorithm post-quantum svp
Last synced: 14 days ago
JSON representation
Browser-based LLL and BKZ lattice reduction demo — Gram-Schmidt orthogonalization, Lovász condition, step-by-step basis reduction animation, toy LWE primal attack, parameter explorer showing why Kyber's n=256 q=3329 survives while toy parameters fail instantly. The hardness assumption, made tangible. No backends. No simulated math.
- Host: GitHub
- URL: https://github.com/systemslibrarian/crypto-lab-lll-break
- Owner: systemslibrarian
- Created: 2026-04-18T09:57:57.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-18T10:44:42.000Z (about 2 months ago)
- Last Synced: 2026-04-18T12:24:11.450Z (about 2 months ago)
- Topics: bkz, browser-demo, crypto-lab, cryptography, gram-schmidt, lattice-cryptography, lattice-reduction, learning-with-errors, lll-algorithm, post-quantum, svp
- Language: TypeScript
- Homepage: https://systemslibrarian.github.io/crypto-lab-lll-break/
- Size: 146 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## What It Is
This demo shows LLL lattice reduction and toy BKZ reduction on Learning With Errors (LWE) embeddings in the browser. It focuses on the attacker workflow: reduce a basis, search for short vectors, and test whether secret recovery is possible at a chosen parameter set. The core problem illustrated is how SVP-approximation quality affects practical LWE attacks. This is a post-quantum cryptography educational model, not a production cryptanalytic tool and not evidence that LLL breaks real Kyber parameters.
## When to Use It
- Teaching why post-quantum parameters matter in lattice cryptography. This demo makes the relationship between dimension, modulus, noise, and attack feasibility visible.
- Explaining LLL and BKZ mechanics to students or engineers. Step traces and block-improvement logs show what each reduction phase actually changes.
- Comparing toy insecure settings against Kyber-like settings. The same pipeline can be run at small and large parameters to show where attacks stop being effective.
- Demonstrating how primal LWE embeddings are constructed. The matrix and reduction output are shown directly so learners can inspect the attack surface.
- Not for real-world security assessment. This browser implementation is intentionally simplified and does not replace specialized lattice estimators or high-performance reduction libraries.
## Live Demo
https://systemslibrarian.github.io/crypto-lab-lll-break/
The live app lets you step through LLL, inspect Gram-Schmidt/Lovasz behavior, generate toy LWE instances, and run LLL/BKZ-based recovery attempts. It does not perform encryption/decryption; it demonstrates reduction-and-recovery attack dynamics for educational analysis. Controls include lattice dimension presets, delta, LWE parameters (`n`, `q`, `sigma`), and BKZ block size (`beta`).
## How to Run Locally
```bash
git clone https://github.com/systemslibrarian/crypto-lab-lll-break
cd crypto-lab-lll-break
npm install
npm run dev
```
No environment variables are required.
## Part of the Crypto-Lab Suite
One of 60+ live browser demos at [systemslibrarian.github.io/crypto-lab](https://systemslibrarian.github.io/crypto-lab/) — spanning Atbash (600 BCE) through NIST FIPS 203/204/205 (2024).
---
*"Whether you eat or drink, or whatever you do, do all to the glory of God." — 1 Corinthians 10:31*