The movie portrays Turing as socially hostile, fighting
against his coworkers and the British Government who had little belief in his
work. That is not what happened. Bletchley Park cracked those codes through the
determined efforts of hundreds of people, it was an incredible story of team
work, not hostility. And it was fully backed by the British Government at the
highest levels, and why wouldn't they back it, because early Enigma ciphers had
been cracked before World War II even started.
The German Government continued to tinker with the machines,
making them more complicated as the war dragged on. The British would crack the
codes for a while, and then they would hit a dry patch for a few months with little
success before reestablishing a new method. Sometimes they would only crack a
few messages a day, sometimes they had wide success. As the Germans continued
to add rotors eventually the Colossus machine (featured prominently in the
movie) became more and more necessary to assist the scores of young women
"computers" that every day followed the mathematical scripts to
decode messages.
Both Enigma and Tunny were incredibly powerful ciphers and
should have provided enough protection, it was the little mistakes of the
hundreds (or thousands) of daily users of those machines that provided the keys
to cracking it. The following are some of the failures that enabled the code
breakers.
·
The short weather reports were rather easy to
guess and allowed the code breakers to propose a starting message and find a
key that would match the output. Senders were instructed to not follow forms
and to switch up these types of messages but they didn't do so often enough.
·
Each message was sent with a daily key, and an
added message key that kept all of the day's messages from being encoded exactly
the same way. If users choose the same message key, or reused their own message
key it would lead to multiple messages being coded the same. In one of my later
posts I'm going to show how you can crack those examples.
·
Sending the exact same message in different
ciphers was a different problem. Sometimes an important message would be
transmitted verbatim in Enigma or Tunny, and also in a really simple field
cipher for those who didn't have an enigma machine. The field ciphers were so
easy to crack that they could find the original message and then use that to
find the key for the complex ciphers. Once they had the daily key for the
complex cipher they could crack hundreds of other messages.
·
Messages were often personally addressed to the
main Generals. The code breakers would look for that General's name in the
message.
·
When they were in really dire straits, the
British would go fishing for the small German weather monitoring boats that had
only a couple sailors and an enigma machine. They successfully captured several
along with the daily code keys for a month's worth of messages. They
successfully did this several times.
·
The information to crack Tunny mostly came from
one really intriguing message. In August of 1940 a huge message (4,000)
characters was sent with Tunny. But the receiving end didn't get it correctly.
They broadcast and unencrypted request for the message to be resent which told
the allies what was happening. The sender should have changed the public part
of the key before resending but they didn't which left it coded the exact same
way. The second problem was that it was almost impossible to exactly key in the
4,000 characters the same way, and the sender used an abbreviation early in the
message that offset the twomessages by a few characters. Out of this one small
window the British teased out a huge amount of the underlying pseudo-random
data used for the enciphering.
I hope you found that interesting, it was a lot more history
then the examples of what I'm doing with my example program. Next post we will
get back into the program and how it uses exclusive-or arithmetic.