An in-depth analysis of the Zodiac Killer's z340 cipher
Switch branches/tags
Nothing to show
Clone or download
superpumpie Update after feedback
Added Sasja's spiral idea, split readme and terminal commands.
Latest commit 8a85eff Mar 27, 2018


# tsj, mar 18

# The data sets can be found in the various data sets folders. The folder r_code_and_graphs contains the R code for the graphs, which are based on the analyses performed below. The scripts used for the analyss are in the folder scripts. The outcomes of the analyses can be found in the folder output_and_results. The folder other_images contains further images that were not created with R. 

# As to the data sets:

# e_z408.txt is the Zodiac's first cipher, 408 characters long. z340.txt is the Zodiac's unsolved cipher. In e_z340_plusplit.txt, PLUS is randomly split into PLUS and PLUSPLUS, to reduce the frequency of PLUS. In e_z340_noplus.txt, PLUS is omitted. The cipher is cut off after 306 characters to make sure modulo 17 is 0. e_z340_alternating1.txt and e_z340_alternating2.txt split the cipher into two, only taking every other character into account. e_z340_diagonal.txt is z340 read in diagonally. e_340_two_one_1.txt keeps two characters and drops one, same with e_z340_two_one_2.txt and e_z340_two_one_3.txt for the other two seeds.  

# The true ciphers are based on snippets from the following texts. The length of the snippets varies from 306 characters to 459 characters.

# Deletion of spaces and punctuation marks, conversion to capital letter, and slight pruning such that modulo 17 equals 0  is the general procedure for the followings data sets.

# raw_tr_1.txt is the first part of the Zodiac's first known letter, 'the confession'. raw_tr_2.txt is a second excerpt., last accessed 10 Mar 2018. Further conversion as per above. Both files are 306 characters long. 

# raw_tr_3.txt and raw_tr_4.txt are excerpts from the S.B.T.C. letter to John Ramsey., last accessed 19 Mar 2018. I only took a part of the fourth paragraph, to keep the text similar in length to the other texts. Further conversion as per above. Both files are 323 characters long. 

# raw_tr_5.txt and tr_6 are the 'dear boss' letter, commonly attributed to jack the ripper., last accessed 10 Mar 2018. Both files are 340 characters long. 

# raw_tr_7.txt and raw_tr_8.txt are the beginning of the Unabomber's manifesto., last accessed 19 Mar 2018. Both files are 357 characters long. 

# raw_tr_9.txt and raw_tr_10.txt are the beginning of Genesis, taken from, last accessed 19 Mar 2018. Both files are 374 characters long. 

# raw_tr_11.txt and raw_tr_12.txt are from Marx' Das Kapital, taken from, last accessed 19 Mar 2018. Both files are 391 characters long. 

# raw_tr_13.txt and raw_tr_14.txt are the beginning of the Shadow Broker's fifth message, taken from, last accessed 19 Mar 2018. Both files are 408 characters long. 

# raw_tr_15.txt and raw_tr_16.txt are the beginning of the Nano Whitepaper,, last accessed 19 Mar 2018. Both files are 425 characters long. 

# raw_tr_17.txt and raw_tr_18.txt are the beginning of the Declaration of Independence, taken from, last accessed 19 Mar 2018. Both files are 442 characters long. 

# raw_tr_19.txt and raw_tr_20.txt are from the user guide of the Nokia 3310,, last accessed 19 Mar 2018. Both files are 459 characters long. 

# raw_tr_21.txt to raw_tr_24.txt, taken from the Wikipedia article on Charles Manson., last accessed 10 Mar 2018. The article itself can be found in wiki_article.txt. wiki_article_clean.txt is the same article but only containing letters.

# I created four text files containing random words from the Charles Manson article, resulting in raw_rw_'[1,2,3,4]'.txt, using with the command 'python3 wiki_article_clean.txt raw_rw_'[1,2,3,4]'.txt'. 

# raw_z408.txt is the Harden's Solution to z408. The last 18 characters have not been deciphered. I've pruned the last line of the cipher, but kept the final "E" of line 23, so that modulo 17 is also 0. 

# raw_fk_1.txt to raw_fk_24.txt are randomly generated string sequences, observing letter frequency in English. They mirror the lengths of the real texts. 

# raw_tr_three_one_1.txt and raw_tr_three_one_2.txt are like raw_tr_1.txt and raw_tr_2.txt, respectively, with a random letter interspersed at every fourth position. 

# e_z340_spiral.txt was added as per Sasja's feedback. If the cipher had to be read in some kind of spiraling way, e.g. clockwise from the outer edges to the centre, then the previous analyses would not catch this. e_z340_spiral.txt is compared to e_p_z340.txt.

# As to the scripts, descriptions and terminal commands can be found in terminal_commands.txt.