Friday, March 03, 2006

"Enigma" message cracked!

This is a story that is on the "front page" of yahoo, so this is not exactly a scoop, but it is really interesting. An amateur cryptographer named Stefan Krah and a whole slew of computers broke the German WWII code created using their "Enigma" code machine. The project started January 9th, and the first code was cracked on February 20.

The project was not "Let's guess a billion times and see what happens." Rather, it was a combination of a huge amount of directed knowledge of how the enigma machine works, how the German language (and German naval terms) works, and how in general cryptography works. Then, using this knowledge, Krah created a computer program that then applies this information to try combinations to crack the code.

The program was written to allow for a coordinated effort of many computers to help break the code. This use of multiple, ganged, computers to share the work on a single task is called "distributed computing." The program runs in the background on a computer and works on these programs when the computer is otherwise idle. Since most people these days use their computer for web browsing or writing letters, computers are basically always idle.

For the first several days (up until Feb 10) only ten computers were working on it. Because of the publicity on slashdot and others, the number of participants was 2,500(!). This is a lot of raw power.

Distributed computing is the "wave of the future" except that it is extremely difficult to do. It is hard to coodinate the actions of more than one computer. As a result, we have a computing model where your computer is sitting idle most of the time asking for web pages on a server that is also serving web pages to a large, large number of other people. Your computer is mostly idle. The server is mostly working. There is a discrepency there. Your computer should share some of the load, but it really doesn't.

I do not have the exact numbers, but I am certain that if you were to add up all the
computing power wasted one hour today, that it would be more than all the computing power that existed in all of 1980. That date could even possibly be moved forward to 1990. There are an awful lot of computers out there doing nothing!

Projects like this show the power of this large pool of untapped computing power. Other projects, such as the SETI project, have done similar work of distributing work across a large number of computers.

The real code to crack is how to crack into this sea of unused computing power! Software has to catch up with the advances in processors and communications -- but it will. The sea of raw computing potential out there is like the seas of oil in the ground in 1870 -- lots of potential, but untapped. It will be tapped, and when it is, wow! You think iTunes and Google are cool, just wait!