Step 2 of 4

What is a Crib?

A crib is a guessed piece of plaintext. Knowing what a message likely says — and what letters can't encrypt to themselves — is enough to narrow 158 quintillion possibilities to a handful.

The Intelligence Problem

You have the intercepted ciphertext. But you have no key. The number of possible Enigma configurations is:

158 962 555 217 826 360 000

possible settings (~159 quintillion)

Testing one per second would take 5 billion years. Even with a room full of machines, brute force was impossible. The codebreakers needed a shortcut.

"We cannot rely on luck. We must exploit what we know — and what we know is that the Germans are creatures of habit."
— paraphrase of Bletchley Park analyst thinking

Known-Plaintext Attack

A crib is a fragment of plaintext you believe appears somewhere in the ciphertext. You know:

The ciphertext

intercepted from radio traffic

Guessed plaintext

a word or phrase likely in the message

Unknown: the key

the rotor settings that produced it

This is a known-plaintext attack. You know one end (plaintext) and the other (ciphertext) — you just don't know how they're connected. The crib gives the Bombe a set of input–output relationships to test against every possible key.

Where Cribs Came From

Bletchley Park exploited German military habits and message structure to predict plaintext:

Formulaic Phrases

  • WETTERVORHERSAGE — weather forecast sent every day at 06:00
  • KEINEBESONDERENEREIGNISSE — "nothing to report", extremely common
  • HEIL HITLER — signed off many messages

Structural Predictability

  • Call signs and timestamps were at fixed positions in headers
  • Kenngruppen (indicator groups) followed a known format
  • Traffic analysis: same-time messages on the same network likely used the same template

Previously Broken Traffic

Once an operator's habits were known, future messages could be predicted. An operator who sent "AAAAAA" as his message key twice was nicknamed "Cillis" — his laziness provided reliable cribs for months.

The No-Self-Encrypt Rule

Because Enigma's reflector never maps a letter to itself, you can immediately discard any crib alignment where a plaintext letter equals the ciphertext letter at the same position:

Example: crib WEATHER slid under ciphertext QFZWRWIVTYRESXBF…

Offset 0:

W
R
W
I
V
T
Y
W
E
T
T
E
R
V

Invalid: cipher W = W.

Offset 4 (no clash in the first 7 positions — valid candidate):

R
W
I
V
T
Y
R
W
E
T
T
E
R
V

✓ Valid — no position has ciphertext letter = plaintext letter. This offset is a candidate for the Bombe.

Choosing a Good Crib

✓ Good crib properties

  • Longer is better — more letter pairs means more connections in the menu, more loops, and more opportunity for contradictions.
  • Repeated letters help — creates cycles (loops) in the menu graph, which are essential for the Bombe to work efficiently.
  • Known, predictable phrases — not guesswork; based on message structure or traffic analysis.

✗ Avoid these

  • Very short cribs — fewer than ~8–10 characters rarely produce loops in the menu.
  • All-unique letters — no repeated letters = no loops = the Bombe must test far more positions as false stops.
  • Cribs spanning a rotor turnover — the stepping anomaly can make certain connections model the wrong rotor position.

Crib Tool Walkthrough

1

Paste the ciphertext

Copy the full encrypted message from the Enigma page and paste it into the top textarea on the Crib page.

2

Type the guessed plaintext (crib)

Enter the word or phrase you believe appears in the message — for example WETTERVORHERSAGE. Spaces are removed automatically.

3

Click Generate

The app slides the crib under the ciphertext at every possible offset. Match cards appear for each valid alignment (no self-encryptions). Each card shows the offset and all letter pairs.

4

Pick the best card

Choose the alignment with the most connections and ideally some repeated letters (which create loops). Click the "Generate Menu" button to load its data into the Menu page.

Next: Crib tool →