A New 340 Solution

Introduction Method Solution Resources

Tools provided by others

Zkdecrypto-lite Zkdecrypto-lite is one of the most amazing tools I have ever seen. It will almost instantly solve homophonic ciphers. You just won't believe this tool. Includes many famous ciphers. A more extensive description is here.

A selection of Linux distributions; I didn't include Ubuntu, since I linked to it elsewhere. Your distro will include OpenOffice or LibreOffice, R, bash, Perl, and other needful tools.


Things from me

Here's a sample bash script to run zkdecrypto-lite in batch mode on the restricted 340 cipher text:

 #!/bin/bash  
 COUNTER=$((0))
 NUM=$((0))
 while [  $COUNTER -lt 50 ]; do
    NUM=$((40*COUNTER))
    echo Iteration: $COUNTER Seconds: $NUM
 ./zkdecrypto-lite cipher/340.zodiac.nofake3.txt -t $NUM  >> zodiac-work-4.txt
    COUNTER=$[$COUNTER+1]
 done

This is the version which, fifty at a time, running overnight, created the 400 iteration file used for the main analysis (fifty iterations took about six hours):

 #!/bin/bash 
 COUNTER=0
    while [  $COUNTER -lt 50 ]; do
 ./zkdecrypto-lite cipher/340.zodiac.nofake3.txt -t 600 >> zodiac-work-2b.txt
    let COUNTER=COUNTER+1 
 done

Since it appends to the outputfile, it is possible to have any number of processes replicating the solutions.

And here's the 340 cipher file ('340.zodiac.nofake3.txt') itself:

340.zodiac.nofake3.txt

If you put this file into the "cipher" subdirectory in the location with zkdecrypto-lite, then run the above bash script, you'll get the results I got, appearing in the text file 'zodiac-work-4.txt.'

You can analyze the results by making a CSV file with the following Perl script, and then import the CSV file into the OpenOffice spreadsheet, or into R:

 #!/usr/bin/env perl
 use warnings;

 my @rows;

 open(my $fh, "<", "zodiac-400.txt")
     or die "Failed to open file: $!

";

 open(my $fh2, ">", "zodiac-400.csv")
     or die "Can't open > output.txt: $!

";

 while(<$fh>) 
     { 
     chomp; 
     $row = $_;
     $row = join(",",split(//,$row));
     print $fh2 $row;
     print $fh2 "

"; } close $fh; close $fh2;

And following is the result of the above, the spreadsheet with the 400 iterations worth of solutions, in CSV spreadsheet format.

zodiac-400.csv


Introduction

The reasoning behind this solution

Method

Exactly how this solution was derived

Solution

The solution itself, with explanatory material

Resources

Resources so you can

  1. recreate this solution

  2. improve on this solution

Who I am

Absolutely the least interesting and important thing here