In The Imitation Game there's this 'aha' moment where they realize IF they know the contents of the morning weather report they can use that to break the enigma. They can use the common phrases found in the message, like "weather" or "heil Hitler" to decider the code. It makes sense that they used these common phrases to help break the code. But how did they have the weather messages decoded in the first place before they were able to break the code?
2 Answers
They know about the morning weather report because there are a small number of messages that were broken by hand using traditional code breaking techniques. The number of messages broken by hand was too small to provide useful intelligence, but enough to give them the crucial clue on what to have the machine look for when searching for the key that would allow them to break all the messages.
-
1This is correct in real life, but this did not happen the fillm. There was an early scene where another cryptologist says that he is trying to break the codes using letter frequencies, and we are led to believe that this work stopped to focus on Turing's machine. Commented Sep 18, 2016 at 5:14
-
1I don't believe it explicitly happened in the film but it was implied that they could be decrypted just not quick enough. The goal of the turing machine was to break the encrypted reports in time to be useful. Every day there was a new cipher, they frequently showed them running until the end of the day and stopping as the germans used a new days cipher. Commented May 23, 2017 at 19:04
They didn't need to have the weather message decoded.
- they looked for messages from weather stations (with known locations and habits).
- once they got a message from a weather station they checked common pieces of plaintext (e.g. 'wettervorhersage' (=weather prediction), rain, fog, storm, fixed message formats used in earlier messages) against the code.
Enigma traffic had one big weakness: a letter could not be encoded as itself. This meant you could compare a crib against the cyphertext. If you found a place where none of the letters matched, you could write a 'menu'. This is a series of letters (W is encoded as X, E is encoded as B etc.) that could be fed into a Bombe, which would try and find rotor settings that match this menu.