One of the biggest flaws of Enigma was that a letter couldn’t represent itself because the route through the machine was one-way. I was thinking a quick fix could be to introduce a rotor position that deflected the signal so that nothing would light up - no response would indicate that the letter you just pressed is unchanged. When decrypting, the rotor position should also produce no response and so you know that letter in the message is unchanged.

Would the fix really have been that simple or am I missing something?

  • $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$ – e-sushi Feb 3 '18 at 16:28

There was at least one late Enigma derivative, the Russian M-125 Fialka, that did modify the reflector to allow a letter to encrypt to itself.

Curiously, rather than simply making the cipher alphabet size an odd number (which would've been natural enough for Russian, with its 33-letter Cyrillic alphabet), the designers of the Fialka instead used a rather complicated (and, for its time, advanced) "magic circuit" to replace two wire pairs with a single "plaintext enable" signal (which caused the plaintext input to be output unchanged) and a set of three wires connected to a transistorized "binary rotator" that mapped an input signal on any of the three wires to an output signal on the next wire out of the three, as in (1 → 2, 2 → 3, 3 → 1).

Of course, the magic circuit also meant that the Fialka lacked the self-reciprocal property of the Enigma: encryption and decryption were not (quite) the same operation. Thus, the Fialka also needed an "encrypt" / "decrypt" mode switch that simply swapped two of the three wires going into the magic circuit.

Quite why this feature of the Fialka was implemented in this specific manner is, as far as I'm aware of, not known. One might suspect that the original Enigma-based design of the Fialka, with an even number of letters and an Enigma-style reflector, may have been finalized before someone became aware of the cryptanalytic significance of the Enigma never encrypting a letter to itself, and that this flaw was fixed in a manner that minimized changes to the rest of the design. Or some Russian cipher machine designer might have just been eager to play with fancy new transistor technology.


Another answer would have been to have the keyboard and battery on one side of the rotors and the lightboard on the other. You could run eight wires under the keyboard, with each key coming down to complete a circuit between a different pair of them. So you now have an alphabet of twenty-eight characters assuming the light bulbs don't care which direction electricity runs through them.

Attach your eight wires from the keyboard to any eight of the input contacts. Attach the lights from the lightboard to any eight of the output contacts.
And take the other eighteen output contacts and wire them in any order to the input contacts.

Now any character can encode as itself. And every encryption goes (at least) twice through the rotors because it goes via both of two paths. And on average it probably goes about thirteen times through the rotors before it gets out.

Somebody could have done this with a screwdriver and not very many additional parts, and the reflection and rotor-knowledge attacks would have just died. 'depth' attacks would still have worked, but it would have been way harder.

  • $\begingroup$ Ooops, I misspoke. I said it would probably go through the three rotors about thirteen times, and I should have said probably about five to seven. Two to four loopbacks for each path before escape, on average. You could fiddle the rotor wiring to guarantee some minimum or some maximum, but it wouldn't be much different. $\endgroup$ – Edward. May 11 '18 at 19:14

In answer to your original question? Sort of. You could just map your keyboard to 26 inputs on a 27-position wheel, and map your lightboard to the same 26, and that would do it. The guy who just encoded 'A' then knows that he needs to transmit 'A'.

But in practical terms you don't want a meaningful output that is indistinguishable from a malfunction. 'nothing lights up' is the result produced by a burnt out bulb as well. So you've got to wire that 27th output to something. There were at least a few machines that had a 'Repeat Input' light.

But the guy who just encoded 'A' and knows he needs to transmit 'A' wasn't always the guy doing the transmitting. The guy reading the cipher output and doing the transmitting needed to actually see that 'A' light up. And then you have the fiddly circuit that they built into the Fialka.

  • $\begingroup$ obviously the ideal solution is to modify the machine, however my thinking was that changing the rotors would allow users to use existing Enigma machines untouched. What is a depth attack? $\endgroup$ – Jesse Adam May 11 '18 at 19:50
  • $\begingroup$ A depth attack is when the attackers have more than one message which is enciphered using the same key. Enigma had a small amount of dynamic state and could only encipher about 17K characters on any setting without repeating its state. When Hermann Goerring got going he'd spend almost that much on three messages, and then the entire operating theater, using the same settings for that day, no matter what key they started with, were at a 'depth' somewhere in his messages. And usually each others' too. $\endgroup$ – Edward. May 11 '18 at 19:58
  • $\begingroup$ Interesting. What if when he was close to exhausting the cipherstream, he sent an encrypted starting position (instead of repeating at beginning, setting it to some random starting point?). Were they sending IVs plaintext? $\endgroup$ – Jesse Adam May 11 '18 at 20:34
  • $\begingroup$ It wouldn't help much. Toward the end of the war they were trying aggressively to make it hard, cutting it up into separately-keyed 1000-character chunks. (Just ten typewritten lines). But people still found the depths, patched the sequences and offsets together, and broke it. $\endgroup$ – Edward. May 11 '18 at 20:41
  • $\begingroup$ can you join chat.stackoverflow.com/rooms/170883/enigma $\endgroup$ – Jesse Adam May 11 '18 at 21:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.