Evolve the order of rearranged columns
Yesterday I dug out some old source code for genetic algorithms and experimented a bit with it. If you are not familiar with genetic algorithms you may have a look at this link:
https://en.wikipedia.org/wiki/Genetic_algorithm
Some people think that Z maybe just rearranged the columns to make the cipher harder to crack. We all know that it is not possible to brute force all 17! (355.687.428.096.000) possibilities. If Z rearranged the columns *after* he applied a cyclic homophonic substitution to the plaintext it should be possible to recover the original order of the columns. So I tried to evolve the original order by using a fitness function which calculates the "cyclic score". To determine how cyclic a specific solution is I used Jarlves method which he has described in the following document:
https://docs.google.com/document/d/1LnQy1fiyxHs95jK-25GerTDuoQqqZt70reYw1zSYfhg/mobilebasic?pli=1
Obviously I have not found the solution to z340 but I don't want to give up this idea. I am not sure if Jarlves method works in every case since I have created some test cases with z408. When I rearrange some columns in z408 and calculate the cyclic score then sometimes I get a higher score than with the original version. Maybe there is a bug in my implementation or maybe Jarlves method does not work in every case.
Does anyone knows other methods to determine how cyclic a specific homophonic substitution is? Has anyone encountered same problems with the method described in the link above? I hope that my code can "break" test ciphers with rearranged columns soon.
https://en.wikipedia.org/wiki/Genetic_algorithm
Some people think that Z maybe just rearranged the columns to make the cipher harder to crack. We all know that it is not possible to brute force all 17! (355.687.428.096.000) possibilities. If Z rearranged the columns *after* he applied a cyclic homophonic substitution to the plaintext it should be possible to recover the original order of the columns. So I tried to evolve the original order by using a fitness function which calculates the "cyclic score". To determine how cyclic a specific solution is I used Jarlves method which he has described in the following document:
https://docs.google.com/document/d/1LnQy1fiyxHs95jK-25GerTDuoQqqZt70reYw1zSYfhg/mobilebasic?pli=1
Obviously I have not found the solution to z340 but I don't want to give up this idea. I am not sure if Jarlves method works in every case since I have created some test cases with z408. When I rearrange some columns in z408 and calculate the cyclic score then sometimes I get a higher score than with the original version. Maybe there is a bug in my implementation or maybe Jarlves method does not work in every case.
Does anyone knows other methods to determine how cyclic a specific homophonic substitution is? Has anyone encountered same problems with the method described in the link above? I hope that my code can "break" test ciphers with rearranged columns soon.