Sat, 25 Nov 2000 10:09:40 -0800
I've added some links to my Python-based
including to an URL where Windows users can
download GUI simulators of Enigma machines.
The Sale essay on deciphering the Enigma mentions
how "no letter my encipher to itself" was actually
a weakness of the German system, along with its
bidirectionality, i.e. if A enciphered to J, then
J enciphered to A.
The difference between simple random substitution
ala my clubhouse code algorithm (which allows
self-substitution) and something like Enigma, is
the latter changes the substitution key with each
press of a letter (in the Enigma using a complicate
system of rotors which, like a car odometer,
knocked successive wheels one notch with each
complete revolution of the one before).
Here's some example plaintext and corresponding
ciphertext, from one of the Enigma simulators:
Input (note 5-letter chunking):
AQUIC KBROW NFOXJ UMPED OVERT HELAZ YDOGW WWWWW
WWWWW WWWWW WWWWW WWWWW WWWWW WWWWW WW
Output (note how repeated Ws in the input
nevertheless enciphers to different letters
UVWFP ALDFF FMNML SHZLI GTMXM CISQU EIYED FJORN
OMNRA CZVXL MRBAO JRGRO ZKCAJ NMMLP AO
Also in the news: an Enigma machine stolen from
the Bletchy Park museum was recently recovered,
along with the internal rotors (found separately,
according to newspaper accounts).
Another link shows contains some scans of Turing's
original typed manuscript re the Enigma, plus
there's a virtual tour of Bletchy Park -- all
very reinforcing of the storyline developed by
Neal Stephenson's 'Cryptonomicon', the novel which
originally inspired me to launch this thread.
It's be high feasible to write an Enigma simulator
in Python of course, including with a GUI front
end. But in accordance with my "cave painting"
analogy, I think what's important from a pedagogical
point of view is, on first pass, to give just the
flavor, the essential gist, and then move on to
linked topics (e.g. digital circuit design and
the evolution of computing hardware).