patsearch - autosolver for K1/K2/K3 keyed patristocrat ciphers


patsearch -file filename ?-type k1|k2|k3? ?-scoretype type? ?-language language? ?-keyword word? ?-addspace?


patsearch -file filename -type k1|k2|k3 ?-scoretype type? ?-language language? ?-keyword word? ?-addspace?
patsearch is an autosolver for patristocrat (and aristocrat) ciphers.

filename is the name of the file that contains the ciphertext.
keytype is one of k1, k2, or k3.

This program loads keywords from an external dictionary. The dictionary must be laid out as a set of files, with each file containing a list of words (in any order) all of the same length, one word per line. The filenames must start with the string len and end with a 2 digit number describing the length of the words inside the file. For example, the file len04 could contain:


The patsearch program looks for every dictionary file and attempts to use each word found as the keyword. If you are using a very large dictionary this could take quite a long time. Use the -keyword option to limit the search to a single known keyword. This can be useful if you have determined the key from some other method and just want to decipher the ciphertext using the keyword.

Currently the location of the dictionary is hardcoded to the directory $HOME/share/dict. You can change this by editting the patsearch program and modifying the line where Dictionary::directory is set.

The default scoring method is to use a sum-of-logs-of-digram-frequencies table. This can be changed to any scoring method supported by the score command. The -language option is used to load a scoring table for the specified language, if such a scoring table exists.

The -addspace option will attempt to locate word boundaries after the final solution has been found. This can be a time and memory intensive process on older computers so it is turned off by default.

Back to the Index
Created on Wed Mar 31 08:18:23 PST 2004 Logo