Over the weekend I had the opportunity to watch the new movie about Alan Turing's cryptanalysis of the enigma. If you are even remotely interested computer science, you need to see "The Imitation Game."
This post, however, isn't really about the movie as much as it is about a thought that I had on the quiet walk back to my car with my geeky wheels turning.
Cracking the Enigma Machine
Arguably, Turing's Machine was the first computer ever built by man. I say arguably because there were a few other pioneers prior to Turing that did successfully create other mechanically driven calculating machines, Turing's was Electo-Mechanical. The Turing Machine was created to counteract the Enigma, a state of the art encryption device used by the Germans during WWII. Cracking the enigma allowed the allies to intercept a substantial amount of Morse-coded Axis communications which turned the tide of the conflict in favor of the Allies. It's believed that the intel gathered by Turing and his team at Bletchley shortened the war by 2 to 4 years.
In the movie, Turing and his team needed to find a way to make 159,000,000,000,000,000,000 calculations within 18 hours, in order to decode the enigma quickly enough to get meaning out of what would appear to be a random string of characters. In computer science they call each of these calculations a FLOP (Floating Point Operation), consequently computer performance is measured by the number of calculations it can perform in one second. In order to achieve this in 18 hours, Turing would have had to design a machine with 2.4 PetaFLOP performance. Suffice it to say, Turing and his team were not able to achieve such a feat, in fact their success was derived from deduction. His team was able to reduce the number of necessary calculations to a point where the code could be broken in enough time to gain the advantage the Allies needed. If anyone knows exactly what the processing power of Turing's Machine was, please post up!
How would we fare today?
So what if we had today's fastest "Turing Machine" to approach the same problem? How long would it take to solve? As of this writing, the worlds most powerful computer is China's Tianhe-2, capable of 33.86 PetaFLOPs. According to my relatively infinitesimal math skills -okay, not mine, but those of my laptop calculator- it would have taken less than 1.5 hours to perform the required calculations. Even more interestingly, we had not developed a computer that could achieve the 159 Quintillion calculations in 18 hours until 2011, roughly 72 years later.
Needless to say, the sheer acceleration of technology is stunning in the last few years. Remember the hype surrounding Deep Blue vs. Garry Kasparov? It was a pretty big deal that technologists could build a machine that could out maneuver the King of Chess. As the King of AI, Turing would have been quite proud to know that someone finally built a machine that could outsmart human intellect. Sure, the human mathematical mind was no match for a machine in his day, but to devise a programmable decision tree that could calculate all of the possible moves, then make choices that would lead to beating the greatest chess player of all time; that's a big deal. Maybe the famous chess match should have been called Turning vs. Kasparov.
By the way, this famous match happened in 1996, and 1997, ending with Deep Blue as the champ. To put this into perspective, Deep Blue was capable of 11.38 GFLOPs. About 1/3rd the power of my Smart Phone (Galaxy Note 4), and 1/64th the power of today's top Business Class Servers. According to Moore's Law, by 2020 the typical small business can crack the Enigma in less than 9 hours.
Try this one on for size, my laptop sports a now outdated i5 Intel Processor that is capable of roughly 5 times that of Deep Blue... And it's still too slow! Hey Barry, can I have a new laptop please?