YASE 3.04 ----------------------------------------------- --------- Windows and Linux Versions ---------- ----------------------------------------------- There are two versions of the program, one each for Windows and Linux. The Windows version has been tested on Win10, and Win11. The Linux version has been tested on Ubuntu 18.04 and 20.04. Each version is a complete package ready to run when installed and does not require the installation of any additional software. Windows version: YASE_3.04_win64_setup.exe Linux version: YASE_3.04_Linux_install There is an SHA-256 hash file that you can use to verify the integrity of any copy of either of the installation files. ----------------------------------------------- ----------- Installation on Windows ----------- ----------------------------------------------- The Windows version is a standard Windows installation '.exe', built using Inno Setup. (Just like a normal software installation except there is no "End User License Agreement".) It uses the lowest privileges and is designed for a single user install under Windows. Do not run the install using 'run as Administrator', as this is not necessary. Just download the package and execute it by double-clicking on it in a file explorer window, or by executing it at a command prompt. The package was assembled using 'pyinstaller' version 4.5 ----------------------------------------------- ----------- Installation on Linux ------------- ----------------------------------------------- The Linux version is a self-extracting archive, built with 'makeself'. The Linux version can be executed in any directory under which he will create a 'YASE' subdirectory containing the program. In that subdirectory will be an executable 'YASE' file which starts the program. (Depending on your system settings, you may have to make the install package 'executable' by issuing 'chmod +x YASE_3.04_Linux_install'.) If you wish to add the program as an item on your Linux task bar or create a launcher, there's a PNG icon in the 'YASE/resource' directory you can use: YASE/resource/YASE_sigabaicon.png The package was assembled using 'pyinstaller' version 4.5.0. ---------------------------------------------------- --------------- Uninstall on Windows --------------- ---------------------------------------------------- To uninstall the Windows version in Windows 7, go to 'Control Panel'->'Programs and Features' and right click on the 'YASE' entry and click 'uninstall.' On Windows-10/11 you can remove it by searching for 'Apps' and scrolling down, clicking on its entry, and selecting 'Uninstall.' (Standard Windows uninstall procedure in all versions.) Note: On Windows, any files you create or modify within the YASE directory tree will remain after the uninstall runs. The runtime executable files and all other files will be gone but any files you modified or created will remain. As a result, part of the directory tree may remain, holding only the files created/modified by you. You can just delete the root YASE directory to remove these. This is standard behavior in all Windows installation/setup packagers to prevent removal of any files not in the program's manifest or files in the manifest whose timestamps are different, i.e. file was modified. This is the reason for "some files could not be deleted..." message you get sometimes when uninstalling Windows applications. If a file doesn't match the manifest, the uninstaller will not remove it. ---------------------------------------------------- --------------- Uninstall on Linux --------------- ---------------------------------------------------- To uninstall the Linux version, just do 'rm -r YASE', i.e. remove the root directory and all subdirectories. ------------------------------------------- --------------- Directories --------------- ------------------------------------------- The directory structure is: YASE resource config text docs _internal (Windows only) YASE - Root directory containing all the run-time modules and executables in Linux, and just the executables on Windows. Don't delete anything from this directory. resource - Contains fonts, images, Help.html, etc. needed by the program. Don't delete anything from this directory. config - Contains YASE.ini and some sample keys and wirings. You can read/write in this directory but don't modify YASE.ini with an editor as this may cause the YASE.ini file to be unreadable by the program. text - Contains sample text you can use to encrypt/decrypt and some sample keys and wirings. You can read/write in this directory safely. docs - Contains information PDF's (all are public domain documents). You can delete any of these documents you don't want to keep, as some are fairly large. _internal - This only exists on Windows installations. It's where the run-time modules are kept on Windows. Don't write or modify anything here. ------------------------------------------- ------------------- Help ------------------ ------------------------------------------- The Help file (Help button) has complete instructions on the program's use. It is located on the left side of the center buttons and contains a red cross. The help file is just a local HTML file in the /resource directory. It will be displayed in your default browser when the 'Help' button is clicked --------------------------------------------------- --------------- For your information -------------- --------------------------------------------------- Just for initial information, the following is an excerpt from the Help file: "If you just installed this thing... Just click the 'Resume' button. The package is set up to be ready to encrypt some text. (The text is an excerpt from David Kahn's 2002 speech at the NSA.) After a short spell, try clicking the 'Pause', 'Cycle', and 'Resume' buttons. Also, try the 'Status' button. The buttons (and other widgets) have 'tool-tips' you can read by hovering your cursor over them for a few seconds. Pause the machine and read some of them. Come back to this help dialog in a few minutes and when you return here you can jump to the Screen Contents and Basic Operation sections for more details. (Note: You can turn the tool-tips off by unchecking the box in the upper right corner.)" "YASE - Yet Another SIGABA Emulator" "This program and its coterie of required modules is a "functional" emulator (and not a game-like simulator) of the SIGABA encryption machine of World War II vintage. If you are reading this you probably have some knowledge of the machine and its history and I won't try to add much to that. (A PDF titled "The SIGABA/ECM II Cipher Machine: A Beautiful Idea" is in the /docs directory and well worth the read. There's a link at the end of this document.) By "functional" I mean that this emulator tries to show what's happening "under the covers" while the contraption operates. It tries to show the extraordinary randomness of SIGABA's method of operation which has made it nearly unbreakable, even today. The complex interaction of the main components of this machine (the three sets of rotors), can only be described as "anti-poetry in motion." I wrote this code to try and give the user a flavor of the complexity and cleverness of this electromechanical masterpiece and not to try and create a semi-realistic, arcade-like experience. (I lack the skills for that.) I hope this software will enable you to appreciate the machine's true awesomeness." I also wanted to show something of the "process" required to communicate adequately using only upper case letters. The infrastructure that accomplished this was made up mostly of code clerks. They were well trained but low in rank. They were the "foot soldiers" of vital radio communication in World War II, wherein thousands of messages were sent and received daily. Note that there is no working SIGABA in existence with which to compare the output of this emulator. Documentation is both lacking and what exists is ambiguous. There is enough documentation to know HOW it worked but not enough to be sure of the exact wiring runs, for example. Also, the available literature (from the NSA, wartime operating manuals, academic papers, etc.) are often directly conflicting. Nevertheless, the methods used in the design and building of the SIGABA show clearly why it was cryptographically brilliant. ---------------------------------------- Steve Baggett