IntroductionI recently had the opportunity to build a beta version of a new kit, the MeinEnigma, a replica of the famous Enigma cipher machine, designed and offered by Peter Sjoberg.
In this, and some future blog posts, I will describe the kit, how it works, assembly of the unit, and the hardware and software behind it.
What Was The Enigma?
The Enigma machines were a series of electro-mechanical encryption devices developed to protect commercial and military communications. Most notably, they were used by Nazi Germany during Word War II.
Due to some weaknesses in the design, as well as procedural flaws in how they were used, the Allied were eventually able to find a way to break the encryption (which had to be done every day as the encryption settings were changed daily), which is believed to have been a significant factor in winning the war. Much of this work was done in England at Bletchley Park by a team that included Alan Turing, someone well known to most computer scientists. This story has been described in many books and documentary films, including the popular 2014 film The Imitation Game.
While as many as 100,000 Enigma machines are believed to have been made, most were destroyed and only a few hundred exist today. An original machine can be worth well over $100,000 and most are in museums. I've personally seen two: one in the Canadian War Museum in Ottawa and another in the Spy Museum in Washington, DC.
That puts a real Enigma machine outside the reach of most collectors or enthusiasts. There are software simulators, but it is more fun to have a device which physically looks and works like the original Enigma machine.
MeinEnigma is an electronic version of an Enigma machine, with a similar size and controls to the original, but using modern electronics rather than mechanical parts to implement the encryption functions.
The design is based around the popular and low-cost Arduino microcontroller, allowing the software to be easily modified by the user. The software is open source and can emulate a number of different models of Enigma machine. As well as the controls on the board, the unit can be controlled through the Arduino's USB serial interface.
It has a similar physical size and controls as the original Enigma machine. It has a 26 alphabetic keys and 26 indicator LEDs as well as four rotatable rotors that are similar to the original Enigma.
It also has a four character alphanumeric LED display with four buttons and a function switch. There is a speaker which is used for sound output, including authentic rotor rotation sounds and speech output for the encoded characters and operating functions.
A buzzer can optionally produce Morse code output (the original encoded Enigma messages were sent by radio using Morse code).
A real-time clock chip with battery backup allows the system to be used as a clock when not in use for encryption.
Like the original Enigma, the front panel features a plugboard with 26 positions and 10 patch cables. It can be powered by 2 AA batteries or from the USB port on the Arduino.
The unit will be sold as a kit that the user assembles. The kit includes all parts and should be buildable by anyone with some basic experience with soldering and identifying components.
It is built on three printed circuit boards (PCBs) that are interconnected by cables.
The kit is planned to be sold in three versions. The SMT version will use all Surface Mount Technology components (with the exception of parts like the Arduino, sound module, and real-time clock). This will require experience with SMD soldering, which is doable by hand using a soldering iron. The TH version will use through-hole components, with three ICs that are only available as SMT parts being already soldered in for you.
A hybrid version be the same as the TH, but the user will need to solder in the three surface mount ICs. This is the version I built. All three versions use the same PCB.
The kit will include several manuals. While this could still change, my understanding is that it will include an Assembly Guide, User's Guide, Enigma History Guide, and a Modification Guide.
There are some other Enigma kits on the market, or that have been offered in the past. They range from electronic versions like the MeinEnigma, to accurate mechanical replicas of the original Enigmas which can sell for tens of thousands of dollars. I haven't personally tried any of them, but this kit offers a number of advantages and nice features, most notably a design which features a similar size and rotors, keyboard, lamps, and plugboard that resemble the original Enigma machines. The Arduino controller makes it very easy to modify the software. It also has support built in for future expansion and user modifications.
I hope as the number of users of this kit expands, a community will form around it to enhance the software, support each other, and find interesting applications for it.
In the next blog post I plan to cover my experience assembling the kit.
References1. MeinEnigma website: http://meinenigma.com
2. Source code: https://github.com/lpaseen/meinEnigma
3. Facebook group: https://www.facebook.com/MeinEnigma
4. Wikipedia article: https://en.wikipedia.org/wiki/Enigma_machine