Pattern · Cryptanalysis · a machine that betrayed itself

The Letter It Could Never Be

Enigma could turn any letter into any of the other twenty-five — but never into itself. That was not a bug the Germans overlooked. It was the price of a convenience they loved: one machine, one setting, and the same act both wrote the code and read it. The price was paid in a single word — never itself — and that word is the door the codebreakers walked through.

The machine below is the real Wehrmacht Enigma I, wired to the historical rotors. Its engine is checked offline before it ran here — the published vector, self-reciprocity, no fixed point, the double-step, and the crib-drag, all pass: node research/the-letter-it-could-never-be/verify.mjs.

Ⅰ · The machine

Set it, and type

Three rotors, chosen from five and set in an order; a ring setting and a starting letter on each; and up to ten plug cables swapping letters in pairs. That is the whole key — and there are 158,962,555,217,826,360,000 ways to set it (≈ 1.59 × 1020).1 Type on the keys. A lamp answers, the rightmost rotor clicks round, and the wiring underneath is different for the very next letter.

rotor windows — they move as you type
click a key, or use your keyboard
you type it sends

The current flows in from a key, through the plugboard, right-to-left across the three rotors, hits the reflector and comes back through the rotors by a different route, through the plugboard again, and lights a lamp. That there-and-back is the whole trick of the next two panels.

Wire the plugboard (the Steckerbrett) — click two letters to cable them ▾

0 of 10 cables set — click a letter, then its partner. Click either again to unplug.

Ⅱ · The convenience

To read the code, you retype it

Here is what the German operators loved about it. There is no separate "decrypt" setting. Set two machines the same way; type your message into the first and send the lit letters by radio; the receiver types those letters into an identical machine and the original message lights up. Encoding and decoding are the same act. Below, one machine does both — type a message, then press the button to feed the code back through it from the same start.

(same rotors as above: )
plaintext ciphertext returned

The reason is the reflector. On the way in, some letter — say A — ends up wired to some other, say M. But the reflector's wiring is a set of pairs, so at that same instant M is wired straight back to A. Whatever the code turns A into, it turns that back into A. Push the same lever and the water runs the other way. Convenient. And, as the next panel shows, fatal.

Ⅲ · The price

No letter is ever itself

Look at what "reflected in pairs" forces. If A comes back as M, then M comes back as A — they are a couple. Every one of the twenty-six letters is in exactly one such couple. Twenty-six is even, so the couples close up perfectly: thirteen pairs, nobody left over, and — the thing that matters — nobody paired with themselves. There is no wire from A to A. So when you press A, the lamp that lights is one of the other twenty-five, never A. The diagram is the machine's wiring at this exact rotor position: thirteen strings, not one of them a loop.

Press a letter to trace its couple. The one line that can never be drawn is a letter to itself.

Step the rotors and the couples all reshuffle — but there is still never a self-loop. It is structural, not luck: a reflector with a fixed point is impossible to build as a set of cables.2

A convenience becomes a confession. The operators got one machine for both jobs; in exchange, the machine could never disguise a letter as itself. If you could guess even a scrap of what a message said, that guarantee would let you throw away most of the places your guess could sit — without knowing a single rotor setting. That is the next panel, and it is exactly how the door opened.

Ⅳ · The way in

Break one with your hands

Bletchley Park's first foothold was a crib: a stretch of plaintext they could guess. German operators were creatures of habit — a station would open with WETTERBERICHT (weather report) at the same hour every day, or sign off the same way.3 Below is an intercepted message. You do not know its settings. But you know Enigma cannot turn a letter into itself — so slide the crib along the code, and every position where a letter would sit above its own twin is impossible. Drag, and watch the impossible positions die.

intercept (cipher over guess)
possible

Notice the honest shape of it: the longer the crib, the more positions it kills — a six-letter guess barely dents the field, a twenty-four-letter one leaves a handful. But even a handful is more than one. The crib-drag narrows; it does not solve. What survived here is the list of places the message might begin — and that list is small enough for a machine to grind through. That machine was the Bombe, designed by Alan Turing and Gordon Welchman, building on the earlier reconstruction of Enigma's wiring by the Polish mathematician Marian Rejewski.4 It took each surviving crib position, chained the letter-links into a logical loop, and tested rotor settings at speed — discarding any that produced the one thing Enigma never could: a letter as itself. The wedge you just drove by hand is the first cut the whole edifice was built to widen.

↓ the reveal (after you have dragged)

The check, shown

What is verified, and what is not

Every letter this page lit was produced by the same engine that passes an offline test suite before shipping. You can run it from a bare checkout: node research/the-letter-it-could-never-be/verify.mjs. It asserts:

  1. The published test vector. Rotors I·II·III, reflector B, rings AAA, start AAA, no plugs, encrypting twenty-five A's must give exactly BDZGOWCXLTKSBTMCDLPBMUQOF — the string every Enigma implementation is checked against. It exercises the fast rotor's turnover and the middle rotor's double-step; if either is wrong, it will not match.
  2. Self-reciprocity — over a thousand random keys and messages, encrypt then encrypt-again at the same start returns the plaintext, every time.
  3. No fixed point — across a hundred thousand enciphered letters, exactly zero mapped to themselves.
  4. The double-step anomaly — the middle rotor is shown advancing on two consecutive keypresses (AEW → BFX → BFY → BFZ from start ADV), the mechanical quirk a naive emulator gets wrong.
  5. Crib-drag soundness — the true crib position always survives the drag, and a longer crib strictly eliminates more.

Honest limits. This is the three-rotor Army/Air-Force Enigma I with reflectors B and C and the service rotors I–V — the historical wirings, which are public record. It does not model the four-rotor naval M4, the plugboard Uhr, or the ring-vs-notch subtleties of every variant. And the crib-drag here is the first step only: it eliminates impossible alignments. It does not run the Bombe's full loop-closing solve — that is named above as what came next, not simulated here. The "impossible" you strike out is real; the "possible" that remains is genuinely still a search.

Notes & sources

  1. 1.59 × 10²⁰ settings. The usually-quoted key space for 3-rotor Enigma with a 10-cable plugboard: rotor order (5·4·3 = 60 choices of three rotors in order) × starting positions (26³) × the plugboard with exactly ten cables (26! / (6! · 10! · 2¹⁰) ≈ 1.507 × 10¹⁴) ≈ 1.59 × 10²⁰. Ring settings add further multiples but overlap with position, so are usually folded in. See A. Ray Miller, The Cryptographic Mathematics of Enigma, Center for Cryptologic History, NSA (2001).
  2. Why a reflector cannot fix a letter. The reflector is built from physical cables, each joining two contacts; that makes its permutation an involution (its own inverse) composed only of 2-cycles, with no 1-cycle. A 1-cycle would be a contact wired to itself — an electrical dead-end that reflects nothing. So no letter can be its own reflection, and because the rotors on the return path exactly undo their forward step, no letter can be its own output either.
  3. Cribs and operator habit. Predictable message content — daily weather reports (Wetterbericht), stock openings, and the repeated Heil Hitler sign-off — gave Bletchley reliable cribs. See David Kahn, The Codebreakers (1967), and F. H. Hinsley & Alan Stripp (eds.), Codebreakers: The Inside Story of Bletchley Park (1993).
  4. Rejewski, Turing, Welchman, the Bombe. Marian Rejewski and the Polish Cipher Bureau reconstructed Enigma's internal wiring from 1932 and built the earlier bomba; their work was handed to Britain and France in July 1939. At Bletchley Park, Alan Turing designed the British Bombe and Gordon Welchman added the diagonal board that made it fast. The Bombe exploited exactly the no-letter-is-itself property to reject impossible rotor settings. See Andrew Hodges, Alan Turing: The Enigma (1983), and Marian Rejewski, "How Polish Mathematicians Broke the Enigma Cipher," Annals of the History of Computing 3(3), 1981.

A companion to What the Cipher Couldn't Hide — where a three-century-old cipher fell to a property of the language it hid. Here a machine fell to a property of itself: the very symmetry that made it convenient made it, in one specific way, unable to lie.