I don’t know any hard numbers for the Enigma system, so let’s make some assumptions.
First, let’s assume that the mechanism for the code was known. This could be deduced from the capture of a single Enigma machine (encoder or decoder, if there’s a difference). You should never rely on your opponent being ignorant of your encoding scheme, for this and other reasons.
Second, I’ll assume that the modern-day Nazis (or whoever’s sending the messages we want to crack) is following the custom of repeating the message.
Third, I’ll assume that the repeated message is approximately 1000 characters long.
Fourth, I assume that given the key and the encoded text, one could reproduce the plaintext with no further information.
Fifth, I’ll assume that the alphabet for Enigma consisted of 36 characters (26 letters and 10 digits).
Sixth, I’ll assume, given the examples of “CILLIE”, “HITLER”, and “BERLIN”, that the keyspace consisted of six-character words.
And seventh, I’ll assume that each character in a message would require a small number of basic operations to decrypt.
Now, then. The simplest method of attack would be to systematically test every possible key, and look for one which duplicates the message. There are 36[sup]6[/sup] different keys, or 2.18 billion. For each key, I’ll have to decrypt the entire first copy of the message, but it’ll quickly become apparent if the second message is not a copy after only a few characters, so I’ll only need to decrypt just over 1000 characters on average. And I’ll be conservative and say that it takes 3 clock cycles per character (though most modern processors can do several basic operations per clock cycle). This comes to 6.53*10[sup]12[/sup] clock cycles. Assuming a 2 GHz processor, this is less than an hour.
Now consider: First of all, the average time will be half of this, since sometimes you’ll find the right key more quickly than others. Second, this algorithm will parallelize very smoothly (just divide up the keyspace between your computers), so if you have two computers, it’d be a maximum of half an hour, ten computers will be a maximum of six minutes, sixty computers would take less than one minute, etc. Third, this is a very simplistic algorithm, and you could speed it up in a number of ways (searching German words first in the keyspace, checking for German words as opposed to gibberish in the plaintext candidate, etc., as well as any special tricks which might be made possible by a detailed understanding of the code). And an hour is probably not too shabby, anyway.