Colonel John Tiltman was able to break into Lorenz because of two messages sent in the same key, which is referred to as a ‘depth’ (i.e. the Lorenz cipher was set up identically when each message was sent). This depth allowed Tiltman to obtain the original plain text messages and the key added to those messages to encipher them.
On 30th August 1941 the British intercepted two messages that had been sent between Athens and Vienna with the same 12 letter indicator, HQIBPEXEZMUG. The indicator was sent in plain text at the beginning of the message and told the operators how to set up their Lorenz machine.
The first message was approximately 4,000 characters long and the second message was similar but had been abbreviated in places. These differences meant that the characters of the two messages didn’t match up exactly, giving the codebreakers a way in. If the two messages had been identical, then the messages would have cancelled each other out as shown in Example 1 (see Teleprinter Code for rules on addition):
The teleprinter Alphabet shows ••••• to have no meaning:
Example 2 demonstrates how message characters don’t match up when a second message is abbreviated (as can be seen from position 10 onwards). In this example, the word “Number” has been abbreviated to “No”.
Adding the Messages
Where the characters do not match, the two cipher texts could be added together. This would remove the key and give the sum of the two plain text messages. Then using typical German expressions, the plain text messages could be separated.
Messages are enciphered by Lorenz as follows:
|Plain Text + Key = Cipher Text|
When we have two messages in a depth the equation is as follows:
|Plain Text 1 + Key = Cipher Text 1|
|Plain Text 2 + Key = Cipher Text 2|
Tiltman added the two cipher texts together to remove the key:
| Plain Text 1 +
Plain Text 2
| Key +
| Cipher Text 1+
Cipher Text 2
|= Plain Text (1+2)||(same key cancels out)||= Cipher Text (1+2)|
Adding the two cipher texts together removes the key because the key is identical for each message and so cancels itself out. This leaves the sum of Cipher Text (1+2) which is equivalent to the sum of Plain Text (1+2).
|Plain Text (1+2) = Cipher Text (1+2)|
A working example is shown in Example 3.
Using teleprinter addition, the sum of the plain text characters (M+T) is the same as the sum of the cipher text characters (J+U), both additions result in the letter N.
For each position of the messages, Tiltman knew:
- The two cipher text characters and their sum i.e. J+U and their sum N.
- The sum of the plain text characters i.e. N (but not that N was made up of M+T).
Separating the Messages
In order to separate the plain text messages from their sum (i.e. obtain M+T from N), Tiltman used German that would be expected to appear in messages. At Bletchley Park, it was known that the German army numbered units using Roman Numerals, so German words such as “ROEM” which means “Roman” followed by a number such as “EINS”, which means “One” could be expected in messages.
Expected German such as “ROEM EINS” (“Roman One”) would be added to the Cipher Text sum at different positions. If the result produced gibberish, then the German had been added in the incorrect position.
In Example 4, it can be seen that placing “ROEM EINS” in the correct position produces the German text “IN FRAGE”, which could then be assumed to be part of the sentence “KOMMT NICHT IN FRAGE”, giving the codebreakers a further crib. “KOMMT NICHT IN FRAGE” means “NO QUESTION OF RETREAT” (please note that a space was written as the number 9).
Once Tiltman had separated the plain text messages he worked out the key by adding one of the plain text messages to its corresponding cipher text.
|Plain Text + Cipher Text = Key|
However, Tiltman was unable to deduce any patterns in the key so the key was given to Bill Tutte (see Tutte’s Contribution).
For a further example of breaking a depth see The Testery.
Lorenz / Tunny Addition Table
The diagonal yellow line below shows why had the two messages of the depth been identical, the codebreakers wouldn’t have been able to deduce the code since the messages would have cancelled each other out.
The original of the Tunny Addition Table can been seen on Page 5 of the General Report on Tunny, available here: http://www.alanturing.net/turing_archive/archive/t/t01/TR01-007.html.