The Bombe, in its various forms, was a device containing multiple sets of Enigma rotors that rotated quickly to try all possible positions of the rotors.
Because the Enigma had a plugboard, and because no simple relay circuit would recognize valid German-language text, even having a device of that nature did not make it trivial to crack the Enigma machine's cipher. Thus, the Bombe came in different forms during the life of the cryptanalytic effort against the Enigma.
The cyclometer was the first modified Enigma mechanism used in cracking Enigma ciphers, but it was used to prepare tables in advance, rather than working on information from a specific day's intercepts.
It consisted of two sets of Enigma rotors connected so as to face one another, and positioned so that the fast rotor was three positions different in the two sets, the other rotors being in the same position. A keyboard and lights was also connected to the 26 wires between the rotor sets. A key did not disconnect the light corresponding to it.
The rotors were manually stepped. For each position, one depressed a key, and noted how many lights lit up, and then depressed a key corresponding to a light that hadn't yet lit up for that position, until all the letters were divided into groups of different size.
The table thus generated was useful when the indicators of the Enigma were enciphered twice according to a common ground setting for the entire day.
From the messages intercepted, one could form alphabets based on the indicators. Since the ground setting was always the same, if the first letter of the starting setting chosen by the operator was A, the same two alphabets would be applied to it at the ground setting position and the position three letters later, and so if the indicator was X-- Q-- for one message, it would be in the form X-- Q-- for every message where A was the first letter of the starting setting.
Thus, one could compile an alphabet in which X became Q, and so on.
The pattern of that alphabet which would survive changes in the plugboard settings was its cycle decomposition. That is, an alphabet might be made up of three letters that stayed the same, two pairs of letters swapped with each other, one group of three letters in which each letter was replaced by the next one, and so on.
The characteristics of the three alphabets produced from a days indicators would match three consecutive alphabets in the table produced by the cyclometer, unless the ground setting was chosen so that the medium rotor moved during the first six letters.
The original form of the Bombe was designed back when the Enigma only had a set of three rotors to interchange, and when only three wires were connected to the plugboard, affecting only six out of 26 letters.
It was used against the doubly-enciphered indicator system of the Enigma during the period when ground settings were chosen at random by the operator, and sent in the clear with each message.
If one has two "females", indicators where one letter is repeated in the two encipherments of the actual rotor starting position, and furthermore, they result in the same letter and are in different positions, which was a common enough occurence given the volumes of traffic in use, one could proceed as follows:
Connect a voltage to that contact on four rotor sets. Take these in two pairs, each pair with positions offset by three, and if both pairs, at the same time, produce the same output letter (that is, both sets in each pair produce the same letter, but the two pairs may produce a different one) then one has found the right starting position.
This won't work, however, if the letter found in the ciphertext was changed by the plugboard. The actual machine had six rotor sets, and could take advantage of finding the same letter in all three possible positions.
The Turing Bombe exploited the fact that messages sent by the Enigma often included long stretches of probable plain text, particularly the titles, spelled out in full, of military officers. Since the Enigma never enciphered a letter to itself, it was possible to find possible exact alignments for such likely phrases, or "cribs".
Let us suppose that, comparing some probable plaintext to matching ciphertext, we find the following:
The 4th letter of the crib was a plaintext E that was enciphered to N.
The 8th letter of the crib was a plaintext E that was enciphered to X.
The 19th letter of the crib was a plaintext N that was enciphered to X.
These encipherments form a loop. For some position of the rotors, N becomes E at that position, and then for the position four steps later, E becomes X, and a further 11 positions later, X goes back to E.
Since the Enigma has a plugboard, instead of N, E, and X, one can only say with certainty that "some letter" becomes "some other letter", which then becomes "yet another letter", which then goes back to "the first letter".
So, a Turing Bombe worked this way: the three rotors plus the reflecting rotor of an Enigma were replaced by seven rotors, with a conventional rotor imitating the reflecting rotor in the middle. For the loop in the example, one would have three such sets (machines would be working in parallel for every possible rotor order, so as to avoid taking time to re-order rotors: in fact, one complete set of all 60 orders constituted a single Bombe at this point) positioned so that when one set was at the position it was in for the 4th letter of the crib, the next was in the position 4 steps later, and the next was in the position 15 steps later.
Each set of rotors was connected to the next set by 26 wires in parallel. A voltage was applied to one of the wires at one point. That wire was chosen to be the wire for the actual letter found in the crib, so that if that letter was not changed by the plugboard, the actual closed loop in the crib would be the only part of the circuit reached by the voltage, and so each of the 26-wire links would have only one live wire.
Otherwise, when the correct position was reached, even if all 25 other wires in each link were reached by voltage, the actual closed loop would, being closed, be isolated, and not get voltage.
So a relay circuit checked the 26 wires at one point in the loop, and halted the Bombe whenever not all 26 wires had voltage (presumably ignoring the times when the rotors were between positions).
If the notches that caused one wheel to move the next slower wheel had been fixed to the rotor body, the Turing Bombe would have been simpler to understand, and would always have worked, since then for any position of the wired rotors, the position of the rotors a certain number of steps later would be known.
Since the notches were in fact fixed to the alphabet wheel, what was done instead was to perform the carry from the fast wheel to the medium wheel, and one from the medium wheel to the slow wheel, at only one position in the apparatus, with corresponding wheels in all rotor sets linked together. If only the fast wheel was displaced between rotor sets, the machine worked if the medium wheel did not move anywhere inside the crib.
One could also displace the medium wheel by one place in some rotor sets to try different assumptions about where the medium wheel moved.
It might be noted that, since we don't care which letter our test letter was taken to by the plugboard, a relative displacement of the whole rotor set would make no difference. Since the reflecting rotor could not even be moved to alternate positions by hand, however, different rotor positions were absolute, not relative. But if the reflecting rotor had been settable, the Bombe would not have had to run 26 times longer.
In the example, only a single closed loop was taken from a crib. In fact, a single closed loop would have stopped the Turing Bombe with too many false alarms, and thus this Bombe had more than three rotor sets, and was used with cribs that gave more than one loop, with the loops connected to each other.
The Turing Bombe, as noted, simply looked for cases where some letter became some other letter, and so on. But the cribs also included information about which letter became which other letter. Despite the plugboard, there was a way to make use of this information, and that way was the diagonal board.
Let us begin with the simple 3-letter loop used as an example above: N becomes E becomes X becomes N.
Let us suppose that E was not modified by the plugboard, for ease of understanding, and so we apply our voltage to the wire corresponding to E at the point corresponding to where we encountered E in the plaintext and ciphertext.
Then, E might become X at the point corresponding to X.
On the other hand, X might have been affected by the plugboard. If so, E will become some other letter, which will become either N or some other letter, which becomes E again.
Suppose E becomes N, at the point where X was expected.
This means that X and N were switched by the plugboard, and so this N had better become an X at the point N is expected. Otherwise, an impossible plugboard arrangement is required, and so the apparent successful hit is a false alarm.
The diagonal board was used to cover all the possibilities of an inconsistency like this. It was a square matrix of sockets, wired so that column P in the Q row was wired to row P in the Q column, for every two different letters in addition to P and Q.
The 26 wires for any position in a crib were also connected to the row of the diagonal board corresponding to the plaintext and/or ciphertext letter that was seen at that position of the crib. Current going through the wire for that actual letter was not connected anywhere, but current for a different letter was connected to the row for that different letter being seen, at the position where the original letter would be actually encountered.
This provided additional connections. Yet, if the voltage entered the setup at the correct position, the closed circuit was not extended to other wires; so, if the voltage entered at another position, the closed circuit still recieved no voltage.
Thus, the Bombe still worked as before, except that it automatically ignored many of the false alarms for which it had previously stopped.
An additional device attached to the Turing Bombe to eliminate additional false alarms performed the following function:
When not all the wires were live, if all the wires but one were live, the voltage was redirected to that one wire.
Then, all the different letters of the crib were scanned, to ensure that no two letters in the crib (including both its plaintext and ciphertext forms) which were different would have had to have been brought to the same letter, instead of to different letters, by the plugboard for the current bombe position to be valid.
Thanks to a Cryptologia article by Cipher A. Deavours, and an earlier paper in IEEE Annals of the History of Computing, the equipment used for dealing with the rewirable reflecting rotor has been unveiled as well, at least in part.
For this device, a crib is required where, at several positions, the same plaintext letter has become the same ciphertext letter.
A Bombe with sets of the three regular rotors only is used to find positions consistent with this. As the letters can be displaced by the plugboard, all possible pairs of plaintext and ciphertext letters are tried by external circuitry for each position of the fast rotor. However, a very good crib is needed for there to be enough detectable inconsistencies for such an approach to be useful; the article itself notes that the description must still be incomplete.
Incidentally, I recently found that this page has a very good description of how the Bombe worked as well.
Table of Contents