Matheus Portela

Enigma details: it's all about wires and electrical signals - Day 6 #100DaysOfCode

Today was a tough day understanding little details on Enigma rotors and their stepping system. I wanted to know how exactly this machine worked on communicating letter signals from the keyboard to the plugboard, rotors, the reflector, rotors again, and finally the lampboard.

Enigma is an electromechanical machine with electrical signals and mechanical parts that actually move, rotate, etc. Enigma’s keyboard is similar to a computer keyboard: when pressing a key, a contact plugs the power source to the electrical circuit. This produces a current that travels through the entire machine.

One of the first questions I had was how Enigma distinguishes two letters in its circuit. It’s quite simple: every component has 26 wires corresponding to alphabet letters. A letter being encoded is just a matter of one current jumping from wire to wire, starting from the keyboard until reaching the lampboard.

Rotors are quite remarkable in their engineering. One side has flat contacts while the other has pins, made of conductor material, connecting the output of one rotor to the input of another.

Their encoding tables are defined by scrambling the wirings going from pin contacts to the flat ones.

Now, when one rotor steps, the rotation simply slides the input/output connections. As a side-effect, this simple mechanical procedure changes the current encoding.

The first military Enigma model had 5 rotors available, with different wiring tables built in their scrambled wiring structure. They where named in Roman numbers - I, II, III, IV, and V - and where visible in the pin contacts side of the rotor.

Now, setting up an Enigma machine is just a matter of choosing the right rotor models, placing them in the correct order and positioning, and connecting the appropriate plugs in the plugboard.

The following video is a really didactic presentation on the inner workings of Enigma. I highly recommend watching it in order to get deeper knowledge on the machine.

Are you feeling like finally connecting the pieces of Enigma’s puzzle? If so, get in contact with me via my twitter account @matheusvportela. Also follow my GitHub repository and check my developments on the Enigma simulator in JavaScript.