Paul_Averly wrote:... we have software that can solve the 408 in a matter of seconds. People have hammered the 340 with all this great software for years and never cracked it. This would suggest it is not homophonic substitution.
I wanted to address this common misconception. It's seems there is a general assumption that any homophonic substitution can be automatically solved by currently available programs that implement hill-climb algorithms like ZKDecrypto and AZDecrypt. And I'm not talking about carefully crafted plaintext that doesn't have certain common letters (like passages from the novel "Gadsby"), or that has an abundance of rare letters, or a very high, or very low IoC. That's actually not the problem. Or plaintexts in languages other than English, as that's solvable too, obviously. But there is still a way to fool hill-climb algorithm quite easily. Here is an example cipher I've constructed to illustrate this problem. It is a straight homophonic substitution, without any tricks of any kind. Each ciphertext symbol translates to only one plaintext letter, and there are no additional transformations to the plaintext that need to be done to read it:
- Code: Select all
9V[J%:;*S#K&_/$T'_A(
]#4$B)$%a0M$+USP<$`#
W,Q5L1a#Y-$&E2$$F#G3
9$.X:*N/#$_+VW#6J#=;
^C,T0ZD$^#HI`#R7K#>Y
?-P8L^A.^*QEJ4#a#@`#
U1<9#K^B+^,RFL5#a#=`
#S2:;#J$C#>#3<$D#[#9
$PG#6$Q'H7RO#8M#:^A-
^B?/$#X.@(P$*Z=)]C;%
IE[#+]F#^D,A&a#VG'``
_B(4K<)5L0>?1$%$26YH
&QZC9'IEND3FJ@#7^A-(
=#R[/8K)$#:%4L0T]G.>
#_*P^1$B2U[H&$$'IE]#
+[F#^C,(?#;D)b#35YA%
6J<9B&b#C'7K:G/b#$D(
$)8L%HI
It has a fairly normal plaintext too. In fact, it's a passage from one of the Zodiac letters I picked at random. The cipher has the exact number of unique symbols as Z340, and it's slightly longer at 347 letters, so it should be actually easier to solve. Yet, neither ZKDecrypto nor AZDecrypt can crack it at default settings. I've used the highest setting of "keys per cipher" for AZDecrypt and I let ZKDecrypto run for nearly an hour. I can see that it gets close at times, and I can even find a few correct words in the jumble of letters, but I can only see them because I know the plaintext. It is still generally unreadable otherwise (without knowing the plaintext).
It is by no means a clever way of constructing a cipher, and it should actually be fairly clear how I did it after manual analysis, but it does appear to fool automated cracking attempts. I'll post a hint tomorrow, if nobody solves it before then.
EDIT: It appears I misunderstood some of the options of ZKDecrypto, and how to use it in general. So I stand corrected, the cipher above *can* be auto-solved. But definitely not in seconds.
EDIT#2: See this cipher which proved to be truly unsolvable without manual analysis and careful merging of cycles.
