[Edu-sig] Cryptonomicon

Kirby Urner pdx4d@teleport.com
Sat, 25 Nov 2000 10:09:40 -0800


I've added some links to my Python-based 
http://www.inetarena.com/~pdx4d/ocn/clubhouse.html
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
below):

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).

Kirby