-
Notifications
You must be signed in to change notification settings - Fork 0
Simple Substitution Cipher
A simple substitution cipher is a monoalphabetic substitution cipher where there are no repeated letters in the alphabet (meaning it is not a homophonic substitution cipher. Some examples include ROT13, Caesar ciphers with different shifts, etc. as well as general keyed substitutions and substitutions with a completely random alphabet order. Simple substitutions are essentially just a relabeling of the letters of the cipher.
The key property of this kind of cipher is that every particular ciphertext symbol always corresponds to the same plaintext symbol, regardless of where it occurs in a message. This makes the cipher extremely easy to solve, and there are automated solving tools such as AZDecrypt, quipqiup, etc.
Since every ciphertext symbol substitutes for a fixed plaintext symbol, the frequency distribution of the ciphertext is completely unchanged from that of the plaintext, aside from a relabeling of the letters. This makes frequency analysis a very powerful attack vector for simple substitutions. The index of coincidence (IoC) of the ciphertext will be equal to the IoC of the plaintext under a simple substitution, which means it should be fairly high, over 1.6, yet for the eyes it's very low, about 1.06, nearly consistent with that of random data.
The eyes are not a simple substitution cipher.
There is strong evidence against the eyes being a substitution cipher, and against being monoalphabetic in general:
- The frequency distribution is fairly even across 83 symbols, with an IoC far too low for a simple substitution
- 83 symbols is too many for a plaintext alphabet, unless it has a lot of punctuation or something (yes, we've thought of using uppercase and lowercase letters, no, it doesn't make a difference)
-
Lack of doubles is not realistic for a simple substitution, most choices of plaintext will have a double somewhere (there are strategies which can mask them, like insertion of nulls, but insertion of a null would just produce a
A.Apattern, something we also don't see many of in the eyes) - Shared sections use too many distinct ciphertext symbols to be a direct substitution
- Isomorphs are not something that happens with simple substitution ciphers, and are fairly direct evidence that the method used is polyalphabetic
Very commonly, people try to come up with new ways of approaching the eyes that end up being equivalent to monoalphabetic substitution ciphers (if not simple, then homophonic). For example, looking at each trigram's eyes setwise (so that 001 = 010 = 100, 002 = 020 = 200, etc.), trying to use a trigram to build a glyph, adding up the eye directions to land on a point within a diamond region with a symbol on it, etc. What all these methods have in common is that they will always map the same trigram to the same plaintext letter, which is what it means to be monoalphabetic. However, monoalphabetic substitution ciphers have been completely ruled out (fairly early on, really), so these approaches will never be useful. The eyes must be a polyalphabetic cipher method.