Cipher Corpus

Teaching & Overview

Resources for educators, students, and tool builders using the classical cryptanalysis benchmark dataset.

A first codebreaking session

Solve an original library notice in about 15 minutes, then extend the session with Vigenère, language samples and homophonic substitution. Work in pairs and ask each learner to defend a guess with evidence.

Print either sheet with your browser’s Print command, or save it as PDF. No account is required.

What is the Cipher Corpus?

How to Use the Corpus

For Educators

Reading the Evidence offers six short, paper-informed investigations with original examples: key matching, mixed cleartext, transcription errors, recurring symbols, controlled token transformations and concealed-message reliability. Each includes feedback, a source credit and a stated limit.

Reading the Radio Log is a traffic-analysis exercise on an invented two-day radio log. Learners map a network without decrypting anything, match changing callsigns, and keep a headquarters hypothesis apart from what the log shows. Missing intercepts stay visible, and a tempting wrong match has consequences they can see.

For a history-led reading group, the Cipher Museum book companion offers an opening excerpt, discussion questions and a free fictional evidence investigation. The activity needs no account or previous codebreaking experience.

A small repeatable columnar experiment

Compare direct scoring and staged initialization with the existing columnar search. The classroom runner uses four synthetic known-answer messages, three fixed seeds and two variants: 24 runs, including failures. It records exact plaintext and exact key recovery separately, preprocessing and total evaluations, elapsed time, settings and source-file hashes.

In a repository checkout with Node.js, run:

node scripts/columnar-classroom.js > columnar-classroom-results.json
node scripts/columnar-classroom.js --check

Open the classroom worksheet · Inspect the fixed fixtures · Inspect the runner

Keep unsuccessful and preprocessing-exhausted runs in the denominator. Repeated seeds on one message are dependent; these tiny-sample counts are not general recovery probabilities. Equal score-evaluation budgets are not equal CPU time. Exact replay excludes elapsed milliseconds.

Reading: George Lasry, A Methodology for the Cryptanalysis of Classical Ciphers with Search Metaheuristics (2018 published thesis), §4.7, printed pp. 59–60 / PDF pp. 80–81, and §5.3, printed pp. 67–75 and 79–80 / PDF pp. 88–96 and 100–101. This exercise adopts the comparison method, not the thesis’s recovery rates.

For Tool Builders

Engine Accuracy & Provenance

Verification evidence differs by engine. The test suite combines independently published known-answer examples, pinned outputs for explicitly educational models, roundtrip and invalid-input checks, and corpus replay. Passing a model test does not establish historical authenticity.

Where an engine follows a specific historical convention (for example, the Four-square exhibit uses the ACA 25-letter I/J-merged alphabet rather than Wikipedia's Q-omitted example), the exhibit page documents that choice. The test suites are public in the GitHub repository if you want to inspect or re-run them.

Resources

Contact & Feedback

Open an issue on GitHub with questions, suggestions, or contributions.

You can also email systemslibrarian@gmail.com — corrections are especially welcome. If you can point to a source, that is ideal; if something simply looks wrong, say so anyway and it will be checked against the sources.