(Free Sun Java download.)
The Java language source code to ECM Applet. The beginning of the source also lists any known bugs, planned changes, etc.
This program emulates the operation of an ECM Mark II model CSP 889/2900 (a.k.a. SIGABA). More information on this machine may be found on the ECM Mark II page. This program and its source code are provided for the benefit of cryptologic history researchers, it is not recommended that this algorithm be used for modern cryptography.
Also note that Geoff Sullivan has written a Windows based simulation that has better aesthetics and the same algorithm, take a look at: http://www.hut-six.co.uk/, Joe Dunn created a command line version: https://github.com/JoeDunnStable/sigaba.
To properly encrypt or decrypt you really need to have keying instructions. For example, CSP-1100 ECM Instructions, or SIGABA instructions. The short note below will allow you to see how the machine operates:
Change the Zeroize/Operate choice to Operate. Note the non-functional
middle position mimics the middle position of the real machine. The controls
of this program do not look like the controls on the real machine, but
they work the same. This includes many of the oddities of the real machine
that could cause accidental errors, slow you down, etc.
O for Off, not very interesting.
Note on the real machine the master switch is a rotary switch that does not allow moving from P to E without first passing R. If you want the behavior of this program to most closely match the real machine, use the control in such a way that you stop at each item in the control when moving between items.
Zeroizing Rotors Change the Zeroize/Operate choice to Zeroize and the Master Switch to R (reset). Then repeatedly press the Blank key until all the cipher and control rotors are O.
This program allows you to simulate manually rotating the rotors by editing the rotor position displays. You must press return after you change any position. If you do not enter a valid set of positions, default (zeroized) values will be filled in.
The real machine does not have a Tear Tape button, this is provided as a convenience to computer operators. The tape cannot be modified, but it can be copied to the clipboard.
The RPT (repeat) button is not implemented in this version of the program.
The rotors used are hardwired in the source code. This is the equivalent
of having only one rotor set and was true during most of the war. The order
of the rotors maybe be selected with Applet parameters. An example is in
this html page:
Anyone interested in helping to improve the user interface is especially invited to drop us a note.
Return to the ECM Mark II page.