Monday, April 1, 2019

Programming Doodle -- Enigma Emulator

I've revived this blog to track some general programming projects I've been playing with. This was inspired by watching Code Bullet's Youtube posting on creating an Enigma Machine emulator.

I decided to code my own in Python and looked around the web for further documentation on the structure of the Enigma machines. This is based on several online articles on the subject, though I'll admit that most of the code is heavily "inspired" (i.e. algorithms are pretty much copied) from the work of Harald Schmidl. While Code Bullet's implementation is impressive for its nice UI and rapid development, there are some discrepancies between it and other emulators out there.

I also found this emulator to be a good way to test my implementation, though I have no way to prove that anything I've coded is actually historically accurate to the original machine.

The code is here on github:
https://github.com/eric-lindberg/enigma-emulator