https://github.com/systemslibrarian/crypto-lab-ciphertext-mirror
Browser-based demo of three papers on ML-KEM's FO re-encryption check as side-channel oracle: masked comparison leakage (Hermelink 2024/060), imperfect DF-oracles with adaptive LDPC decoding (Guo-Nabokov-Johansson 2026/070), and NTT+CRT RNR blinding that holds under SCA and fault (Duparc-Taha 2025/181). The mirror…
https://github.com/systemslibrarian/crypto-lab-ciphertext-mirror
Last synced: 1 day ago
JSON representation
Browser-based demo of three papers on ML-KEM's FO re-encryption check as side-channel oracle: masked comparison leakage (Hermelink 2024/060), imperfect DF-oracles with adaptive LDPC decoding (Guo-Nabokov-Johansson 2026/070), and NTT+CRT RNR blinding that holds under SCA and fault (Duparc-Taha 2025/181). The mirror…
- Host: GitHub
- URL: https://github.com/systemslibrarian/crypto-lab-ciphertext-mirror
- Owner: systemslibrarian
- License: mit
- Created: 2026-04-21T11:47:36.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-04-21T23:16:16.000Z (about 1 month ago)
- Last Synced: 2026-04-21T23:34:36.321Z (about 1 month ago)
- Language: TypeScript
- Homepage: https://systemslibrarian.github.io/crypto-lab-ciphertext-mirror/
- Size: 76.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# crypto-lab-ciphertext-mirror
## 1. What It Is
This demo is a browser-based educational replay centered on ML-KEM decapsulation behavior, including K-PKE flows and the FO re-encryption comparison path modeled in the code. It illustrates how simulated leakage and oracle behavior can affect key-recovery experiments, and how simulated blinding changes observed outcomes in the same environment. The primitive family is post-quantum public-key cryptography, implemented here as inspectable TypeScript simulation code rather than production cryptographic software. It is intended for mechanism understanding and comparison, not for real-world secure deployment or attack tooling.
## 2. When to Use It
- Use this when teaching ML-KEM attack and defense mechanisms in a controlled browser lab.
It provides deterministic seeded runs and side-by-side visual outputs that make mechanism differences easier to observe.
- Use this when you need to inspect FO comparison and replay logic directly in source code.
The implementation is local TypeScript, so instrumentation points are visible and editable.
- Use this when demonstrating how noise and oracle quality affect recovery trends.
The UI exposes parameters like noise sigma and oracle error/availability so sensitivity can be explored interactively.
- Do not use this as production cryptography or security assurance evidence.
The repository explicitly models synthetic conditions and does not certify security behavior on real hardware.
## 3. Live Demo
https://systemslibrarian.github.io/crypto-lab-ciphertext-mirror/
The live demo lets you open three paper-driven card replays and run simulations directly in the browser. You can change controls such as ML-KEM level, seeded run value, noise sigma, oracle error rate, and oracle availability, then observe the resulting charts and mirror-state visuals. The interface models encapsulation/decapsulation behavior and replay metrics for comparison, but it is not a deployment attack tool.
Replay workflow highlights:
- Selecting `Open replay` highlights the chosen paper and moves focus to a replay workspace with paper title, citation, and scope summary.
- Replay runs expose visible execution state (sampling, confidence estimation, and result preparation) before output is shown.
- Each output includes a structured interpretation layer and an explicit limitation statement, not only raw traces or status labels.
- A compact paper-to-demo mapping is included per replay (`Paper claim`, `This demo models`, `This demo omits`).
- Comparison views are available where applicable: Run A vs Run B in masked comparison and unblinded vs blinded A/B in the blinding replay.
## 4. How to Run Locally
```bash
git clone https://github.com/systemslibrarian/crypto-lab-ciphertext-mirror
cd crypto-lab-ciphertext-mirror
npm install
npm run dev
```
No environment variables are required.
## 5. 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).
### Reality & Limitations
- This repository is a didactic mirror with seeded synthetic leakage and oracle abstractions.
- It does not claim exploit success rates, trace budgets, or break costs on physical devices.
- Paper-specific math and implementation details are summarized at mechanism level, not fully reproduced.
## Why this demo is trustworthy
- Every card includes a paper citation, a simulation mapping, and an explicit omission list.
- The code is inspectable TypeScript with deterministic seeds for reproducible replay behavior.
- The UI intentionally separates evidence from interpretation and from non-claims.
---
*"Whether you eat or drink, or whatever you do, do all to the glory of God." — 1 Corinthians 10:31*