Changelog

Every update, in order

This site changes often — new modules, new Playground tools, corrections to existing content. Nothing changes silently: every dated entry below corresponds to a real, published commit.

2026-10-28

Sitemap and Contact

  • A new Sitemap page lists every section and page on the site, with each module's quiz and slides, and is linked from the footer
  • A Contact page lets you send us a private message by email. The Terms and the data privacy notes on the About page explain how it's delivered

2026-10-24

Share and flag any page

  • Share, at the bottom of every page, copies the page's link or sends it to X, Bluesky, LinkedIn, Facebook, Reddit, Threads, Hacker News, WhatsApp, Telegram or email. On phones, More apps opens the device's own share sheet
  • Flag opens a pre-filled report for the page you're on, to point out an error or suggest a fix
  • The links at the bottom of the page now have their own colours and small icons

2026-10-24

A touch of colour

  • Each section of the site now has its own colour from the slide-deck palette: its icon in the side navigation, its page titles and section headings
  • Tiles on the home page and the index pages have a coloured frame, and each category on an index page gets its own colour, matching the dot on its filter chip
  • The breadcrumb at the top of the page takes its section's colour too, and shows Home on the home page

2026-10-23

Browse and ask on the site

  • Community has its own Discussions page listing the questions and page discussions, and each thread can be read on the site. The site's server fetches them from GitHub, so reading them doesn't connect your browser to GitHub
  • Ask a question on the site: type your question's title, then post the details through the discussion widget. Reply or react on any thread the same way
  • Claude's first answers are now shorter and more direct

2026-10-23

Questions, discussion and feedback

  • Every Learn, Use Case and Standards page ends with a discussion thread, powered by this site's GitHub Discussions. It loads only when you click Show discussion, and posting needs a GitHub account
  • New questions get a first answer from Claude, an AI model, grounded in the site's own pages and clearly marked as AI-written; people can correct or add to it
  • A Report an error button on each page opens a pre-filled GitHub issue, and a new Community page, linked from the side navigation and the footer, explains how it all works
  • The About page's Data privacy notes and the Terms now cover the discussion widget and the AI answers
  • The discussions and feedback issues live in a separate public GitHub repo, since the site's source code is private. The code is now proprietary, with all rights reserved; the written content stays under CC BY-NC-ND 4.0

2026-10-23

Bookmarks

  • Every Learn module, Use Case, Standards page, Playground tool, Challenge and quiz has a star, on its tile and beside its page title. Click it to bookmark the page; the star fills in, and clicking again removes it
  • A new Bookmarks page, linked from the side navigation, lists everything you've starred grouped by section, where you can unstar pages one at a time, a section at a time, or all at once
  • Bookmarks are saved in this browser only, and are included when you export your progress to another device

2026-10-23

A Profiles page

  • A new Profiles page, linked from the side navigation, presents all seven profiles plus Everyone: who each is for, its first win, and the Learn modules, use cases and standards pages it recommends
  • Each profile shows your overall progress across its pages and a button to make it your profile, the same setting as the Profile menu in the top bar, which now links to the page too

2026-10-23

Terms of Service

  • A new Terms page, linked from the footer, sets out how the site may be used: it's an educational resource provided as is, the Playground tools and sample keys aren't for protecting real data, and the live ANU random bits are a third-party service with no availability guarantee
  • It also covers progress kept in your browser, acceptable use of the Challenges, licensing, and how changes to the terms are announced here
  • The site is operated by privatekeys OU, and the terms are governed by Estonian law

2026-10-23

Pick your profile once, from the top bar

  • A small Profile menu in the top-right corner of every page lets you choose Everyone, Executive, GRC, Developer, Security Architect, IT Ops, Researcher or Curious Explorer
  • Your choice is remembered in this browser and preselects that profile on Learn, Explore, Use Cases, Standards and Quizzes, highlighting the recommended tiles. The View as chips on those pages change the same setting

2026-10-23

Slide decks for every Standards page

  • All eight Standards pages have a slide view: NIST, the IETF, ISO/IEC, OASIS, EMVCo and PCI SSC, FIPS 140-3 and the CMVP, Common Criteria, and ETSI and eIDAS. Every Use Case and Standards page now has a slide deck
  • Drawn as diagrams: NIST's three open competitions and the Dual_EC_DRBG story, the path from Internet-Draft to RFC, why AES has two standard numbers, PKCS#11 vs KMIP, how card-network contracts make PCI compliance mandatory, FIPS 140-3 levels scored area by area, reading EAL4+, and AdES baseline levels from B-B to B-LTA

2026-10-23

Slide decks for the Payments use cases

  • The five Payments use cases have a slide view: PIN block encryption and translation, CVV and CVC, EMV ARQC and ARPC, 3-D Secure and network tokenization, and DUKPT at the point of sale
  • Drawn as diagrams: packing PIN 1234 into an ISO-0 block and binding it to the card number, translation at every hop, the CVV formula, the ARQC and ARPC exchange, how the issuer trusts a 3-D Secure CAVV, and how DUKPT derives a fresh key for every transaction

2026-10-23

Slide decks for the PKI, identity, firmware and data-protection use cases

  • Five more Use Cases have a slide view: running a PKI, federated identity with OAuth2, OIDC and SAML, code signing, secure boot, and format-preserving tokenization
  • Drawn as diagrams: shrinking certificate lifetimes, the OAuth2 code flow with PKCE, an OIDC ID token's claims, timestamped revocation of a signing key, UEFI's PK, KEK, db and dbx, PCR extension, and tokenizing a card number with FF1

2026-10-23

Slide view for Use Cases, starting with Key Management

  • Use Cases and Standards pages can now have a slide deck too, at /use-cases/<slug>/slides and /standards/<slug>/slides, with the same full-screen presenter view, speaker notes and links back to each section as the Learn decks
  • The five Key Management use cases have decks: envelope encryption, key wrapping and key exchange, PKCS#11, key ceremonies and the HSM key hierarchy, and BYOK and HYOK

2026-10-23

Slide decks for the Practice modules

  • The last five Learn modules now have a visual slide view: side-channel and timing attacks, cryptography in blockchains, Shamir's Secret Sharing, Shor's algorithm, and harvest now, decrypt later. Every Learn module now has a slide deck
  • Worked examples become diagrams: cache-timing leaks and constant-time code, a hash chain that breaks when one block is edited, Merkle proof sizes, splitting s = 13 into five shares and rebuilding it from three, what Shor breaks and what it doesn't, and Mosca's theorem

2026-10-23

Slide decks for the Protocols modules

  • Six more Learn modules now have a visual slide view: X.509 certificates and PKI, JSON Web Tokens, passkeys and WebAuthn, SSH, TLS in practice, and end-to-end encrypted messaging
  • Protocols are drawn as diagrams: a certificate chain from leaf to root, CRL versus OCSP stapling, a decoded JWT and the alg=none and key-confusion attacks, the passkey registration and sign-in ceremonies, SSH trust on first use versus SSH CAs, a TLS cipher suite taken apart, and the X3DH key exchange with the Double Ratchet

2026-10-23

Slide decks for the Public-key modules

  • Five more Learn modules now have a visual slide view: RSA, RSA padding (OAEP and PKCS#1 v1.5), elliptic curve cryptography, Diffie-Hellman, and ElGamal
  • Worked examples become diagrams: RSA with p = 61 and q = 53, Fermat factorization, the multiples of G on a toy curve mod 17, Diffie-Hellman with p = 23, small-subgroup confinement, ElGamal encrypting m = 10, and how much fits in one padded RSA block

2026-10-23

Slide decks for the Symmetric modules

  • Five more Learn modules now have a visual slide view: symmetric-key cryptography and AES, DES, stream ciphers and ChaCha20-Poly1305, message authentication codes, and modes of operation and AEAD
  • Worked examples become diagrams: breaking single-byte XOR, AES's round cycle and ShiftRows grid, ECB's repeated blocks next to the encrypted penguin, PKCS#7 padding, the meet-in-the-middle cost of double DES, the CBC-MAC forgery, CMAC's subkeys, and a padding-oracle walk-through

2026-10-23

Slide decks for the Foundations modules

  • Six more Learn modules now have a visual slide view, ready to present full screen: the maths underneath (modular arithmetic), hash functions and signatures, password hashing and KDFs, key sizes and security levels, random number generation, and entropy
  • Worked examples from each module appear as diagrams: Euclid's algorithm, square-and-multiply, quadratic residues, the SHA-256 avalanche effect and padding, salted hashes, the cost of PBKDF2 iterations, the security-level table, Diceware entropy and the von Neumann extractor

2026-10-23

Learn modules get a slide view

  • "The history and purpose of cryptography" now has a 16-slide visual version at /learn/history-and-purpose-of-cryptography/slides, drawn mostly as diagrams: the scytale, a Caesar wheel, Al-Kindi's letter frequencies, Vigenère and Kasiski, Enigma's signal path, the one-time pad, Diffie–Hellman as paint mixing, and the lineage to today's algorithms
  • Present it full screen (F), move with the arrow keys, space or a swipe, jump around from the all-slides grid (G), and open speaker notes (N) with the full explanation and a link back to the matching part of the module
  • Slides use a six-colour palette tuned for both the dark and light themes; the view is built to take a deck for every module

2026-10-22

"View as" profiles on Explore, Use Cases, Standards and Quizzes

  • The profile chips from the Learn page (Executive, GRC, Developer, Architect, IT Ops, Researcher, Curious) now appear on Explore, Use Cases, Standards and Quizzes too: pick one and the pages meant for that role are highlighted and marked "recommended"
  • Every use case and standards page now lists the profiles it's for, including Executive and Curious Explorer picks; quizzes follow the module, use case or standards page they test

2026-10-22

Entropy Testing shows how many quantum requests are left

  • The 'Fetch from ANU QRNG' tab now shows how many of the site's monthly paid ANU requests are left and when the count resets, and updates it after each fetch

2026-10-22

Entropy Testing's live quantum bits move to ANU's keyed API

  • ANU's free legacy QRNG endpoint, which ANU is retiring, had stopped answering, so 'Fetch live bits' now uses ANU's AWS-hosted Quantum Numbers API, capped at 100 requests a month across the whole site
  • Once the month's quota is used up, requests fall back to the free legacy endpoint and the result says so; the cap resets on the 1st (UTC)
  • Clearer errors when the legacy endpoint is throttling, and requests to ANU now give up after 5 seconds instead of 10

2026-10-22

Entropy Testing now runs all ten NIST SP 800-90B estimators

  • The Entropy Testing Playground tool adds the seven remaining non-IID estimators from NIST SP 800-90B: Compression, t-Tuple, Longest Repeated Substring, and the MultiMCW, Lag, MultiMMC and LZ78Y predictors. All ten are ported from NIST's reference code, and unit tests check them against the output of NIST's own compiled tool
  • The overall figure is now the minimum over every estimator that had enough data to run, and estimators that need more bits (Compression from 6,006, MultiMCW from 4,096) are shown as not run instead of being hidden
  • New presets: 10,000 bits from the browser CSPRNG (enough for all ten) and a source with a hidden 37-bit period that the frequency-based estimators miss but the substring and predictor estimators catch; input is capped at 250,000 bits
  • Updated the tool's how-it-works page, the Entropy module, its quiz and the Glossary to match

2026-10-22

A new Standards page: ETSI and eIDAS

  • Added /standards/etsi-eidas under a new 'Regulatory frameworks' category, covering eIDAS (Regulation (EU) No 910/2014) and its 2024 amendment (Regulation (EU) 2024/1183), simple, advanced, and qualified signatures and seals (Articles 25, 26, and 35), qualified trust service providers, audits, and trusted lists, local and remote QSCDs (EN 419211, EN 419221-5, EN 419241-2, Article 29a), a map of the ETSI EN 319 series, the CAdES/XAdES/PAdES/JAdES formats and B-B to B-LTA baseline levels, the EU Digital Identity Wallet and its 2026 and 2027 deadlines, and an advanced section on QWACs and browsers
  • A 10-question quiz, a Library topic 'EU trust services (eIDAS & ETSI)' with twelve references, and eight new Glossary terms (AdES, eIDAS, EUDI Wallet, QES, QSCD, QTSP, QWAC, Trusted list)
  • The Common Criteria page now links to the new page from its EN 419221-5 material, and diagram links to other pages on this site open in the same tab

2026-10-22

Three new Use Cases: code signing, secure boot, and BYOK/HYOK

  • Added /use-cases/code-signing, covering what a signature binds and what it doesn't (Stuxnet, ShadowHammer, SolarWinds), hash-sign-timestamp mechanics, RFC 3161 timestamps and backdated revocation, the CA/Browser Forum's hardware key requirement (June 2023) and 460-day validity cap (March 2026), and an advanced section on Sigstore keyless signing
  • Added /use-cases/secure-boot-chain-of-trust, covering roots of trust, UEFI Secure Boot's PK, KEK, db and dbx, shim, verified vs measured boot with TPM PCRs, rollback and revocation (BootHole, BlackLotus, SBAT, anti-rollback fuses), and an advanced section on PKfail and the 2026 Microsoft Secure Boot certificate rollover
  • Added /use-cases/byok-hyok-cloud-keys, a vendor-neutral walk from provider-managed keys to customer-managed keys, BYOK import (RSA-OAEP and the RSA-OAEP + AES-KWP hybrid), dedicated cloud HSMs, and HYOK external key managers, with what each protects against and what it costs
  • A new 'Software & Firmware Integrity' category on the Use Cases index, an 8-question quiz for each page, a Library topic 'Code signing & secure boot' with eight references plus RFC 5649, five new Glossary terms (BYOK, Code signing, HYOK, Measured boot, Secure Boot), and cross-links from the FIPS 140-3 and Common Criteria standards pages and the Ed25519, RSA-PSS, and AES Key Wrap tools

2026-10-22

A new Payments use case: Key ceremonies and the HSM key hierarchy

  • Added /use-cases/key-ceremony-hsm-key-hierarchy, covering dual control and split knowledge, why keys are split into XOR components rather than halves, key check values for TDES and AES (CMAC), parity, a step-by-step component-loading ceremony, the LMK / ZMK / working-key hierarchy, key separation with variants and TR-31 key blocks, LMK rotation, and an advanced section on threshold sharing and what FIPS 140-3, PCI PTS HSM and Common Criteria check
  • Two interactive diagrams: a key ceremony where custodians enter components and the page shows real component and combined KCVs (TDES via des.ts, AES-CMAC via Web Crypto), and a six-step walkthrough of a payment HSM key hierarchy with real TDES cryptograms, from loading the LMK to importing a partner's ZPK and rotating the LMK. Unit tests check both against Node's crypto module and OpenSSL
  • A 10-question quiz, two new Library references (ISO 11568, PCI PTS HSM) and a broader ANSI X9.24-1 note, five new Glossary terms (Dual control / split knowledge, KCV, Key component, LMK, ZMK), a broader Key ceremony definition, and cross-links from the TR-31 and DUKPT tools and the EMVCo & PCI SSC, FIPS 140-3 and Common Criteria pages

2026-10-22

Move your progress between devices

  • Added /progress, which exports your sections read, quiz scores, solved Challenges, and migration-checklist items as a downloadable file, a copyable code, or a link, and imports them on another browser or device
  • Importing merges rather than overwrites: it adds sections and challenges, keeps the better score for each quiz, and never removes progress that's already there
  • Everything happens in your browser; nothing is uploaded, and a link carries the code after the #, which browsers don't send to the server
  • The Learn, Use Case, and Standards progress cards, the Challenges page, and the footer now link to it

2026-10-22

A new Payments tool and Use Case: DUKPT, TDES and AES

  • Added a Playground tool that derives a PIN pad's initial key from a Base Derivation Key and Key Serial Number, steps the transaction counter the way a device does (skipping counters with too many one bits), and shows every intermediate key and the PIN, MAC, and data working keys, for both TDES DUKPT (ANSI X9.24-1) and AES DUKPT (ANSI X9.24-3:2017, with AES-128/192/256 and TDES working key types)
  • Added the Use Case 'DUKPT: a fresh key for every card payment at the counter', with four practice problems and a 5-question quiz
  • TDES DUKPT runs on the site's from-scratch 3DES; AES DUKPT runs on Web Crypto. Unit tests check both against the X9.24-1:2009 Annex A test data and the X9.24-3:2017 supplement test vectors for AES-128 and AES-256 BDKs, each value first reproduced with a separate Python implementation
  • Three new Glossary terms (BDK, DUKPT, KSN), two X9.24 references and the openemv/dukpt project in the Library, and cross-links with the TR-31 key block tool, whose KS and IK optional blocks carry DUKPT key identifiers

2026-10-22

Three new Playground tools: Ed25519, RSA-PSS, and AES Key Wrap

  • Ed25519 sign & verify: real Ed25519 through Web Crypto, an RFC 8032 test-vector key to load, the signature split into R and S, a 'sign again' check that shows Ed25519 is deterministic, and an S + ℓ malleability attempt that verification rejects
  • RSA-PSS sign & verify: 2048-, 3072-, or 4096-bit keys with SHA-256/384/512 and a chosen salt length, plus an opening of each signature with the public key (EM, H, DB, the recovered salt, and each EMSA-PSS check) so you can see which check fails when the message, signature, key, or salt length is wrong
  • AES Key Wrap (RFC 3394): wrap and unwrap with Web Crypto's AES-KW, a step-by-step table of all 6·n AES operations, and one-click bit-flip and wrong-KEK tests that show the integrity value coming out as something other than A6A6A6A6A6A6A6A6
  • Unit tests check the three new libraries against RFC 8032 §7.1, all six RFC 3394 vectors, and RSA Laboratories' PKCS #1 v2.1 PSS vectors (recovering their published salts), each reproduced with Node's crypto module (OpenSSL) first, plus round trips with OpenSSL
  • Two new Glossary terms (Ed25519, RSA-PSS), RFC 8032 in the Library, and an extended Playground honesty note covering the hand-run displays and Ed25519's browser support

2026-10-22

Format-preserving encryption: an FF1 tool, a Learn section, and a Data Protection use case

  • A new Playground tool, /playground/ff1-format-preserving: real FF1 (NIST SP 800-38G) on Web Crypto's AES, for card numbers (keeping the BIN and last four, with those digits as the tweak), digit strings such as SSNs, lowercase alphanumerics, or any custom alphabet, with all ten Feistel rounds shown and a menu of NIST sample vectors to check against
  • Unit tests run all nine NIST FF1 samples (AES-128, AES-192, and AES-256; radix 10 and 36; with and without a tweak) in both directions, cross-checked against an independent implementation's copy of the vectors
  • The modes module gains a section on format-preserving encryption: how FF1 works, and how FF3 and FF3-1 fell to small-domain attacks and were dropped from the 2025 draft revision of SP 800-38G, with a practice problem and two new quiz questions
  • A new Use Case category, Data Protection, starting with /use-cases/format-preserving-tokenization: vault vs. vaultless tokenization, tokenizing PANs and SSNs with FF1, domain size, Luhn, cycle-walking, and key rotation, with practice problems and a 5-question quiz
  • Four Library references (SP 800-38G, its 2025 Rev. 1 draft, and the FF3 and FF3-1 attack papers) and three Glossary terms (Cycle-walking, FF1, Format-preserving encryption)

2026-10-22

Defenses against five well-known implementation attacks

  • Modes of operation & AEAD: a new section on closing ECB and CBC padding oracles in legacy code (AEAD migration, encrypt-then-MAC ordering, why uniform errors and rate limits aren't enough, CRIME/BREACH), with a 'removes the oracle' vs 'only hides it' comparison
  • RSA padding: a new section on defending against Bleichenbacher-style oracles, covering ROBOT, the 2023 Marvin timing attack, the TLS 1.2 random-premaster countermeasure, implicit rejection, and the move to OAEP and (EC)DHE
  • Elliptic curve cryptography: a new section on RFC 6979 deterministic nonces, hedged signing, EdDSA, and why even slightly biased nonces are exploitable (Minerva, TPM-Fail)
  • Hash functions & signatures: a new section on avoiding length extension (HMAC, KMAC, keyed BLAKE2, truncated SHA-2) with the 2009 Flickr API case
  • Added RFC 6979 to the Library and to the ECC module's further reading

2026-10-22

Two new Standards pages: FIPS 140-3 / CMVP and Common Criteria

  • Added /standards/fips-140-3-cmvp, covering how FIPS 140-3 builds on ISO/IEC 19790 and the SP 800-140 series, the move from FIPS 140-2 (whose certificates went to the Historical list in September 2026), the four security levels and how the overall level is scored, what the lab checks (CAVP algorithms, entropy sources, self-tests, the approved service indicator), how to read a certificate versus 'FIPS compliant' claims, and an advanced section on why validation and patching pull in opposite directions
  • Added /standards/common-criteria, covering ISO/IEC 15408's origins, TOE, Security Target, protection profiles, SFRs and SARs, what an EAL and 'EAL4+ (AVA_VAN.5)' do and don't say, NIAP and collaborative protection profiles, CCRA, SOG-IS and EUCC recognition, a side-by-side comparison with FIPS 140-3 (including EN 419221-5 for eIDAS trust-service HSMs), and an advanced section on CC:2022 and assurance continuity
  • A 10-question quiz for each page, a Library topic 'Product certification (FIPS 140-3 & Common Criteria)' with eleven references, six new Glossary terms (CMVP, Common Criteria, EAL, FIPS 140-3, Protection Profile, Security Target), and cross-links from the NIST and ISO/IEC pages and the HSM Glossary entry
  • The Standards index now uses the same category filter as the other index pages, splitting standards bodies from certification programs

2026-10-22

A new Symmetric-key Learn module: Modes of operation & AEAD

  • Added /learn/block-cipher-modes-and-aead, covering ECB, CBC (IVs, PKCS#7 padding), CTR and the two-time pad, CFB, OFB and XTS, generic composition and the AEAD interface, AES-GCM and its limits, ChaCha20-Poly1305, CCM and nonce-misuse-resistant SIV modes, how to choose a mode and manage nonces, an advanced 'Go deeper' padding-oracle walkthrough, and a 10-question quiz
  • An interactive ECB penguin: an original penguin drawn in the browser and encrypted with real AES (Web Crypto) in ECB, CBC and CTR, with a count of distinct ciphertext blocks under each. Unit tests check the demo's ECB, CBC and CTR against NIST SP 800-38A vectors and Node's crypto module
  • Every worked example uses a published test vector (SP 800-38A, the GCM specification's test case 2, RFC 8439 and SP 800-38C), each reproduced with Node's crypto module, and with OpenSSL where its command line supports the mode
  • Learn pages now show the code samples their sections define; they were defined in the MACs module but not rendered
  • A new Compare table for AEAD ciphers, a Library topic 'Block cipher modes & authenticated encryption' with seven references, four new Glossary terms (CTR, ECB, Padding oracle attack, XTS), and cross-links from the AES and MACs modules, the NIST and IETF standards pages, and the self-assessment

2026-10-22

A new Symmetric-key Learn module: Message authentication codes

  • Added /learn/message-authentication-codes, covering HMAC, CBC-MAC and its variable-length forgery, CMAC, GMAC, and Poly1305, with a side-by-side comparison, a section on verifying tags safely, an advanced 'Go deeper' section on deriving CMAC subkeys by hand, and a 10-question quiz
  • Every worked example uses a published test vector (RFC 4231, RFC 4493, the GCM specification's first test case, and RFC 8439), each reproduced with Node's crypto module and OpenSSL before going on the page
  • Added a Library topic 'Message authentication (MACs)' with five new references, four new Glossary terms (CBC-MAC, CMAC, GMAC, Poly1305), and cross-links from the hash functions module, the HMAC Playground tool, the NIST and IETF standards pages, and the self-assessment

2026-10-22

A new Payments tool: TR-31 / X9.143 key block builder & parser

  • Added a Playground tool that wraps a key in a real TR-31 key block (versions A, B, C, and D), shows the derived encryption and MAC keys, the KDF inputs, the clear payload, and the MAC, then parses any key block back field by field and verifies its MAC
  • A one-click 'relabel key usage' attack rewrites the header of a key block without touching the encrypted key, so you can watch the MAC reject the swap, the key-separation property key blocks exist to provide
  • Versions A–C run on the site's from-scratch 3DES; version D runs AES on Web Crypto. Unit tests check all four versions against 18 third-party known-answer key blocks, unwrapping each to its published key and rebuilding each byte for byte
  • Added a TR-31 / ANSI X9.143 Glossary entry and extended the Playground honesty note to cover the new tool

2026-10-22

CVV, entropy, and tokenization fixes found by new unit tests

  • The CVV/CVC calculator now follows the published algorithm exactly and reproduces the standard test vector (PAN 4123456789012345, expiry 8701, service code 101 → CVV 561). Three things were off before: the second block was padded with F instead of 0, the first block was encrypted with 3DES instead of single DES under CVK A, and decimalization folded A–F in place instead of taking the digits first. Its how-it-works page shows the corrected code
  • The Entropy Testing tool's Collision estimate now counts a matching pair in the last two bits, as NIST's reference implementation does
  • The Markov estimate no longer drops to 0 whenever one bit-to-bit transition never occurs: like NIST's reference, it skips only the patterns that need that transition. A sequence where every 1 is isolated now scores about 0.6 bits per bit instead of 0
  • The tokenization demo no longer hands two merchants the same token when their Token Requestor IDs differ only in the last character
  • The site now has unit tests for its DES/3DES core, entropy estimators, and payments calculators, run in CI against published NIST, ISO, and Visa test vectors

2026-10-22

About page and footer corrected to match the Playground honesty note

  • The footer and About page said every Playground tool was 'nothing simulated, nothing sent to a server'. That stopped being exactly true once the CAVV and network-token tools (labeled illustrative, since no card network has published those algorithms) and the Entropy Testing tool's live fetch from the ANU Quantum Random Numbers Server arrived. Both now describe the same tiers as the Playground index page
  • The About page's privacy section now describes the /api/qrandom route and what it sends to ANU (only the number of bits requested), instead of calling the site a static site with no backend
  • The SBOM summary now reports 0 known vulnerabilities in production dependencies as of 2026-10-22, notes the dev-only advisories that have no upstream fix, and describes the current CI checks

2026-10-01

A new Foundations Learn module: Entropy

  • Added a new Foundations Learn module, Entropy: measuring, estimating, and testing true randomness — min-entropy vs. Shannon entropy, how NIST SP 800-90B actually tests an entropy source, true random number generators and why their raw output still needs conditioning, /dev/random vs. /dev/urandom and boot-time entropy starvation, and measuring Diceware passphrase strength — with 2 practice problems, an advanced deep-dive section, and a 10-question quiz
  • Linked the Entropy Testing Playground tool to this new module instead of Random Number Generation, now that there's a module focused specifically on entropy measurement
  • Added a Randomness & entropy section to the Library: NIST SP 800-90B, NIST SP 800-90A Rev. 1, the “Mining Your Ps and Qs” weak-keys paper, and the ANU Quantum Random Numbers Server
  • Added 4 new Glossary terms — Diceware, Min-entropy, NIST SP 800-90B, and TRNG — and expanded the existing Entropy definition to mention min-entropy
  • The Navigate graph, sitemap, site-wide search, and the Assess checklist all picked up the new module automatically, since each is generated directly from the module catalog

2026-10-01

Entropy Testing Playground tool: manual entry vs. live quantum-random

  • Added an Entropy Testing Playground tool: type in a bit string by hand, or fetch live bits from the ANU Quantum Random Numbers Server, and see Shannon entropy alongside three real NIST SP 800-90B non-IID min-entropy estimators — Most Common Value, Collision, and Markov — ported directly from NIST's own reference implementation
  • Added the site's first API route (/api/qrandom) to proxy the ANU QRNG service server-side, since it sends no CORS headers and a direct browser call is rejected outright
  • Extended the Playground index page's honesty note to flag this tool's two distinct caveats: a live third-party network dependency, and a partial (3 of 10) implementation of NIST SP 800-90B's non-IID estimator suite

2026-10-01

3DS/tokenization tools, and Standards/Glossary/Library/Changelog catch-up

  • Added two more Payments Playground tools: a 3DS message flow & JWS signing simulator (a real EMV 3DS 2.x AReq/ARes exchange, signed with genuine ECDSA via Web Crypto) and a network tokenization tool (domain-bound token generation, a simulated token vault, and a rejection demo for a cross-merchant token replay)
  • Added an illustrative CAVV generator, explicitly banner-labeled as a representative construction rather than a real algorithm, since no card network has ever published its actual CAVV method
  • Tightened the Playground index page's honesty note into three explicit tiers: tools using real Web Crypto, tools implementing real published standards on the from-scratch 3DES core, and the two tools (CAVV, token cryptogram) flagged as illustrative because no public algorithm exists
  • Added a new Standards page entry for EMVCo & PCI SSC — how chip, 3DS, and tokenization specs actually get made, why CAVV generation is deliberately left unpublished, and how PCI DSS/PIN Security compliance is enforced through card-network contracts rather than government law — plus a 10-question quiz
  • Added 13 new Glossary terms covering the Payments chapter: ARQC/ARPC, CAVV, CVV/CVC, EMVCo, ICC Master Key, ISO 9564, the Luhn algorithm, network tokenization, PAN, PCI DSS, PIN block, Token Requestor ID, and TPK/ZPK
  • Added a Payments & card security section to the Library: ISO 9564-1, the EMV Book 1–4 and 3-D Secure specifications, the EMVCo tokenisation specification, PCI DSS, PCI PIN Security Requirements, and FIPS 46-3 (DES)

2026-09-30

Playground “under the hood” completed, and a full Payments chapter

  • Finished adding real Web Crypto commands to every remaining Playground tool's how-it-works page — AES-GCM, SHA-256, HMAC, RSA-OAEP, ECDSA, ECDH, TLS key schedule, JWT, PBKDF2, envelope encryption, certificate chain builder, certificate revocation, PKCS#11 session, and X3DH — so all 14 original tools now show the actual API calls behind each step, not just prose
  • Added a live dual-console protocol log (client/server message trace) to the TLS key schedule tool
  • Added Subject/Authority Key ID (SKI/AKI) and whole-certificate fingerprint detail, with a chain-match indicator, to both the certificate chain builder and certificate revocation tools
  • Made how-it-works code blocks horizontally resizable and widened their default width for legibility
  • Shipped a new Payments use-case category with four pages: PIN block encryption & translation, CVV/CVC generation & verification, EMV ARQC/ARPC card authentication, and 3-D Secure/tokenization — each with practice problems and a 5-question quiz
  • Built a from-scratch, FIPS-46-verified DES/3DES implementation (src/lib/des.ts) specifically because Web Crypto has no DES/3DES support, and three Payments Playground tools on top of it: a PIN block builder & translator, a CVV/CVC calculator, and an EMV ARQC/ARPC simulator
  • Updated the Playground index page and site footer to flag the Payments tools' one real exception to “nothing simulated” honestly, rather than leaving the old blanket Web Crypto claim standing

2026-09-25

Challenges, site-wide search, and a new Use Cases section

  • Added a new Standards section covering the standardization bodies themselves — NIST, the IETF, ISO/IEC, and OASIS — how each actually works, what it's published, and a real reference for every claim; includes diagrams, practice problems, and a 10-question quiz per body (no Playground, by design)
  • Added a Quizzes page listing every knowledge check on the site in one place, linked from the left navigation; fixed Use Case pages missing a "Try it yourself" link to their related Playground tool, and filled in Use Cases, Challenges, and their quizzes on the sitemap
  • Added a PKCS use case: an overview of the PKCS standards family plus an in-depth look at PKCS#11 (Cryptoki) — object attributes, the wrap-then-decrypt API attack, a real-key Playground tool, and a hands-on Challenges puzzle exploiting the same attack
  • Launched a Challenges section: 16 hands-on CTF-style puzzles across Warm-up, Classical Ciphers, Symmetric-key, RSA, and Diffie-Hellman/ECC, each checked entirely in the browser with hints, a points total, and local-only progress tracking
  • Added a site-wide search: a ⌘K/Ctrl+K command palette indexing every module, use case, playground tool, glossary term, and now challenge
  • Fixed the Navigate graph erroring with "This page couldn't load" when panning on Chrome, Firefox, and Edge — a browser swipe-navigation gesture conflict
  • Added a link to About in the left navigation
  • Added three real-cryptography Playground tools: a TLS key schedule walkthrough, KMS envelope encryption, and certificate revocation checking
  • Expanded the TLS and JWT Learn modules with session resumption, 0-RTT trade-offs, SNI/ECH, revocation and refresh tokens, JWKS, and the "alg: none" attack
  • Added a new top-level Use Cases section covering KMS envelope encryption, key wrapping & exchange, PKI in production, and federated identity (OAuth2/OIDC/SAML) — each with a 10-question quiz

2026-09-24

Breadth, new sections, and a full quiz bank

  • Added a Disclaimer, Data Privacy section, Software Bill of Materials, dual MIT/CC BY-NC-ND license, a curated Further Reading list, and this Changelog to the About page
  • Added a CI workflow that lints, builds, and audits dependencies on every push
  • Expanded every module's knowledge check from 3 to 10 questions — 210 questions total
  • Added an About page and a manual light/dark theme toggle
  • Added a breadcrumb navigation banner, a References page, and a "Navigate" force-directed knowledge graph
  • Dropped the "MVP build" label; added a sitemap, robots.txt, a dynamic OG image, and Vercel Analytics
  • Added the first knowledge-check quiz bank (3 questions per module)
  • Added Glossary, Compare, and Migration Checklist sections
  • Added illustrated diagrams for hash chains, blockchain hash-chains, certificate chains, and X3DH/Double Ratchet
  • Added three new Playground tools: PBKDF2, a certificate chain builder, and an X3DH simulator
  • Added a History & Purpose of Cryptography module and substantially expanded the math foundations module

2026-09-23

The Playground, and illustrated diagrams everywhere

  • Replaced schematic SVG diagrams with true illustrated ones (GCM, OAEP, cipher wheel, modular clock, timeline, swimlane, pipeline)
  • Added a "how it works" sister page to every Playground tool, with real formulas and diagrams
  • Added wrong-key demonstrations to the RSA-OAEP, ECDSA, and ECDH Playground tools
  • Launched the Playground — real cryptography running in the browser via the Web Crypto API
  • Fixed the elliptic-curve point-addition diagram twice over, rebuilding it on a real curve with numerically verified coordinates after it didn't actually pass through Q
  • Tripled the depth of the core protocol modules (RSA, ECC, AES, hashing, TLS, etc.)
  • Added formulas and diagrams across all 20 Learn modules
  • Replaced the top navigation with a collapsible left sidebar

2026-09-22

Launch

  • Redesigned Explore as a categorized glossary
  • Expanded the catalog to 20 modules and shipped the Assess quiz
  • Shipped the MVP: a persona picker and 8 content modules

Written from this project's own git history.