Hi,
my name is Heiko and I am from germany. I’ve introduced myself a couple of days ago:
http://www.zodiackillersite.com/viewtopic.php?f=20&t=3091.
As stated in the linked topic I’ve implemented a library in python which allows me to test various transposition ideas for Z340. With this library I can pick rows, columns or rects from the original cipher, flip them, rotate them and put them into the transposed cipher. The results are passed to zkdecrypto and AZDecrypt.
My work is based on the assumption that z340 is a transposed clear text with a homophonic layer on top. I know that a lot of people are thinking the same and thus many ideas have been tested multiple times by different people. So it would be great to have some kind of a database of tested ideas.
I wrote some documentation about my current work and the ideas I’ve tested so far. The documentation is nowhere near completed yet since I only described a handful of the ideas I’ve implemented.
Maybe someone has an idea how to create a searchable database or something else which gives us the ability to check which ideas have been tested yet? May my documentation can help? If not, what kind of information I can contribute?
There is another aspect I would like to discuss: A lot of people think that there is something odd with the huge amount of "+" signs in z340. My opinion is that they are maybe some kind of a hint for a transposition. Maybe they form a cross or a square if the cipher is transposed in the intended way. Are there any threads about that idea? To test this idea my library also creates a "plus pattern" for each idea. This is simply a version of the transposed cipher with all letters but the + signs are replaced by a "-". Maybe I will implement a function which creates a bitmap instead of a text file (each + sign will represent a pixel).
Thank you for this great forum!
Largo
Thanks for joining the site, Heiko. We need more people like you.
Maybe someone has an idea how to create a searchable database or something else which gives us the ability to check which ideas have been tested yet? May my documentation can help?
That’s fantastic, and thank you for recognizing that it needs to be done. It would be nice if you preserved your work somehow on this site so that it can be accessed far into the future. Unfortunately the work of other good cryptographers has been lost in the past.
Perhaps a table of contents, an outline with links, or something similar. See the first post for Homophonic Substitution, which is an example of what Jarlve did:
Here is an outline of general concepts, including transposition, most of them experimented with to one degree or another for purposes of identifying possible issues:
There is another aspect I would like to discuss: A lot of people think that there is something odd with the huge amount of "+" signs in z340. My opinion is that they are maybe some kind of a hint for a transposition. Maybe they form a cross or a square if the cipher is transposed in the intended way. Are there any threads about that idea?
That is a good idea. I don’t know if anyone has proposed that before, and perhaps doranchak could answer that question.
Largo, thanks for joining the forum and sharing your ideas! I agree with smokie – we need more people like you.
Maybe someone has an idea how to create a searchable database or something else which gives us the ability to check which ideas have been tested yet? May my documentation can help?
That’s fantastic, and thank you for recognizing that it needs to be done. It would be nice if you preserved your work somehow on this site so that it can be accessed far into the future. Unfortunately the work of other good cryptographers has been lost in the past.
I once tried to track them on my ciphers wiki: http://zodiackillerciphers.com/wiki/ind … variations
However, I did not keep it up to date. Also, recently I have been taking a more methodical "hypothesis testing" approach with transposition schemes. Historically, people have tried many schemes, but I think they have not been strongly ruled out. I’m trying to address that by generating many test ciphers that resemble Z340’s stats and implement suspected schemes. This way, if the test ciphers can be broken but Z340 remains unsolved, the evidence against the specific scheme is stronger. It’s also a way to answer the question: Can a Z340-like cipher be created under this scheme while retaining its interesting statistics (symbol frequency, periodic bigrams, apparent cycling of symbols, pivots, etc)? It’s an extremely tedious process, however.
One of the difficulties is that when considering a hypothesis about Z340, it consists of several assumptions. For example: 1) the plaintext is English, 2) It is written left to right, 3) then transposed, 4) then enciphered, etc. It may be that only one of those assumptions is wrong, which rules out the entire hypothesis. But testing all permutations of the assumptions to identify which one is wrong is a very large task.
So it would really help to uncover some unambiguous clue to narrow the search! I think most of us here regard the period 19/15 bigram repeats and pivots (and possibly the Kasiski spike at shift 78) as possible strong clues into the underlying scheme.
There is another aspect I would like to discuss: A lot of people think that there is something odd with the huge amount of "+" signs in z340. My opinion is that they are maybe some kind of a hint for a transposition. Maybe they form a cross or a square if the cipher is transposed in the intended way. Are there any threads about that idea?
That is a good idea. I don’t know if anyone has proposed that before, and perhaps doranchak could answer that question.
I don’t think I’ve seen that idea discussed before. I do remember discussions about Z340 possibly being a word search or crossword-style layout (the pivots are suggestive of words written vertically and horizontally), with the "+" signs standing for null / filler sections.
Have you looked at the "prime phobia" phenomenon? Perhaps that statistical anomaly is consistent with your suspicions.
Another observation about "+": It is frequently adjacent (in all directions, not just left/right) to the symbol ‘R’. (Source: viewtopic.php?p=39791#p39791). ‘B’ is the 2nd most common symbol in the cipher (12 appearances), but for some reason it is adjacent to only one of the 24 ‘+’ symbols.
Jarlve discovered this one: The average of the position numbers for all occurrences of the ‘+’ symbol is 171, which is only one position from the midpoint of the cipher. This suggests the + symbols are very uniformly distributed throughout the ciphertext. (So it seems to be distributed more randomly than other symbols). He also pointed out that "+" does not cycle well with other symbols.
Hi Largo look forward to collaborating with you on this.
A lot of people think that there is something odd with the huge amount of "+" signs in z340.
Perhaps there is something Odd with "+" in Z340 but I personally am not yet convinced.
The only odd thing I can see is the Prime/Odd Phobia. keeping in mind that Prime and odd are somewhat a similar sample group.
Otherwise I still see it as a single Symbol to char association in the homophonic cipher such as the Q for M at a count of 16 in Z408 set to mislead a frequency attack
the even distribution through out the text is also supportive of this idea. What do you guys think??
Here is a littlebit of my documentation:
https://www.dropbox.com/sh/xlsjup1en6evq2o/AABHmixWHW9rdbWupupSC87sa?dl=0
I hope to download this soon and have a good look thank you for taking the time to document and sharing.
I must admit i am pretty bad for documenting apart from a key point text file.
Regards
Bart
Hi,
thank you for your welcome!
It would be nice if you preserved your work somehow on this site so that it can be accessed far into the future. Unfortunately the work of other good cryptographers has been lost in the past.
Thank you for the links. I will use this thread to document my transposition ideas as shown in those threads. I will post links to a shared dropbox folder which contains the detailed descriptions and all the generated ciphers.
Have you looked at the "prime phobia" phenomenon? Perhaps that statistical anomaly is consistent with your suspicions.
Another observation about "+": It is frequently adjacent (in all directions, not just left/right) to the symbol ‘R’. (Source: viewtopic.php?p=39791#p39791). ‘B’ is the 2nd most common symbol in the cipher (12 appearances), but for some reason it is adjacent to only one of the 24 ‘+’ symbols.
Jarlve discovered this one: The average of the position numbers for all occurrences of the ‘+’ symbol is 171, which is only one position from the midpoint of the cipher. This suggests the + symbols are very uniformly distributed throughout the ciphertext. (So it seems to be distributed more randomly than other symbols). He also pointed out that "+" does not cycle well with other symbols.
I’ve read those threads and find them very interesting. I totally agree that these observations don’t look like coincidence. There are several things on my todo list that have to be tested.
However, I did not keep it up to date. Also, recently I have been taking a more methodical "hypothesis testing" approach with transposition schemes. Historically, people have tried many schemes, but I think they have not been strongly ruled out. I’m trying to address that by generating many test ciphers that resemble Z340’s stats and implement suspected schemes. This way, if the test ciphers can be broken but Z340 remains unsolved, the evidence against the specific scheme is stronger. It’s also a way to answer the question: Can a Z340-like cipher be created under this scheme while retaining its interesting statistics (symbol frequency, periodic bigrams, apparent cycling of symbols, pivots, etc)? It’s an extremely tedious process, however.
One of the difficulties is that when considering a hypothesis about Z340, it consists of several assumptions. For example: 1) the plaintext is English, 2) It is written left to right, 3) then transposed, 4) then enciphered, etc. It may be that only one of those assumptions is wrong, which rules out the entire hypothesis. But testing all permutations of the assumptions to identify which one is wrong is a very large task.
I really like your approach. Unfortunately my approach is not that sophisticated. I just transform my ideas into python code and pass the results to zkdecrypto and azdecrypt. Sometimes I am examine all those interesting statistics and things like the pivots. On the other day I ignore them and just try several schemes. I hope to help to rule out specific transpositions on this way.
Perhaps there is something Odd with "+" in Z340 but I personally am not yet convinced.
Every other day I change my mind about the "+" symbols. There are so many possible solutions…maybe they map to a single letter, maybe it’s a polyphone, maybe a hint, some sort of crossword….or just gibberish. So I keep trying and implement my ideas. But I agree with you…the prime/odd phobia is the most concrete thing on that.
Maybe it is a good idea to keep this thread "clean" and just use it for documentation? I could create an outline with links like described above and keep it up to date. But please give me some time since unfortunately my spare time is very rare
Largo
Here we go:
(By the way … I am using my own transposition with a different mapping of the symbols)
Obvious basics:
Download the generated ciphers: https://www.dropbox.com/sh/kgqfanvm221gbry/AABs8Yy50fVmkbXVZt7GV-WJa?dl=0
Download the generated plus patterns: https://www.dropbox.com/sh/rumkwdd2cep2hto/AACD-McJa620YMgW4WYbf6c1a?dl=0
Rotated the cipher in steps of 90 degrees (flipped / not flipped). There is a total of 8 different permutations.
Example (flip horizontally + rotated 90 degrees):
Original Rearranged ABC LIFC DEF KHEB GHI ADGJ JKL
Odd/Even and prime related transpositions:
Download the generated ciphers: https://www.dropbox.com/sh/ffuwhkc9lz4al1b/AADC46Jm4ELenxw2ZgFnDOdEa?dl=0
Download the generated plus patterns: https://www.dropbox.com/sh/bhu0r8g10egwani/AAAjhCh9gsp6IdHKFOdJC8zia?dl=0
Odd before even / even before odd
Uses all letters on odd positions as first half of the rearranged cipher. Letters on even positions represents the second half. Same for even before odd
Example (odd before even):
Original Rearranged ABABA AAAAA BABAB BBBBB
Undoing odd before even / even before odd
Assuming that the first half of the cipher text represents all the letters on odd positions in the clear text. Second half represents the even positions. Same for even before odd
Example (odd before even):
Original Rearranged AAAAA ABABA BBBBB BABAB
Primes first / primes last
Take all letters at prime positions and use them as the first part of the rearranged cipher. Then take all letters on non prime positions and use them as the second part of the rearranged cipher. Same for the other direction
Example (primes first):
Original Rearranged ABCDE BCEGA FGHIJ DFHIJ
Undoing primes first / primes last
Assuming that the first part of the cipher text represents all the letters on prime positions in the clear text. Second half represents the letters at non-prime positions. Same for the other direction
Example (primes first):
Original Rearranged ABCDE EABFC FGHIJ GDHIJ
Primes only / non-primes only
Use only letters which are at prime positions. Same for non-prime positions
Example (non-primes only):
Original Rearranged ABCDE ADFHI FGHIJ J
Shapes and patterns:
Download the generated ciphers: https://www.dropbox.com/sh/p5pm5foeoa9hx4l/AADNoLOpYhFE8Ega_olXRxgna?dl=0
Download the generated plus patterns: https://www.dropbox.com/sh/e97kv1q0b0b19fw/AABzRvAOukcH3RHGdWWehMA0a?dl=0
Z-Patterns
Maybe Zodiac liked the letter Z so much that he created a pattern to mask valid letters and filler in the cipher text. Imagine a big Z which is put onto the cipher. All letters which are covered by the Z-shape are valid letters, the other ones are filler. The example shows a Z-Pattern with a bar size of four lines. The width of the slash is 6 (calculated by the algorithm automatically). Each letter from z340 which corresponds to a 1 is put into the rearranged cipher. All letters which are corresponding to a 0 are skipped.
In this approach I used Z-Patterns with bar sizes from 3 to 8.
Example:
11111111111111111 11111111111111111 11111111111111111 11111111111111111 00000000000111111 00000000001111110 00000000011111100 00000000111111000 00000001111110000 00000011111100000 00000111111000000 00001111110000000 00011111100000000 00111111000000000 01111110000000000 11111100000000000 11111111111111111 11111111111111111 11111111111111111 11111111111111111
Z-Patterns inverted
Same like the approach above. This time the masks are inverted.
Example:
00000000000000000 00000000000000000 00000000000000000 00000000000000000 11111111111000000 11111111110000001 11111111100000011 11111111000000111 11111110000001111 11111100000011111 11111000000111111 11110000001111111 11100000011111111 11000000111111111 10000001111111111 00000011111111111 00000000000000000 00000000000000000 00000000000000000 00000000000000000
Horizontal stripes:
Download the generated ciphers: https://www.dropbox.com/sh/cc78clahj8k5kie/AADKK2tqgerDaWeRvhyoOdRaa?dl=0
Download the generated plus patterns: https://www.dropbox.com/sh/yo8g378adqpbjza/AAC_xLilnjbuF9jc46A-6V1Ha?dl=0
Dan Olson’s assumption
Dan Olson from FBI assumed that the lower half of the cipher should be placed to the right hand side of the upper one. I’ve extended his approach by applying rotation and/or flipping to both halves. The opposite direction (upper half placed to the right hand side of the lower one) was also tried. There is a total of 32 permutations.
Example:
Original Rearranged AAA AAACCC BBB BBBDDD CCC DDD
Permutation of horizontal stripes
I assume that Zodiac maybe wrote the plaintext in a 17*20 grid, cut it into pieces and stick it together in a different order before applying the homophonic substitution. If he cut it into horizontal stripes (each with the same height) then the most likely sizes would be five stripes with 17*4, four stripes with 17*5 or two stripes 17*10.
The stripes are rearrangend in any possible order and are flipped or rotated. So each stripe can be used unmodified, flipped horizontally, flipped vertically or rotated by 180 degrees. This means that there a four possible variations of each stripe. When cutting the cipher into two, four or five stripes we have a total of 129056 permutations (2! * 4 * 4) + (4! * 4 * 4 * 4 * 4) + (5! * 4 * 4 * 4 * 4 * 4).
No plus patters where created.
Example:
Columnar transpositions:
Download the generated ciphers:
https://www.dropbox.com/sh/cxfuvs23edfj3np/AAC7RDNL088hNMZ8V-r6lwsoa?dl=0
Download the generated plus patterns:
https://www.dropbox.com/sh/i5aiie1t76g07o3/AAC2j8l6uZz2SF1axTuEQJVBa?dl=0
Rearrange columns by indices
Maybe Z rearranged the columns in some way. This approach is based on a list of indices which represents the new order of the columns. The following orders have been tested by now. The most of them represents some kind of patterns.
Tested by now:
2, 1, 0, 5, 4, 3, 8, 7, 6, 11, 10, 9, 14, 13, 12, 16, 15 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12, 16 4, 3, 2, 1, 0, 9, 8, 7, 6, 5, 14, 13, 12, 11, 10, 16, 15 5, 4, 3, 2, 1, 0, 11, 10, 9, 8, 7, 6, 16, 15, 14, 13, 12 0, 16, 1, 15, 2, 14, 3, 13, 4, 12, 5, 11, 6, 10, 7, 9, 8 16, 0, 15, 1, 14, 2, 13, 3, 12, 4, 11, 5, 10, 6, 9, 7, 8 2, 1, 0, 3, 4, 5, 8, 7, 6, 9, 10, 11, 14, 13, 12, 15, 16 0, 1, 2, 5, 4, 3, 6, 7, 8, 11, 10, 9, 12, 13, 14, 16, 15 0, 9, 1, 10, 2, 11, 3, 12, 4, 13, 5, 14, 6, 15, 7, 16, 8 9, 0, 10, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 8 8, 9, 7, 10, 6, 11, 5, 12, 4, 13, 3, 14, 2, 15, 1, 16, 0 9, 8, 10, 7, 11, 6, 12, 5, 13, 4, 14, 3, 15, 2, 16, 1, 0
Example (only a 8*2 „cipher“ to keep the example simple):
Original Order Rearranged ABCDEFGH 52617034 FCGBHADE IJKLMNOP NKOJPILM
Rearrange columns by keywords
Same approach like above but using keywords instead of indices. This is a simplified version of an usual columnar transposition cipher. Only a few keywords have been tested by now.
Tested by now:
MOSTDANGEROUSGAME MOATDANGEROUSGAME BEORIETEMETHHPITI EBEORIETEMETHHPIT ILIKEKILLINGPEOPL IAMARTHURLEEALLEN LEIGHLEIGHLEIGHLE PARADICEANDSLAVES PARADISEANDSLAVES SLAVESANDPARADICE SLAVESANDPARADISE TOSHITOSHITOSHITO ZODIACZODIACZODIA BYFIREBYROPEBYGUN GUNGUNGUNGUNGUNGU ROPEROPEROPEROPER FIREFIREFIREFIREF KNIFEKNIFEKNIFEKN
Example (only a 8*2 „cipher“ to keep the example simple):
Keyword: Rolling
Alphabetical order of keyword: 7634251
Original Keyword Rearranged ROCKING ROLLING GNCKOIR GUITARS SRITUAG
Skipping letters, rows or columns:
Download the generated ciphers:
https://www.dropbox.com/sh/e2ch7v50v4bzl6m/AADnEpwdyBok-GlHOL20zL3sa?dl=0
Download the generated plus patters:
https://www.dropbox.com/sh/tce7ixudy3ynuco/AADU23XHMRCdznpqc9fZBIoXa?dl=0
TODO: Upload 75264 permutations (ciphers) of skipping column test
TODO: Upload 162220 permutations (ciphers) of skipping symbols test
Skipping each Nth letter
Assuming that Z used some letters as useless filler to confuse people. This approach removes each Nth letter from the cipher where N reaches from 3 to 20 (starting by letter 0 or letter N)
Example:
Assumed original plaintext: Spiked with fillers: Result: ILIKECHILLING #ILI#KEC#HIL#LIN#G ILIKECHILLING
Skipping chunks of letters
Same as above but skipping two or more letters. Filler lengths from 2 to 5 letters and valid text length from 2 to 20 are tested (152 permutations)
Example:
Assumed original plaintext: Spiked with fillers: Result: ILIKEGRILLING ###ILIK###KEGR###ILLI###NG ILIKEGRILLING (Resulting file would be named „remove_filler_chunks_lf_3_lv_4_filler_first.txt“. „lf“ means „length filler“, „lv“ means „length valid letters“)
Skipping columns (different reading directions)
This approach assumes that at least one column is a filler which containts gibberish. The number of omitted columns ranges from 1 to 5 and all permutations are tested. The „cleaned“ cipher is rotated/flipped so that all possible reading directions are taken into account.
I have also tested variations which assume that the cipher was rotated 90 degrees before the columns (respective rows) were skipped. The number of permutations is higher since now the binomian coefficient is [20, 5] instead of [17, 5].
This test created 75264 different ciphers which were tried to solve by AZDecrypt. No solution was found
Skipping cipher symbols
Maybe some cipher symbols are used as fillers. To reduce the amount of possible permutations this test only removes symbols which occur at least 4 times (45 symbols total). I have tested from 1-4 filler symbols. This makes a total amount of 164.220 permutations.
Way transpositions:
Download the generated ciphers:
https://www.dropbox.com/sh/tfz6tlq9tem63th/AAABORf3ydHjx0_xAT4lvo2ja?dl=0
Download the generated plus patters:
https://www.dropbox.com/sh/hjhykvdfzewyogy/AAA4p90cNKjYlkXPEPnUEPH5a?dl=0
Snake route
This approach untransposes the cipher using snake routes. All 8 possible variations are generated
Example (Snake beginns bottom left):
Cipher: Rearranged ABCDE UPKFA FGHIJ BGLQV KLMNO WRMHC PQRST DINSX UVWXY YTOJE
Placeholder for further documentation
Done, but not documented yet:
– Mixing upper and lower halfes
– Garden fence in various variations
– Shifting columns
– Shifting rows
– (Undoing) diagonal transpositions
– Diamond shape
– Various route transpositions
Placeholder for further documentation
Placeholder for further documentation
Placeholder for further documentation
Thank you very much for posting these! Your ideas are very compelling, and it would be interesting to generate test ciphers (with known plaintexts) under some of these schemes to see how they behave statistically compared to Z340.
Here is my post related to documenting tested ideas: viewtopic.php?f=81&t=3108
I eventually would like to incorporate some of your ideas into my test cipher generation process, since it is well suited at producing Z340-like ciphers under different schemes. It takes a long time, though!
Here is my post related to documenting tested ideas: viewtopic.php?f=81&t=3108
Wow, your webtool is great! I like the fast and clear way to visualize statistics. The new article on your wiki page is very useful.
I eventually would like to incorporate some of your ideas into my test cipher generation process, since it is well suited at producing Z340-like ciphers under different schemes
That would be great. I have a tool for generating test ciphers too, but it is not so well suited as yours. It just takes a plaintext and generate a homophonic substition from a given set of cipher symbols. I am looking forward to see your results.
What do you think about a section which lists hypothesis which renders z340 probably unsolvable? I started a list a couple of weeks ago (also with the assumption that z340 is a homophonic substituion of an english text):
- – Too much polyphones
– Double columnar transposition with long keywords
– One time pad (statistics indicate that this is not the case)
– Filler of arbitrary length after each word
– Sporadic fake parts whereas the valid parts are too short
– Crossword puzzle
– Different keys whereas the enciphered parts are too short[/list:u:7yt4zt9c]
Edit: Added new documentation to this thread:
- – Skipping letters / chunks of letters)
– Way transpositions[/list:u:7yt4zt9c]
PS: If my english is a bit confusing please feel free to ask what my gibberish means =)
Update:
Tried 75264 (!) new permutations by removing columns and rows. Refer this posting, section "Skipping letters, rows or columns – Skipping columns (different reading directions)" for more details.
Hi Largo..
welcome especially as you deal with the cipher AND Python.
There is already some info regarding some Python results (use search func) and have I written a working tool to check certain passages of the cipher with a dictionary etc. There also was some Bernoulli analysis which delivered L and S as a candidate for the + symbol. The tool uses an aho-corasick algorithm, too.
Personally I do not believe in any transposition or so..the complexity of the 340 is way higher than of the 408 (less letters, more symbols). Hard enough to crack it as it is..so no use for transposition, imo. Also Z had never used such a technique, he rather was the homophone substitution guy..besides that, transposition would require alphabetical letters, however Z had used symbols..so if you perform any kind of (even successful) transposition, a list of symbols is what you get.
You may find these threads interesting:
viewtopic.php?f=81&t=907&hilit=+PARTIALLY
viewtopic.php?f=81&t=2856&hilit=Bernoulli
QT
*ZODIACHRONOLOGY*