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.
— 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:
Invalid: cipher W = W.
Offset 4 (no clash in the first 7 positions — valid candidate):
✓ 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
Paste the ciphertext
Copy the full encrypted message from the Enigma page and paste it into the top textarea on the Crib page.
Type the guessed plaintext (crib)
Enter the word or phrase you believe appears in the message — for example WETTERVORHERSAGE. Spaces are removed automatically.
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.
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.