6
$\begingroup$

This seems like an obvious question but I haven't been able to find it, so here goes:

Enigma is based on an alphabet of A-Z (26 characters); obviously this directly affects message content (e.g. numbers would be specified using their names one, four, two, etc) and it also has a direct bearing on the number of possible permutations (crypto strength).

Would increasing the alphabet of the rotors (e.g. to A-Z, 0-9, and a selection of special characters) increase crypto strength? I know it would increase the number of possible permutations but I'm not sure if that would introduce some kind of weakness.

Update (additional context)

I'm building a "for fun" software implementation of Enigma, in C# - currently as a UWP application that will run on any Windows 10 device (including phones). It will include implementations of a few of the real-world historical Enigmas (I, M3, M4) as well as the ability to take "extended" Enigmas where you can create your own rotor sets with any number of rotors, including new wiring's and character sets (i.e. beyond A-Z).

Based on feedback provided adding additional characters could be dangerous.
I was thinking that for an 'extended' implementation you might want to include 0-9 and some special characters commonly used these days (such as : /). I guess one motivation for this was convenience. Of course given the flexibility of modern computing I guess I'd be better off allowing the user to input "convenience-plain-text" such as "HTTP : //WWW" transform it to "standard enigma A-Z plain-text" "HTTPCOLONBACKSLASHBACKSLASHWWW" then encipher it, and possibly perform the reverse at the other end. Maybe that's the basis of further questions another time.

Update - 28-July-2017

Based on this Q&A I can now actually measure the increase in key-size for enigma like systems; whilst expanding the supported character set does increase the key size, adding additional rotors increases it by significantly more (notwithstanding the other issues that affect the overall crypto-strength of enigma).

$\endgroup$
  • 1
    $\begingroup$ Adding unused plaintext characters sounds dangerous. $\endgroup$ – CodesInChaos Jul 15 '16 at 7:19
  • $\begingroup$ Interesting - where would I start in learning more about those dangers? (i.e. do you know of any good references, or search terms for learning more?) $\endgroup$ – Adrian K Jul 15 '16 at 19:59
  • 1
    $\begingroup$ It's just a feeling. Considering Enigma is already vulnerable to known plaintext attacks, giving the attacker the information that certain symbols will never be used feels dangerous. It feels more dangerous than the weakness that enigma never encrypts letters to themselves, and that weakness was used in attacks. $\endgroup$ – CodesInChaos Jul 15 '16 at 21:10
  • $\begingroup$ Thanks. In the context of a "for fun" implementation of Enigma I was pondering the addition of characters beyond A-Z, i.e ones that I might want to type into a message (for convenience) such as : / or numbers. I can appreciate they would be used - but not as much, potentially leading to a weakness. See question for an additional comment. $\endgroup$ – Adrian K Jul 15 '16 at 22:47
2
$\begingroup$

Does adding more characters to the (Enigma) rotors improve crypto strength?

Not really… since the weaknesses of Enigma go well beyond the count of chars per wheel!

Of course you could – theoretically – think of using very big (read: huge) wheels with an insane char range. But, when looking at the “time” and “resources” you would need to invest each time you’ld merely wanted to encrypt and decrypt things with such a beast, it simply wouldn’t make much sense. Modern ciphers already blow Enigma out of the water in terms of speed, cryptographic-strength, etc.

Differently stated: the gain you would achieve by adding chars won’t be big enough to level-up good old Enigma into the realms of more recent and better preforming algos (like , , et al).

Also, as CodesInChaos already hinted in his comment, it would put you on a very slippery road with a good chance that you’ll end up introducing additional attack vectors. In a worst case, you could break one of the stronger parts of Enigma while ignoring the real cryptographic weaknesses that already come with Enigma; which would result in something like a (let’s just call it) cryptographic nightmare.

Yet, don’t get me wrong: for something like a non-public “student project” with the goal to have a truckload of chances to shape your cryptanalytic abilities… this could be fun to fiddle with and maybe worth thinking about for a minute. But if you do, you better be prepared to notice you’ll need to fix a whole truckload of nasty little issues related to Enigma. Simply increasing the char count will not do it.

$\endgroup$
  • $\begingroup$ Yes, my question does stem from a hobby project I have on the go at the moment. Can you shed any light (in a general sense) on what these additional attack vectors are likely to be? $\endgroup$ – Adrian K Jul 15 '16 at 20:02
  • $\begingroup$ @AdrianK Too many to name as it depends on the individual scenario (what is changed where and which changes combine into problems)… too many potential combinations. If this isn’t your first cryptanalysis: start out by taking a practical look at Enigma problems already identified by the crypto community – see that other answer I mentioned. Playing with those, you have a good chance to get a “feel” for the algorithm, its original limitations, and things like the original wiring issues et al. $\endgroup$ – e-sushi Jul 15 '16 at 20:38
  • 1
    $\begingroup$ @AdrianK If – on the other hand – this is your first shot at cryptanalysis and/or algorithm design, I would rather recommend to start out with simpler algos (classic ciphers) and later proceed to analyzing so called “toy ciphers” (which are simplifications of full-fledged algos – which greatly help you to practically grasp the basics of things like “slide attacks”, “exploiting bias”, and all the other attack glory every crypto algo has to endure without breaking apart). $\endgroup$ – e-sushi Jul 15 '16 at 20:51

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.