Enigma@Home
Enigma@Home is a wrapper between BOINC and Stefan Krah's M4 Project.
'The M4 Project is an effort to break 3 original Enigma messages with the help of distributed computing. The signals were intercepted in the North Atlantic in 1942 and are believed to be unbroken.'
Method
The method in question is a ciphertext-only attack. This means that we don't need bits of guessed/known plaintext for a successful decryption.
The most simple ciphertext-only attack would use brute force. You would take every possible key, decrypt the message, and determine the likelihood of the resulting candidate plaintext. The enigma key space is too large for this approach.
The method used here is a mixture of brute force and a hill climbing algorithm:
The program iterates through all possible machine settings except the plugboard settings. This is a major shortcut since the plugboard settings form a huge portion of the key space. For each of these machine settings the program uses a hill climbing algorithm to find the optimal plugboard settings.
Hill climbing algorithms try to optimize an object, in this case the plugboard settings, by changing the object step by step. After each change the "goodness" or "fitness" of the new object has to be determined by a scoring function. Changes that lead to a "better" object are retained.
Here the changes lie in constantly trying out new wirings of the Enigma plugboard. After each change the scoring function tests a new wiring by deciphering the message and trying to determine how closely the resulting plaintext matches the statistics of the natural language. The scoring function uses Sinkov Statistics.
Hardware requirements
- Pentium or better CPU
- 32MB RAM
- 5MB free HD space

