ChaoCipher was a rotor cipher invented in 1918 by John Byrne but kept secret by him. Just recently, the Byrne family has donated his papers and work to the National Cryptologic Museum (a fascinating place - you can even use an old Cray as a couch ala Sneakers), and with some work Moshe Rubin has figured out the full system and described it in a new paper.
I woke up around 4:30 this morning and had a little time to kill, so I whipped up a quick implementation of the ChaoCipher in Python. It's quite a bit shorter than the Perl implementation given in the appendix of Moshe's paper, though it doesn't do file I/O; it just encrypts and then decrypts the example given in the paper to verify that things seem to be working OK. I'm sure the current implementation could be made somewhat faster by avoiding list manipulation and instead moving the zenith and nadir points, though some swapping and moving seems unavoidable.
The key consists of a pair of permutations on the 26 character alphabet - that's roughly a 90 bit key! I wonder if there were key length export restrictions in place in 1918...
Posted 2010/07/08 in crypto; no comments