Cipher Corpus
The corrected v0.8 corpus has 100,313 records for learning, testing, and benchmarking classical cryptanalysis.
Each record includes cipher type, key, plaintext, difficulty, language, and expected attacks. The on-page browser samples v0.8: use Challenge Mode to attempt a solve, or switch to Known Answers to study the metadata. Each card states its pair verification and provenance status; a verified computation does not authenticate a historical source.
The separately published v0.6 archive has 100,326 records. Of these, 99,800 replayed with museum engines and 526 noisy or historical-variant records had documented exceptions. Dataset scope and conventions.
Published archive: Zenodo v0.6 · DOI 10.5281/zenodo.23297920. The archive preserves canonical JSONL plus 11 supporting files; the website also provides derived JSON, CSV, subsets, and browser samples.
Browse the Corpus
104 examples drawn from the v0.8 download. A reproducing pair is not proof that its historical attribution is authentic; check the status on each card.
Challenge Mode hides the solution — attempt a ciphertext-only solve. Switch to Known Answers to see plaintext, key, and expected attacks.
Download Corpus
Choose the corrected full dataset or the published v0.6 archive and its derived formats. Synthetic records are CC0; review historical records' per-record provenance and rights before reuse.
Corrected full corpus · v0.8
Download all 100,313 canonical records as compressed JSONL. This build applies the American Cryptogram Association Two-square rectangle rule to the 1,072 affected examples, flags five unsupported source citations, and retains the v0.7 historical-pair and metadata corrections. Those citation fixes do not authenticate a historical pair. The old files and their checksums remain unchanged.
Download v0.8 JSONL (.gz) Checksums v0.8 schema Corrected historical supplement (87) Corrected 3-shot evaluation (300) Supplement checksumsThe historical supplement contains 42 entries from canonical v0.8 and 45 additional entries that remain unverified and excluded from benchmarks. It omits 13 records withheld pending source review. The citation review fixes misdirected links and marks unsupported or inaccessible source claims. Museum engines reproduce 42 of the 45 additional pairs; three do not. Neither result authenticates an original cryptogram.
The evaluation export corrects three Two-square prompts and 62 misleading keyless prompts. All 300 prompt records and their 1,200 pair uses were checked against canonical v0.8 and current engines. Read the review limits and verification notes.
Unzip with gunzip -k all.jsonl.gz. Read the correction notes and verification instructions before benchmarking. v0.8 is available here but has no Zenodo DOI; the citation below identifies the published v0.6 archive only.
Published v0.6 downloads
For Learners & Builders
Learners & Educators
Practice identifying cipher types, applying attack methods, and measuring how text length, spacing, language, and key choice affect solvability.
- Break a Caesar cipher by brute force
- Estimate Vigenère key length by index of coincidence
- Use Kasiski examination on repeated patterns
- Compare transposition with substitution
- Measure how spacing removal changes difficulty
Tool Builders & Researchers
Machine-readable known-plaintext/ciphertext pairs for testing solvers, cryptanalysis tools, and LLM evaluation workflows.
import json
with open("all.jsonl", "r", encoding="utf-8") as f:
for line in f:
rec = json.loads(line)
print(rec["id"], rec["cipher_type"])
Do not train and evaluate on the same split when measuring model performance.
Attribution & Citation
CipherBank (Li et al., 2025) is a research benchmark studying LLM performance on cryptographic decryption tasks. Its reported results depend on model, prompt, algorithm and metric; they are not a measured accuracy result for this museum’s corpus or solvers.
The corrected v0.8 corpus contains 100,313 records across 85 cipher types, including 41 historically themed entries and 7 languages. The published v0.6 archive has 100,326 records, 54 historically themed entries, and 9 languages. Its legacy verified field is not a claim that each historical pair is an authenticated source transcription; see the v0.6 errata. CipherBank (Li et al., 2025) has 2,358 cases across 9 types; the collections use different records and evaluation methods. CipherBank paper →
@dataset{clark_2026_23297920,
author={Clark, Paul A.},
title={Cipher Corpus v0.6: A Classical Cryptography Dataset},
month={oct},
year={2026},
publisher={Zenodo},
version={0.6},
doi={10.5281/zenodo.23297920},
url={https://doi.org/10.5281/zenodo.23297920}
}