Unknown Hands at WorkThe book

Explore / The cipher workshop

Make a key.
See what it changes.

A new alphabet, a repeated key, a different order. Put a message through six mechanisms and watch the writing change.

01 / A reversible experiment

Your message, through a cipher.

Change the mechanism or its key. The browser encodes the message, measures the output, then uses the key to recover the normalized input.

This demonstration folds accents and uses A–Z. Spaces, digits and punctuation are removed before encryption. Recovery is checked against that normalized text.

See the normalized message
Computed in your browser

Open the key and recovered message

Recovered with the key

What survived the change?

How often does each unit occur?

Bars show counts for the most frequent 16 output units. The complete counts are in the experiment download.

02 / A small search you can inspect

Twenty-six possible keys.

A Caesar alphabet has 26 shifts. This search tries every one, then ranks the outputs by letter frequencies in a reference text. Read the candidates yourself.

Read the frequency reference

Inspect all 26 candidates

The score is mean natural-log letter likelihood with add-one smoothing. Ranking depends on this reference and sample length; it is not a probability that the text is a language.

03 / Keep the same rule

Does a proposed reading hold together?

Align a cipher fragment with a proposed plaintext. A repeated cipher letter must retain its meaning wherever it occurs. Apply the resulting partial key to another passage.

The dot · marks an unassigned letter. A consistent crib supplies a partial substitution. Evidence for a reading also requires recovery beyond the words used to choose that key.

Now compare with the book

What happened with the manuscript?

Inspect the keys returned by the restricted search, their output, and the controls they had to beat.

Explore the recorded results ↗Compare language samples →
Measurements, sources and reproducibility

H1 measures the observed distribution of individual units. H(next|current) measures uncertainty in the next unit, given the preceding one. Both use plug-in frequency estimates, in bits. IoC is the fraction of ordered pairs of distinct positions carrying the same unit. Small windows give unstable estimates. Here they describe the displayed sample.

Source excerpts come from the frozen computational inputs to the book’s restricted key-search experiment. Each retains its source classification and normalization record. Download the recorded results and source hashes. The browser experiments use this readable implementation.

For substitution, polyalphabetic, homophonic and transposition definitions, see Menezes, van Oorschot and Vanstone, Handbook of Applied Cryptography, §7.3. The verbose two-letter code is a constructed teaching example.

Chapter 10 / Where the Keys Stop

Read the argument in the book.

Return to the chapter Read a sample →
Continue exploringRead the research