A full-spectrum, browser-based cryptography laboratory covering modern, classical, and post-quantum systems.
-
Updated
Sep 10, 2026 - JavaScript
A full-spectrum, browser-based cryptography laboratory covering modern, classical, and post-quantum systems.
Zero-dependency static web app implementing the SpemCode substitution cipher: real-time bidirectional encoding, clipboard integration, responsive UI.
Strumento standalone, a singolo file HTML per estrarre entropia crittografica da una sorgente grezza unica (dump audio RAW/PCM, video, dump di un TRNG hardware, csv), analizzandola in 4 finestre (Primaria / Mediana / Terminale / Spettro Totale) e selezionando automaticamente quella migliore e statisticamente indipendente.
Strumento didattico standalone, offline, senza dipendenze esterne per sperimentare un pipeline completo di entropy conditioning: raccolta di bit grezzi → stima di min-entropia (in stile NIST SP 800-90B) → estrazione del bias (Peres/von Neumann Extractor) → hashing universale (Toeplitz, GF(2), con bound del Leftover Hash Lemma) → output finale
Browser-based Merkle tree and inclusion proof demo — build trees up to 16 leaves with real SHA-256, generate O(log n) membership proofs, tamper any leaf and watch the root change, with Git, Bitcoin, and Certificate Transparency walkthroughs. Part of crypto-lab.
Browser-based SHA-256 vs SHA3-256 vs BLAKE3 internals — live avalanche analysis, Merkle-Damgård/sponge/tree construction diagrams, and timing benchmarks. Part of crypto-lab.
Browser demo: real Ed25519, HMAC, and X.509 verification driven by a movable clock — showing which security decisions silently depend on an input cryptography cannot authenticate.
Browser-based 2-server XOR Private Information Retrieval (Chor et al. 1995) — a patron retrieves any book from a 16-item catalog without the server learning which one was requested. Real IT-PIR arithmetic, step-by-step query walkthrough, and privacy audit panel. Part of crypto-lab.
Card-based secure computation: two players compute the AND of their secret bits with five playing cards — information-theoretic security from a uniform cut, den Boer 1989
Browser demo for ML-KEM (CRYSTALS-Kyber), the post-quantum key encapsulation mechanism standardized as NIST FIPS 203 in August 2024.
Browser demo of approximate-hint LWE secret recovery on sparse ternary secrets. Computes hint counts; runs no attack. ePrint 2026/1081.
Browser demo: real Ed25519 signatures over JSON — showing that a signature binds an exact byte string, never the meaning a parser recovers from it.
Browser-based lattice cryptography primer — Menezes, eprint 2026/1098. Drag a basis to feel good vs bad, step LLL until the short vectors surface, then watch LWE and SIS become the same problem ML-KEM and ML-DSA stand on. Real F_q arithmetic. No backend.
RSA accumulator: a constant-size digest over a dynamic set, with membership and non-membership proofs — certificate revocation without downloading a list.
An educational, from-scratch Rust implementation of Multi-Party Computation (MPC), MPC-in-the-Head ZKPs, and Shamir secret sharing with an interactive CLI.
Browser-based BLS12-381 pairing cryptography — bilinear pairing explainer, BLS signature sign/verify with real @noble/curves arithmetic, signature aggregation visualizer (up to 100 signers → 1 proof), and rogue key attack demo. Powers Ethereum 2.0 and Zcash. Part of crypto-lab.
Browser demo: a real X.509 hierarchy you validate by hand — showing that finding a chain and validating a chain are two different problems, and only one of them is about signatures.
Browser-based AES-GCM vs AES-GCM-SIV comparison — live nonce reuse attack showing keystream XOR recovery and GHASH key extraction, synthetic IV construction visualizer, and side-by-side misuse-resistance comparison. RFC 8452. Part of crypto-lab.
Differential privacy: exact Laplace and Gaussian mechanisms over a toy payroll, with a fail-closed epsilon budget ledger.
Browser demo: one nonce reused under one key across CTR, AES-GCM, ChaCha20-Poly1305, and CBC — four constructions, four different catastrophes, none graceful.
To associate your repository with the cryptography-education topic, visit your repo's landing page and select "manage topics."