CSP-889/2900 Emulation


Shortly after USS Pampanito crew was loaned an ECM Mk II in 1996, a Java language program was created to emulate the ECM Mk II (original Java language source code, and how to get obsolete Java running in 2024 by J. Bouchaudy). The program was created primarily to validate our understanding of the machine's algorithm and for researcher's use. Over time Java has become obsolete and getting the original code more difficult to run. In 2024 Steve MacMinn from the USS Slater museum improved the program and got it working on modern browsers.
Click here to open the ECM emulator. (opens in a new window.)
The Javascript source code to this emulator which can be run offline is available at ecmapp2.zip.

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, and fun. This algorithm should not be used for modern cryptography.

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.
Change the CSP 889/CSP 2900 choice to CSP 889. Note on the real machine you must not only avoid the non-functioning middle position, but also a second knob must be changed to match 889 or 2900.
Change the master switch to:

O for Off, not very interesting.
P for Plain text, what you type gets printed.
R for Reset position. Use the 1-5 keys to set the control rotors to a key.
E for Encrypt
D for Decrypt

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.

Also note Joe Dunn created a command line version of the original program: https://github.com/JoeDunnStable/sigaba.

Return to the ECM Mark II page.

 

Copyright © 2006-2024, Maritime Park Association
All Rights Reserved
Legal Notices and Privacy Policy
Version 2.06, 13 May 2024