Battery and Energy Technologies

# Enigma's Secrets

## How it Worked and How the Code was Broken

By way of introduction, see the Historical Background to Enigma and the Key Players Involved.

The Working Principle - The Enigma machine basically provided a simple substitution of a plaintext symbol with a different ciphertext symbol generated by the machine. What made the machine special however was that for each keystroke there were 158,962,555,217,826,360,000 possible ways of generating the substitute letter or ciphertext from the 26 in the alphabet in what appeared to be a random choice, though selecting the same letter was not allowed. In fact it was not a random choice but depended on the order in which its rotors were placed in the machine, the starting position of each rotor, the internal wiring within each rotor and the connections on a plugboard. The rotors provided 17,576 possible letter substitutions for each keystroke and because at least one of the rotors moved by one position with each keystroke, every keystroke would generate a different ciphertext, even for the same plaintext letter.

Traditional encryption schemes were mostly based on simple letter transposition or substitution and decryption often depended on identifying the relative frequency of occurrence of different letters in the ciphertext. Relatively few permutations were possible and once a ciphertext substitution had been identified it could usually be applied for each instance of the corresponding plaintext symbol in the message.

By contrast, the probability of a particular Enigma ciphertext symbol representing any plaintext input symbol depends on 159 X 1018 possible permutations and is different for every keystroke and furthermore, the frequency of occurrence of all letters in the Enigma ciphertext is exactly the same. There is no weighting factor associated with different plaintext letters. Checking all 159 X 1018 possible letter substitutions, even by machine, was clearly impractical and that's just for one message. The security and intelligence services however had to decrypt several thousand messages every day. The machine settings were also changed daily so that any minor decryption discoveries would have a very limited useful lifetime.

The Enigma Code was therefore thought to be unbreakable.

 The Enigma Ciphertext Machine Source: Imperial War Museum, London

The Construction - Early versions of the machine had three rotors (wheels) mounted freely on a single spindle, which together were called the "scrambler", and a "QWERTZUIO" keyboard which was standard in Germany but it was upper case only and had no number keys or punctuation keys. Numbers had to be written in text form.

Enigma also had a "lampboard", similar to the keyboard, which indicated the ciphertext corresponding to the input key which had been pressed. A battery provided the electrical current to indicate the ciphertext generated by the machine. Later machines also had a plugboard.

(See image opposite and also diagram below)

The Rotors - Because positions of the scrambler's three rotors on the spindle were interchangeable, they could be installed in any one of six rotor orders, increasing the number of possible ways of encrypting the text.

Each of the three rotors had 26 possible angular positions to match the 26 letters of the alphabet and 26 pairs of fixed input and output terminals connecting opposite faces of the rotor wheels which passed the signal from one rotor to the next. The input terminals were spring loaded and connected by internal wires inside the rotor core to flat circular output terminals on the opposite face of the rotor so that each input letter was connected to a different letter on the opposite side of the rotor, thus substituting a different letter as the signal passed through each rotor.

• The Ring Settings - Though the internal wiring of each rotor was fixed, its angular position relative to the rotor could be varied in 26 possible steps. When the rotor's ring setting was changed, it changed the letter substitution produced by that rotor stage. The ring settings of the scrambler's three rotors were changed daily, changing Enigma's encipherment correspondingly, giving rise to an new set of 17576 or (26 X 26 X 26) possible ways of encoding each plaintext letter. These changes were implemented by the following means:

• Around the outside of each rotor was a 26 position indicator ring incorporating a turnover or carry notch, and on the opposite face of the rotor, a separate spring loaded pawl or ratchet. The indicator ring showed the letters of the alphabet and could be rotated independently by hand and held in place by a pin, to offset the letter designations with respect to the rotor wiring. This adjustable alphabet ring setting provided a variable offset of the starting point of each rotor.
• The carry notch on the indicator ring engages with a spring loaded pawl on the adjacent rotor when they become aligned so that after each complete revolution of the first rotor, the position of the second rotor was incremented by one place (similar to the movement of a mechanical odometer). This was known as a turnover.
• Changing the ring setting changes the position of its internal wiring relative to the rotor and thus the turnover point and the start position.
• The operator could also rotate each rotor independently to change its start setting creating an additional offset. The resulting combined start setting selected for each rotor appeared as a letter in a small indicator window next to the rotor. In practice the operator would think of three letters at random, perhaps the first letters of his wife's name, and rotate the wheels till the letters appeared in the indicator windows to achieve the same result. These three letters were known as the "indicator setting" or in German as the Grundstellung for the transmission.

• The Reflector - At the end of the rotor spindle was a fixed reflector with 26 letter terminals on one side interfacing with the last (third) rotor. The reflector's terminals were connected together in pairs by thirteen cross connections which directed the signal back through a different terminal of the last rotor, reversing the signal through a different path back across the rotors. In this way the signal was doubly-encrypted by the rotor mechanism.

• Reciprocity - Because the reflector internal connections were fixed, it meant that its letter pairs were reciprocal so that, for example, the reflector would encipher a D as an H, but would also encipher an H as a D. (See diagram above). This also ensured that, for the same wheel settings, the encipherment across the scrambler would also be reciprocal. Thus in the example above, at the scrambler's input and output W and K would also be reciprocal so that W would be transposed to K, while K would be transposed to W.

• This had two advantages: Reciprocity meant that, with the same settings, any Enigma machine could be used to either encipher or decipher the messages so that typing in the plaintext message would produce the ciphertext while typing in the ciphertext into a similar machine would produce the original plaintext. Since the same sets of wires were used for the forwards and backwards paths across rotors, the reflector also ensured that no letter could be enciphered to itself since that would require the current to flow through the wires in both directions at the same time and this is not possible. This latter feature was designed as an extra security precaution to prevent plaintext from being inadvertently included in the ciphertext message. Unfortunately, rather than improving security, it introduced a weakness into the system which was later exploited by the British codebreakers.

The Enigma machines eventually used by the German Army had two more interchangeable rotors with the facility to select any three from a possible five. This provided a possible 60 permutations of rotor sets and rotor orders multiplying the number of ways of enciphering the text correspondingly. The German Navy extended their rotor library to eight different wheels giving the operator the choice of three from eight or 336 (8 X 7 X 6) possible permutations.

The Plugboard - Later versions of Enigma also had a manual plugboard, (commonly called the Stecker-board by British codebreakers after the German Stecker meaning Plug). This was equivalent to a fourth "fixed" rotor, with two sets of 26 sockets with one socket for each letter which enabled further letter substitutions to be made. Since Enigma's reciprocity had to be maintained, it was necessary to connect the letters in reciprocal pairs across the plugboard with pairs of cables. Known as "stecker pairs", examples of these cross connections shown in the diagram below are H "steckered" with C, and T steckered with K. Thirteen such pairs or substitutions are possible but typically only ten cable pairs were used. The remaining six unplugged letters were self-steckered, passing the letters unchanged across the plugboard, (V and X in this example).

The plugboard multiplied the number of possible ways the Enigma could be set up by a further 150,738,274,937,250 times (26!/10!*6!*210).

The principle of reciprocity employed on the plugboard was exploited by Gordon Welchman in his "diagonal board" which shortened the Bombe-runs used by Turing to break Enigma's daily keys.

Setting or Key Sheets - The arrangement of Enigma's rotors and the cable links on the plugboard provided a unique series of letter substitutions corresponding to the current path through the machine which changed with each keystroke. The daily rotor order and the ring and plugboard settings to be used were specified in the setting sheets which were distributed each month in a codebook to all users of a network.

The Operation - The Enigma operator followed the predetermined plan specified in the settings sheets. First was the selection of the three rotors, from the available bank of five, to be used that day and the planned order in which they were to be placed in the machine. Next was the ring setting to fix the start position offset of each of the three rotors, followed by the setting of the plugboard inter-connections. Because the sender could choose the rotor start settings, it was necessary to inform the recipient of the chosen settings or Grundstellung and this formed the first three letters of the transmitted message. These three letters were actually repeated and sent twice in early transmissions as a "double indicator" to enable the recipient to confirm they had been correctly received. This double indicator was another source of weakness in the system which was exploited by the Polish codebreakers until the Germans eventually abandoned the practice.

Once the machine was set up, the operator pushed a plaintext letter on the keyboard and the corresponding ciphertext letter was lit up on the lampboard. (See the "Encipherment Stages" diagram above)

• When a key was pressed, for example a letter T, the battery would be connected to the socket representing the letter T on the plugboard whose pairs of inter-connections have been manually set up by the operator. The first plugboard link cable, then connects the current to its corresponding output socket, possibly a K.
• The output of the plugboard is connected via an entry plate (a so called static wheel) to the position corresponding to the letter K on the input terminal of the first rotor known as the fast rotor. Depending on the rotor's ring setting, the cross connection in the rotor then connects the current to its corresponding output terminal on its opposite face, possibly a U.
• The current then passes to the second rotor at its terminal facing the letter U of the first rotor, and depending on its position/rotation, leaves the second rotor on its P output terminal.
• Similarly the current enters the third rotor at the point opposite rotor two's P input terminal and leaves on its H output terminal.
• After the third rotor the signal enters the fixed end stop or reflector which changes the ciphertext designation once again, this time from H to D, and sends the current back across the three rotors to the entry plate, switching to paths with different letter symbol designations once more at each stage on the return path.
• The reflected current passes through the entry plate again on its return path and is led back to the plugboard whose second link cable changes the letter designation once more for a final time to generate the output ciphertext letter and at the same time illuminates the corresponding letter symbol on the lampboard, in this case letter G.
• The keyboard input keys have a long stroke which is needed to set up the rotors for the next keystroke. At the end of the stroke the key operates a lever which rotates the first rotor by one position so that the next input symbol will have a different pathway through the machine.
• Depending on the initial rotor settings, after several keystrokes, when the turnover notch on the first rotor comes into contact with the pawl on the second rotor this causes a turnover, incrementing the position of the second / middle rotor by one position. Subsequently a turnover occurs after each 26 keystrokes, each time the first rotor has made a complete revolution, when the notch comes around again. Similarly the notch in the second rotor causes the third rotor, known as the slow rotor to turnover, moving by one position each time the notch comes around.

After each keystroke, the Enigma operator noted by hand the ciphertext output symbols appearing on the lampboard and a radio operator subsequently transmitted the complete encrypted message by means of Morse code.

At the receiving station, the radio operator received the Morse code and converted into the ciphertext. The Enigma machine operator set up the receiving Enigma machine identically to the transmitting machine and typed in the ciphertext which the machine decrypted into plaintext indicating its output, letter by letter, on the lampboard.

## Breaking the Enigma Code

In the early days before World War II, both the Polish and British codebreakers had examples of Scherbius' commercial machines, but not the German military's rotor wheels. The Poles realised that it was necessary to use mathematics to look for patterns to break modern codes and had broken some of the early pre-war German codes while the British were still using linguists for codebreaking. For security reasons there was little exchange of information between the two nations. The imminent outbreak of the war changed all that.

The Polish Codebreakers

Poland's main codebreakers were Jerzy Rozycki and Henryk Zygalski led by Marian Adam Rejewski who all studied maths at Poznan University and were later recruited into cryptology at Poznan in 1929. Poznan was chosen because many students were German speakers. In 1932 the Poznan department was closed and the staff were moved to the Polish General Staff's Cipher Bureau in Warsaw.

• Polish Enigma Codebreaking Methods
• Various methods were devised to simulate the possible permutations of the internal rotor wheel connections, their order and starting positions and to determine their actual configuration from patterns in the ciphertext.

The Way In

Early systems had a key weakness which was exploited by the Polish codebreakers. The three letters specifying each day's wheel settings were distributed by the operators as the first letters of the message, but because there was a possibility that the message could be garbled, the keys were sent twice. Thus an example setting NKU would be sent twice in succession giving a double indicator in ciphertext of JHN QBG. Thus JHN and QBG would both be ciphertext equivalents of the same message NKU.

Zygalski realised that by chance, it is possible that the same letter appears in both the first and second three letter groups of the double indicator keys, depending on the ring settings, thus setting KIE could possibly result in ciphertext of SPE SNT when the message is sent twice in succession. This means that a single letter, in this case K, could possibly be encoded as the same letter, in this case S, when repeated three places later. This occurrence was named at Bletchley as a "female" which was a translation of the word "samiczki" used by the Polish codebreakers.

• Zygalski Sheets
• Zygalski's method of determining the rotor starting positions, or ring settings, depended on finding instances "females" that is, letters coded in the same way by different machine cycles.

He designed a series of 26 perforated sheets or cards, each with 26 rows representing each of the 26 possible positions on the right (fast) rotor and 26 columns representing the 26 possible positions of the middle rotor. The 676 crossing points between the rows and columns represent the possible connections between the corresponding letters on the right and middle rotors. Knowing the wiring connections of the three rotor wheels, it was possible to determine whether the occurrence of a "female" was possible for all of the starting positions of the right and middle rotors for a given reference position of the left (slow) rotor. At each crossing point, if a "female" was possible, a hole was cut in the card otherwise the card was left blank at that point. The presence of these apertures indicated many possible rotor settings for the right and middle rotors where females might occur for a given reference position of the left rotor. By making 26 similar sheets, one for every starting position of the left rotor, it was possible to narrow the possibility of females down to a single occurrence which represented the starting ring settings for all three rotors. The sheets for the left rotor were superimposed over the reference sheet one by one over a light which shone through the holes in the sheets to indicate the coincidence of "females". As more and more sheets were examined, the number of uncovered apertures was progressively reduced indicating fewer possibilities of "females" until a set of sheets was found which only let light through a single aperture. The starting position programmed into this last sheet indicated the starting position of the left rotor. From this information, and the corresponding crossing point on the reference sheet, a machine could be set up with the correct ring settings to decipher that day's messages.

• The Polish Bomba
• Rejewski was also able to calculate the rotor wiring connections by a different method. Knowing that the first 26 plain text letters all went through the first rotor while the other two rotors remained fixed and did not change the letters, he was able to analyse a whole day's messages to look for patterns in the 26 possible permutations from the first rotor. Together with the clues from the doubly encrypted wheel settings he was able to determining the wiring cross connections in the first rotor.

The Polish cryptologists were further helped by the French who had purchased sample coded documents and other information about Enigma from a German traitor named Hans Thilo Schmidt (code name Aché). They learned that the rotor orders were fixed for three months and that the documents covered the period of a changeover giving further clues to the possible patterns in the encryption permutations. From this new information, together with the repeated three letter start settings, Rejewski was able to determine the cross connections in all three of Enigma's rotors and ultimately to design an electro-mechanical machine they called a "Bomba", which emulated the workings of an Enigma's scrambler. Operators could then search for the settings of the Enigma that had encoded the message, by cycling through all the possible rotor settings.

Unfortunately the Polish efforts were frustrated just before the war when when the Germans added two more rotors to the Enigma machine increasing the possible wheel orders from 6 to 60 and a plug board dramatically increasing the possible encryption permutations. In May 1940 the Germans also abandoned the doubled indicator keys to the wheel settings on which critical elements of the Polish decryption depended rendering their method useless.

The British Codebreakers.

On the eve of war in July 1939, five weeks before Germany's invasion of Poland, British codebreakers from Bletchley Park, Alastair Denniston, head of the Government Code and Cipher School (GC&CS), and Dillwyn "Dilly" Knox, GC&CS Chief Cryptographer, together with French cryptanalysts met with members of the Polish Cipher Bureau including Rejewski, Zygalski and Rozycki at a secret facility in a forest in Pyry near Warsaw to share their knowledge. After the meeting, the Poles sent a working clone of the latest German Enigma machine to both the French and the British which they received the following month.

Bletchley codebreakers were informed by the Poles about their Bomba and the internal wiring of the three rotors and their reflector in Enigma's scrambler which had been confirmed by subsequent capture of German machines, but the Polish codebreaking methods were no longer valid since the Germans had changed their communications protocols and a new method of deciphering the code had to be found.

• British Enigma Codebreaking Methods
• Bletchley's cryptanalysts, mathematicians Alan Turing and Gordon Welchman used a "brute force" method modified with ingenious shortcuts to decipher the revised Enigma code. They designed a machine which they called a Bombe which emulated the Enigma scramblers and could cycle through all its possible rotor positions. It did not decrypt the Enigma messages however, instead its purpose was to find the machine's initial settings which provided the key to the decryption. The Bombe was able to determine the order in which the scrambler's rotors had been placed in the machine, the start settings of each rotor and the setting of at least one cable on the plugboard.

Once the machine's settings were known, they could be used to set up a similar cipher machine to decipher the original encrypted message and all other messages intercepted the same day. Since every Enigma terminal in the German military network had to communicate with every other terminal in the network, they all had to use the same Enigma settings. This enabled the Bletchley codebreakers to read all German military communications intercepted each day by Allied listening posts.

• The Way In
• The method depended on guessing a short letter string called a "crib" which may be expected to be part of the plaintext message and using the Bombe to check it against every possible Enigma setting until a plausible match was found in the ciphertext. The machine settings at this point should correspond the settings of the machine which sent the method. Even when carried out by machine, this method could be laboriously long and impractical. The settings were changed every day and as many as 6000 messages per day had to be deciphered.

Turing and Welchman devised logical shortcuts to reduced the number of machine cycles needed by the Bombe to find the key to the daily settings. Some were based on weaknesses in the Enigma system design, such as the significance of "crashes" and "reciprocity", overlooked by the Germans. Others such as "loops and menus" were developed by inspired logical reasoning.

• The Crib
• The ideal crib would be 20 to 30 characters long. Too short would result in too many possibilities to investigate. Too long could result in a turnover when the first rotor caused the second rotor to step forward before the end of the crib string had been read causing the process to be disrupted.

German military communications tended to be formal with a stereotypical format. The following are examples of common short text strings often found in German plaintext messages which were used as cribs.

• Spruchnummer (Message Number) Opening text
• An die Gruppe (To the Group) Opening text used by the Air Force
• Wettervorhersage (Weather Forecast) Used by weather ships
• Routine information such as - Wind speed, Air Pressure and Rainfall transmitted with weather reports
• Numbers were written in text form and letter "X" was used to represent spaces.
• Keine Besondere Ereignisse (Nothing to report. Literally - "no particular occurrences") This was regularly sent by lonely or bored operators from remote outposts where nothing happened.
• Messages often ended with Heil Hitler.

• The Bombe

Searching for a possible text string in a ciphertext message encrypted by Enigma's scrambler requires trying all possible permutations of the initial rotor positions. With three rotors each with 26 possible positions, the number of possibilities is (26 X 26 X 26) or 17,576. Attempting this by hand, and assuming that a cryptanalyst could check one scrambler arrangement per minute, it would take over 12 days, working 24 hours every day, to find the rotor starting positions by which time the information gleaned from the message would probably be useless. The Bombe was designed to mechanise this process by Harold 'Doc' Keen at the British Tabulating Machines Company, BTM.

 Turing's Bombe Source: Turing Archive

The Scramblers

The Bombe consisted of 36 Enigma scrambler emulators arranged in three banks, each with 12 emulators. Each scrambler was made up from a set of three rotating drums with each drum wired to replicate one of Enigma's three rotors. The bombe's emulator scramblers and drums were however wired slightly differently from the basic Enigma in which the each scrambler incorporated a reflector which turned the current back across the rotors and enabled the inputs and outputs to be brought to the same point.

The Bombe's multiple scramblers were instead intended to be connected in series which required separate inputs and outputs with the signal passing in one direction only through the rotors and the scrambler. Called "double ended scramblers", the reflector sits between two separate sets of rotor wheels and no longer reflects but simply passes the current from the input rotors to the output rotors.

Each emulator could be set up in any of the six possible rotor order positions and could cycle through all 17,576 possible rotor letter combinations one step at a time comparing the plaintext with the ciphertext.

The Shortcuts

• Crashes
• It was known that the Enigma never enciphered a letter as itself, known as a "crash" to avoid the possibility of sending a plaintext parts of messages by mistake. Using this property enabled the number of permutations to be reduced.

When setting up the Bombe run the operator placed the crib alongside a letter string of the ciphertext intercept thought to be a match the crib. If any of the letters in the ciphertext string were the same as the corresponding letter in the same position in the plaintext string, this would indicate a crash and that the crib was in the wrong place. The operator would then move the plaintext crib to the right one step at a time until there were no crashes within the corresponding letters of the ciphertext string before running the search.

Table 1

 Ciphertext Q F Z W R W I V T Y R E S X B F O G K U H Q B A I S E Z Crib Offset 0 W E T T E R V O R H E R S A G E B I S K A Y A Crib Offset 1 W E T T E R V O R H E R S A G E B I S K A Y A Crib Offset 2 W E T T E R V O R H E R S A G E B I S K A Y A Crib Offset 3 W E T T E R V O R H E R S A G E B I S K A Y A Crib Offset 4 W E T T E R V O R H E R S A G E B I S K A Y A

The example above shows a possible 28 letter sequence from a ciphertext message, said to have been sent on D.Day, containing the "Weather Forecast (for the Bay of) Biscay" together with a 23 letter crib placed alongside the message.

In the initial position, the crib indicates that the letter S is enciphered as itself but since this is not permitted, there can be no correspondence between the crib and the ciphertext message string. Moving the crib one place to the right shows three crashes with letters V, E and A. Similarly, offsetting the crib by one more place shows a crash with letter R and offsetting it one place further shows crashes with letters W, G and A.

Finally with offset 4 there are no crashes so that the crib can possibly be matched to a sequence of the ciphertext. This provides a set of 23 ciphertext-plaintext pairings which can then be used to predict the machine settings which encoded the text.

• Turing developed a method of identifying loops in the ciphertext-plaintext pairings which could be used to determine which rotors had been used in the Enigma transmitter, the initial rotor settings and its plugboard connections.

The table below shows a truncated plaintext crib of 20 letters from the message "keine besonderen ereignisse" and indicates the guess as to how the scrambler would have enciphered the plaintext after each successive keystroke of the crib. The "Letter Position" in the ciphertext string thus corresponds to the number of keystrokes made up to that point and also the number of positions moved by the first rotor from the start position.

The table also shows the possible presence of loops made up from paired encipherments (shown in blue) which together were used to create "menus" for setting up the Bombe. They depended on the reciprocity of the encipherment so that X linked to E is equivalent to E linked to X and indicate the presence of fixed relationships between positions in the text, and hence between rotor settings in the scrambler. They don't however indicate the starting position within the ciphertext string.

Table 2

 Letter Position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ciphertext String S L Y A R O P X J Q K E B K Q Z A N Y G Plaintext Crib K E I N E X B E S O N D E R E N X E R E

The table shows that a loop XOQE can be formed by the ciphertext and plaintext letter pairs at the letter positions 6,10,15 and 8 in the ciphertext string and the corresponding rotor positions. The letters X, O, Q and E are known as the connection points within the loop.

A second loop, XANKRE, centred on letter X, formed by letter pairs at positions 17,4,11,14,5 and 8 is also possible. For a long crib it is possible that there could be several interconnected loops. The central letter is the node, or junction point, to which the largest number of loops are connected.

By setting up the Bombe to reflect these loops it is possible to avoid checking thousands of letter permutations to determine the rotor start positions.

The diagram below shows both the example XOQE loop, and the way it is used to create a menu, for setting up the Bombe to check all the paired encipherments simultaneously. This dramatically reduces the number of permutations to be checked to find the combination of rotor starting positions from the 17,576 necessary if each letter permutation had to be checked individually.

Set up

• The scramblers in all loop tests used the same rotor sets and the same rotor orders.
• The method uses one scrambler emulator for each paired encipherment so that four scramblers are used in series to evaluate a four letter menu with the output of each scrambler feeding into the input of the next scrambler to form a feedback loop.
• The connections between the scramblers are by means of a 26 way cables with each wire designated to carry a single letter of the alphabet.
• To view the operation, a keyboard could be attached to the input to the first scrambler and a lampboard to the output of the last scrambler so that the operator could see the results of each keystroke.
• The initial angular offset position of the fast drum of scrambler 1 is set to position 6 relative to the first letter of the ciphertext input string, scrambler 2 is set to position 10, scrambler 3 to position 15 and scrambler 4 to position 8.
• This loop indicates that
• At rotor position 6, X is enciphered to O
• At rotor position 10, O is enciphered to Q
• At rotor position 15, Q is enciphered to E
• At rotor position 8, E is enciphered back to X
• The menu indicates the initial position of each scrambler rotor input and how the four 26 way cable links between the scramblers are to be connected in the cable panel behind the drums.
• If the crib precisely matches the ciphertext in the correct position:
• Applying a voltage to the central letter, in this case the X wire, into scrambler 1 will cause a voltage to appear on its O output wire which is connected to the O input of scrambler 2 making it live.
• This in turn causes a voltage to appear on its Q output wire which is connected to the Q input of scrambler 3 making it live.
• Continuing, scrambler 3 applies a voltage to the E input of scrambler 4 which applies a voltage to the X wire input of scrambler 1 completing the loop.
• This means that if there is a match between the crib and the corresponding section of the ciphertext string, because the scramblers are connected in a loop, inputting any letter key on the scrambler input keyboard (this will be the letter emerging from the plugboard) will cause the same letter to appear on the scrambler output lampboard (this will be the letter feeding into the plugboard).
• Since the Bombe had 36 scrambler emulators, it was possible to run more than one loop search simultaneously on the same bank of 12 and to run with different rotor sets in each of the three banks.

Bombe Runs - Stops and Contradictions

Discovering the scrambler's rotor settings using loops as in the example above was completely independent of the plugboard connections which were determined in a separate procedure. The Bombe run depended on discounting all combinations which don't work, known as contradictions, rather than searching for what works reduced processing requirement to a few which may work.

• Stops - If the crib set up correctly matched the position in the ciphertext string and provided perfect correspondence with the ciphertext, the voltage applied to the first scrambler input would be passed around the loop on a single wire in the 26 way cables, coming back to the same input position. No other wires would be made live by the voltage and the Bombe would come to a halt or "stop".
• Three further drums an the main panel would indicate the positions of each scrambler drum when the machine stopped from which the initial rotor settings could be derived.

• It was also possible that several "stops" in the message could correctly decrypt the crib, but only one "true stop" would produce the correct plaintext for the entire message. Such stops were further evaluated on a Typex checking machine which replicated the German Enigma machines. (See below)
• Contradictions - If however one or more letters in the crib did not translate into the expected ciphertext, the output letter of the corresponding scrambler a voltage would be placed on a different wire than the one expected, effectively breaking out of the loop. At the same time the output letter would not match the expected input letter of the following scrambler which would in turn output an erroneous letter and place a voltage on a non-planned wire. The fault would thus propagate out of the loop in an uncontrolled manner, re-entering the scramblers on another path making all 26 of the connecting wires live and a letter shown on the lampboard would not match the letter typed on the keyboard.
• The presence of these live wires coupled with the probable absence of any voltage on the return path to the input of the loop indicates that there is no complete loop and hence no match between the crib and its current position with respect to the ciphertext string. This condition was known as a contradiction.

• If a contradiction, that is "no match", is found then the first rotor steps to the next letter in the ciphertext and keeps repeating the test, cycling through all rotor positions, progressing through the ciphertext string until a match is found. Thus the rotors are automatically turned searching for a complete loop until no contradiction occurs and the same letter that was keyed into the first scrambler comes out of the last scrambler when the Bombe comes to a stop.
• If no match was found after scanning the entire message it was necessary to start again with a different crib.

Using cribs and loops the Bombe could determine the probable rotor settings in 10½ minutes.

• The Typex Checking Machine
• Bletchley's Bombe compared the crib with a suitable section of ciphertext and determined which rotors had been used to encipher the text and the corresponding ring settings which had been used as well as one of the plugboard input connections. It did not however provide the full complement of plugboard cross-connections, nor did it decipher the ciphertext message. These remaining tasks were carried out on a Typex machine which replicated all the functions of the basic German Enigma machine with a single 3 rotor scrambler, a keyboard, a plugboard and a lampboard.

The Typex machine's rotors were set up to match the Enigma rotor settings indicated by the Bombe's stop position. The operator could then confirm whether the stop was a "true stop" providing a plausible match for the entire ciphertext string or whether it was valid just for the crib, in other words a "false stop".

The Typex machine also provided the final key to the Enigma plugboard stecker pairs (see below) which could then be used to set up similar Typex machines to decrypt the day's intercepted communications. As a bonus the machines could be configured to send encrypted messages to other Typex machines.

• The Plugboard
• The Bombe's set up with multiple emulators of the Enigma's three rotor scrambler, arranged in a loop, could be used to determine the plugboard cross-connection to the loop's central letter, while the Typex machine was used to determine the rest of the cross-connections. Considering the enormous number of possible plugboard connections (150 X 1012), it turned out to be surprisingly easy.

Plug Mates and Stecker Pairs

The letter designations of the plugboard's connections to the scrambler were known as the plug-mates of the plugboard's input and output connections. The stecker pairs connected the plugboard inputs and outputs to their plug-mates.

• The Plugboard Link to the Loop's Central Letter
• In the example menu above, we know that when the Bombe's scrambler rotor settings are correctly set up in a loop, applying a voltage to the X input wire of the first scrambler will cause a voltage to appear on the X output wire of the last scrambler. If a voltage is applied to each of the 26 plugboard input sockets in turn, the only plugboard input letter, let's say "A" for example, which caused a voltage to appear on the last scrambler's X output wire will be the plugboard input letter cross-connected to the first scrambler's X input. In Bletchley parlance, this implies that the plugboard input A is "steckered" to X and that A and X are a "stecker pair". All other possibilities will be incorrect causing voltages to appear on several of the last scrambler's output wires.
• A second possiblity of determining the plugboard connections exists if the first scrambler input is unknown. An incorrect guess of the plugboard input by chance could result in 25 live output wires of the last scrambler and a single output wire with no voltage, let's say the "S" wire. This implies that the Bombe's drums are correctly set up to create a loop but there must have been no input applied to the first scrambler's X input from the plugboard's S wire. This in turn implies that the incorrect or false plugboard connection caused the 25 live outputs, but since there was no input from the correct plugboard input, there was no transmission through the loop so that the S wire did not become live. This means that the first scrambler must have been connected to the plugboard's S input terminal and that this was steckered to the first scrambler's X input.
• In this way, the correct plugboard "steckering" can also be determined from a false plugboard input.

• If all 26 plugboard output wires become live this indicates that the Bombe's scrambler drums are incorrectly set up.

• The Plugboard Stecker Pairs
• In the example above, at the rotor's start position, the Bombe had determined that the plugboard input A from the keyboard had been steckered to the central letter X of the loop and since the scramblers formed a loop, the output from loop would also be an X, while the output of the plugboard which appeared on the lampboard would be an A since X and A are cross plugged by the stecker pair.
• The rest of the stecker pairs were determined by means of the Typex machine. If the Typex's first rotor is moved around by six positions from the start, typing an A into the keyboard will connect the A wire via the plugboard X wire to the O position of the first scrambler. Since the Bombe has confirmed the validity of the crib, we know that in letter position 6 the scrambler enciphers an X to an O (see Table 2 above) so that the plug-mate O will appear at the output of the last scrambler. However a different lamp will light up at the output of the plugboard depending on the plugboard cross-connection, let's say an R. This would mean that R must be steckered to O.
• Similarly, moving the rotor around to ten positions from the start and typing R on the keyboard will apply an O to the first scrambler input since R is steckered to O. At letter position 10 the scramblers encipher the O to its Q plug-mate output. After passing through the plugboard, this may cause the Z lamp to light up which implies that Z is steckered to Q.
• Stepping around to 15 paces from the start and inputting a Z on the keyboard causes a Q to be applied first scrambler which enciphers it as plug-mate E which emerges from the loop. After passing through the plugboard this may light up the E lamp indicating that E is not cross-connected but is self steckered to E.

• The Diagonal Board
• Welchman realised that the property of reciprocity as obtained by using stecker pairs in the plugboard could also be used to reduce the number of Bombe cycles needed to evaluate a crib. We know that the scramblers are also reciprocal so that, using the menu above as an example, if X is enciphered to O, O must also be enciphered to X, its stecker partner. Thus, for a particular set of rotor positions, if the input X causes a contradiction, inputting an O would also cause a similar contradiction with the same settings making it unnecessary to make a separate check for the second condition so that the Bombe could move on to the next cycle. This could be implemented by connecting the double ended scrambler's O output back to its O input. More generally, this principle could be applied to all possible scrambler input-output pairs reducing dramatically the number of Bombe cycles necessary to find a stop. The so called diagonal board, named after the appearance of its wiring, enabled this major shortcut and a diagonal board was attached to each scrambler in the Bombe's loops maximising its utility.

The diagonal board was a passive circuit board with 26 by 26 electrical terminals connecting all possible inputs of a Bombe's scrambler to all its possible outputs or stecker partners. A 26 way cable, connected between the scrambler's A to Z inputs and the 26 terminals on one side of a square circuit board, while a similar 26 way cable was connected between the scrambler's output terminals and the 26 terninals on the adjacent side of the diagonal board. The the 26 rows and columns of the board's wiring were permanently cross connected in pairs corresponding to the symmetrical property of the steckers, so that for example the terminal in row X, column O is connected to the terminal in row O, column X, a total of 325 pairings. In operation, no switching was required and only one pair of wires connected through the board was live when the crib matched the ciphertext and this pair corresponded to the current position of the scrambler's rotors.

In summary, the use of the simple inexpensive diagonal boards greatly increased the number of contradictions derived from any false initial hypothesis occurring in each Bombe cycle so that it needed far fewer cycles to find rotor settings matching the crib to the ciphertext resulting in much shorter Bombe runs and in addition, the matching also became possible with shorter cribs.

The Legacy

Historians generally agree that breaking the German codes shortened the war by two years and consequently saved countless lives.

Apart from breaking the code, another major achievement of the British codebreakers was that the Germans never realised that their system had been compromised. It depended on maintaining a discipline of absolute secrecy of the thousands of people employed at Bletchley Park and remote government listening stations (Y stations) and also control of how the information gleaned from the messages was used and supported by subterfuge, deception and misinformation so as not to alert the Germans that the British and their Allies might have information they were not expected to have.

The company which designed the Bombe, BTM, after several mergers and takeovers is now ironically part of a Japanese/German joint venture between Fujitsu - Siemens.

Woodbank Communications Ltd, South Crescent Road, Chester, CH4 7AU, (United Kingdom)