The Turing Bombe

What it was and how it worked

It is an old maxim of mine that when you have
excluded the impossible,
whatever remains, however improbable, must be the truth.

Sir Arthur Conan Doyle. The Beryl Coronet.

4. How the Bombe Worked

When the bombe was set in motion the drums in the upper row of
each of the three batteries rotated in precise synchrony at 120 rpm. When they
had completed one revolution the middle row of drums in each battery rotated
to the next position. That is, they rotated 1/26 of one revolution, and when
they had rotated through one revolution the lower row of drums rotated to the
next position. This continued until either the bombe detected a 'stop' or until
the drums had returned to their original positions.

A stop is a setting where the transformations determined by the
rotor order, rotor position, and some stecker swapping are consistent with the
transformations that yielded the ciphertext from the crib. But how did the bombe
detect when the consistency conditions had been met? In other words, how did
it know when to stop?

A test register was connected to one of the cables, typically
the cable representing the letter that appeared most frequently in the menu,
so that each of the 26 wires in the cable led into and out of the test register.
Each wire was in one of two states which we shall call live and dead, and the
register was capable of distinguishing how many of its wires were live.

When the bombe was started it applied a voltage to an arbitrary
wire in the test register's cable, say the a wire in the E cable,
to represent the hypothesis that A is steckered to E and E is steckered to A.
Every wire connected to the a wire in the E cable and the e wire
in the A cable would immediately become live, but suppose that another
wire in the E cable, for example the h wire, becomes live. This
represents the hypothesis that H is steckered to E and E is steckered to H.
But E cannot be steckered to both A and H so we have arrived at a contradiction
and we know that this rotor order, with this rotor position and the hypothesis
that A is steckered to E is false.

Do we now need to apply a voltage to the b wire in the
E cable to test the hypothesis that B is steckered to E and E is steckered
to B? We do not.

Having applied the current to the a wire in the E
cable and therefore the e wire in the A cable and having had the
current return to the h wire in the E cable and therefore the
e wire in the H cable, we note that the current will pass through
any scrambler connected to the A, E and H cables to wires
in other cables which will not generally be the wires already energised in the
A, E and H cables. Thus as the current flashes through
the cryptanalytical circuitry of the bombe feeding back into cables and scramblers,
more and more wires become live until, with a good menu, the feedback will almost
always make all the wires in the test register live. There are two notable exceptions.

Figure 4.1 Simplified Bombe with 25 Live
Wires in the Test Register

Suppose that the rotors are in the correct position but that the
hypothesis being tested is false.

For example, suppose that the rotor order and position is correct
and that the false hypothesis that E is steckered to A is being tested. This
situation is shown in Figure 4.1 in which the thick black lines indicate those
wires which are live after a voltage has been applied to the a wire in
the E cable.

In this case the wires representing the true hypotheses are not
connected to the wires representing the false hypotheses. But, for the reason
discussed above, the wires representing the false hypotheses are connected together
so when any one of them has a voltage applied to it, the voltage appears on
all of them.

So, in this case, if we look in the test register we will find
exactly 25 live wires and one dead wire. The dead wire, and all the wires connected
to it, indicate stecker swapping consistent with the crib-ciphertext pairing.

In the example shown in Figure 4.1, the dead wires in the cables
indicate that A is steckered to G, B is steckered to E, C is self-steckered,
D is steckered to F, and H is self-steckered.

Figure 4.2 Simplified Bombe with 1 Live Wire
in the Test Register

Now suppose that the rotors are in the correct position and that
the hypothesis being tested is true.

For example, suppose that the rotor order and position is correct
and that the true hypothesis that E is steckered to B is being tested. This
situation is shown in Figure 4.2, which has exactly the same scrambler positions
as Figure 4.1 and in which the thick black lines again indicate those wires
which are live, this time after a voltage has been applied to the b wire
in the E cable.

In this case the wires representing the true hypotheses are not
connected to the wires representing the false hypotheses so when a voltage is
applied to any one of the wires representing a true hypothesis, the voltage
appears on all the other wires which also represent true hypotheses, and on
no other wires.

So, in this case, if we look in the test register we will find
exactly 1 live wire and 25 dead wires. The live wire, and all the wires connected
to it indicates stecker swapping consistent with the crib-ciphertext pairing.

In the example shown in Figure 4.2, the live wires in the cables
indicate that A is steckered to G, B is steckered to E, C is self-steckered,
D is steckered to F, and H is self-steckered, in other words, the steckering
that the bombe has found is identical to that of Figure 4.1. The wires which
are live in the test register in these two situations are the logical complement
of each other.

So there are two stop conditions which the bombe looks for, either
exactly one live wire or exactly 25 live wires in the test register.

In The Hut Six Story Gordon Welchman confirms that the
stop condition for the bombe is that given above. However it will sometimes,
but very rarely, occur that there are more than 1 but less than 25 live wires
in the test register. We cannot discount the possibility that this represents
a genuine stop so I think it was likely that the bombe stopped whenever there
were less than 26 live wires in the test register. If the bombe stopped when
there were, say, 24 live wires in the test register, a Wren could have performed
a check by putting a voltage on one of the dead wires and then noting whether
the other dead wire became live. If so, then we know the wires are connected
and therefore cannot represent a solution, but if not then both wires represent
potential solutions. Occurrences of this kind were exceedingly rare.

Note that in the example in Figure 4.1 and Figure 4.2, the E
and H cables are bridged by two scramblers. Since these scramblers are
in two different positions, a current input on, say, the g wire in one
of them will not generally yield the same output as a current input on the g
wire in the other. Sometimes however, the current input on the g wire
in one of them will yield the same output as a current input on the g
wire in the other, even though the two scramblers will yield different outputs
from other identical inputs. This will occur, on average, in one position in
26. This situation is illustrated in Figures 4.1 and 4.2. In the other 25 out
of 26 positions, the current passes through one scrambler to energise a wire
in one of the two cables connected to the other scrambler and is fed back by
the other scrambler through the other cable, to the former scrambler. This feedback
will usually continue until all 26 wires in both the cables are live. Therefore
two scramblers, when bridging the same two cables, are a very potent means of
disposing of steckering hypotheses.

When the bombe detected a stop it recorded the position of the
upper row of drums on one of 26 relays. The turning of the middle and lower
rows of drums was inhibited and the motor allowed to slow down. The upper row
of drums was then rotated into the position recorded by the relays. The bombe
thus halted in the correct position and the stop position was noted by the operator
and the bombe was restarted.

The stop was checked to determine whether it was correct or merely
a rotor order and position that happened to be consistent with the crib and
ciphertext but which was not the correct key for the Enigma.