Classical cryptography · Public workbook

Substitution & shift cipher workbook

Compare frequencies, test a hypothesis, and keep your own analysis in one place.

Ciphertext input

Default ciphertext loaded and analyzed. Paste your own text to analyze another message.

Ciphertext → plaintext

Use the floating substitution panel to test letters. Unknown letters appear as _. Hover over a boxed plaintext word to highlight its ciphertext.

Green = all letters filled, unverified

Ciphertext

Partial plaintext

Words are runs of A–Z letters; spaces and punctuation separate words. Counts include repeated occurrences. Each percentage uses its own table’s total, including rows outside the displayed top results.

Ciphertext & English comparisons

Compare your patterns with Norvig’s English corpus analysis. Each pair is ranked independently by frequency; matching rows do not imply a substitution. Expected counts scale English rates to your sample. Green rows = all letters filled, unverified

Sources & calculation details

The English reference rates use the linked Norvig word counts. They are comparison aids, not a substitution key or a prediction of the correct plaintext. No automatic substitutions are made.

Underlying word counts · Reference data is bundled locally; this page makes no network requests.

Overall letter sequences · includes windows across word boundaries

These match the original script’s method: remove all spaces and punctuation, then count overlapping windows.

Analysis runs in your browser; ciphertext and guesses are not uploaded by this tool. Use Analyze text after editing, then export mappings to download the analyzed ciphertext and guesses. Mappings are saved in this browser for this ciphertext when local storage is available. Export a copy to keep your mappings portable. Implementation & limitations.