Skip to content

Isomorphic Cipher Hierarchy

Lymm edited this page Nov 18, 2025 · 4 revisions

We can think of the space of ciphers that produce isomorphs as a hierarchy. At the largest level are the ciphers that just produce isomorphs in general, which we call isomorphic ciphers. Within this space, there is a region of perfectly isomorphic ciphers. Within this are the group autokey (GAK) ciphers. Within this are the group ciphertext-autokey ciphers, which can be divided into regions for commutative and non-commutative groups. Within the commutative group-ciphertext autokey region, there is the smallest region in the hierarchy, the (classical) ciphertext-autokey (CTAK) ciphers, corresponding to cyclic groups.

Stated succinctly:

CTAK < GCTAK < GAK < Perfectly Isomorphic < Isomorphic

(It's currently unknown whether extended group-autokey (XGAK) covers all perfectly isomorphic ciphers, but it's definitely known that GAK < XGAK ≤ Perfectly Isomorphic.)

(It's also known that non-associative extensions of GCTAK/GAK based on loops and quasigroups end up not being perfectly isomorphic, this was proven.)

This categorization is very general, and doesn't only apply to the eyes or ciphers like them. For example, ciphers with 83 CT symbols are a tiny slice out of this entire space, spanning each of the regions (well, sort of, there are no non-commutative group-ciphertext autokey ciphers with 83 CT symbols because 83 is prime, so really there's a section of the CTAK region and a larger section of the GAK region).

For the eyes, we've used this hierarchy to narrow down the space of possibilities of valid ciphers. A quick overview of the progress on that is given by this Venn diagram.

  • The presence of many significant isomorphs allows us to rule out all non-isomorphic ciphers outside of this hierarchy entirely (which includes things like keyed Vigenere).
  • CTAK ciphers are ruled out because they do not produce chaining conflicts. In this hierarchy, all ciphers outside of the region of commutative GCTAK produce chaining conflicts.
  • GCTAK ciphers are ruled out because there are no GCTAK ciphers with 83 CT symbols. This is because 83 is prime, so the only group of order 83 is cyclic, which corresponds to a CTAK mechanism.
  • Based on the transitivity restriction, there are 6 groups which can be used for GAK with 83 CT symbols. Of these, the cyclic one was already ruled out as mentioned above.
  • The dihedral case (with a hidden subgroup size of 2) has also been directly ruled out based on implied orders of elements in the main isomorphs.
  • The AGL cases with hidden subgroup size of 41 and 82 have not been ruled out, and are the only remaining candidates that could reasonably be brute-forced. However, the message starts require some special exception for them to work with this group, like that every message starts with a different initial state and they are fine-tuned to return to the same state after the first character, or that the first character is not directly part of the message and instead acts as a checksum/identifier or is otherwise ignored somehow.
  • The remaining GAK cases of the alternating and symmetric are essentially deck ciphers with 83 cards and any permutations allowed for the plaintext actions. This is completely unreasonable to brute-force search the entire space, but there is some evidence that the permutations involved could be relatively simple. This method is also able to explain the message starts without any special considerations, because the large size of the hidden subgroup allows for a kind of delayed hidden state effect.
  • Aside from the GAK ciphers which are still possible options, it's also possible that the eyes are some other perfectly isomorphic cipher (e.g. XGAK) or even an imperfectly isomorphic cipher, if the imperfection is small enough. We don't currently have any good candidates for imperfectly isomorphic ciphers that fit the eyes though.

Clone this wiki locally