Bombe

Bombe: Emulation of the Bombe machine used at Bletchley Park to attack Enigma, based on work by Polish and British cryptanalysts.

Free · No sign-up required

Text input

Your result is ready to copy or download after running.

Tool options

About Bombe

Emulation of the Bombe machine used at Bletchley Park to attack Enigma, based on work by Polish and British cryptanalysts. To run this you need to have a 'crib', which is some known plaintext for a chunk of the target ciphertext, and know the rotors used. (See the 'Bombe (multiple runs)' operation if you don't know the rotors.) The machine will suggest possible configurations of the Enigma. Each suggestion has the rotor start positions (left to right) and known plugboard pairs. Choosing a crib: First, note that Enigma cannot encrypt a letter to itself, which allows you to rule out some positions for possible cribs. Secondly, the Bombe does not simulate the Enigma's middle rotor stepping. The longer your crib, the more likely a step happened within it, which will prevent the attack working. However, other than that, longer cribs are generally better. The attack produces a 'menu' which maps ciphertext letters to plaintext, and the goal is to produce 'loops': for example, with ciphertext ABC and crib CAB, we have the mappings A<->C, B<->A, and C<->B, which produces a loop A-B-C-A. The more loops, the better the crib. The operation will output this: if your menu has too few loops or is too short, a large number of incorrect outputs will usually be produced. Try a different crib. If the menu seems good but the right answer isn't produced, your crib may be wrong, or you may have overlapped the middle rotor stepping - try a different crib. Output is not sufficient to fully decrypt the data. You will have to recover the rest of the plugboard settings by inspection. And the ring position is not taken into account: this affects when the middle rotor steps. If your output is correct for a bit, and then goes wrong, adjust the ring and start position on the right-hand rotor together until the output improves. If necessary, repeat for the middle rotor. By default this operation runs the checking machine, a manual process to verify the quality of Bombe stops, on each stop, discarding stops which fail. If you want to see how many times the hardware actually stops for a given input, disable the checking machine. More detailed descriptions of the Enigma, Typex and Bombe operations can be found here.

Input: text. Output: structured JSON.

Format reference: Bombe background and specification

Example

Use “Try example” to load this public sample and its settings, then run it.

Settings used in this example
ParameterExample valueInput and choices
Model"3-rotor"3-rotor, 4-rotor
Left-most (4th) rotor""Beta, Gamma. Escape sequences such as \n, \r and \t are supported
Left-hand rotor"EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported
Middle rotor"AJDKSIRUXBLHWTMCQGZNPYFVOE<F"I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported
Right-hand rotor"BDFHJLCPRTXVZNYEIWGAKMUSQO<W"I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported
Reflector"AY BR CU DH EQ FS GL IP JX KN MO TZ VW"B, C, B Thin, C Thin. Escape sequences such as \n, \r and \t are supported
Crib"THISISATESTMESSAGE"Text
Crib offset0Number
Use checking machinefalseOn or off

Input

BBYFLTHHYIJQAYBBYS

Result

The result is structured data. Inspect its fields in the output.

Parameters

ParameterDefault valueInput and choices
Model"3-rotor"3-rotor, 4-rotor
Left-most (4th) rotor"LEYJVCNIXWPBQMDRTAKZGFUHOS"Beta, Gamma. Escape sequences such as \n, \r and \t are supported
Left-hand rotor"EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported
Middle rotor"AJDKSIRUXBLHWTMCQGZNPYFVOE<F"I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported
Right-hand rotor"BDFHJLCPRTXVZNYEIWGAKMUSQO<W"I, II, III, IV, V, VI, VII, VIII. Escape sequences such as \n, \r and \t are supported
Reflector"AY BR CU DH EQ FS GL IP JX KN MO TZ VW"B, C, B Thin, C Thin. Escape sequences such as \n, \r and \t are supported
Crib""Text
Crib offset0Number
Use checking machinetrueOn or off

Before interpreting the result

Use the exact key encoding, mode, padding and IV expected by the source system. Historical ciphers are useful for learning and analysis. Encoding alone provides no confidentiality.

How to use this page

  1. Paste your input or open a local file.
  2. Adjust tool options if needed, then choose Run tool.
  3. Copy the result or download the original output bytes.

Inputs and results are not added to the public catalogue or saved in the URL. Processing happens in your browser; HTTP Request and DNS over HTTPS send the requests you explicitly run. Files up to 128 MiB can be opened; decompression and image tools may have smaller processing limits. Large results have a shortened preview. Text and HTML downloads use UTF-8; binary downloads preserve output bytes. Pasted text follows browser newline handling; open a file when exact input bytes matter.

Related tools

Browse encryption / encoding tools