The Tcl cipher extension is an ambitious effort to be a generic cipher manipulation architecture for cipher types in use by the American Cryptogram Association.

This package includes an extension the Tcl language that implements new Tcl commands for manipulating ciphers. In addition, there are a handful of scripts that use these new Tcl commands to do useful things with these new Tcl commands. For example, the command "key generate" is used in conjunction with the "cipher create aristocrat" command to implement a brute force search for solving patristocrat ciphers.

There are also a couple of graphical tools for performing these cipher manipulations.

The English frequency tables were obtained by performing a tally on the text from Mary Shelley's novel Frankenstein. The text was obtained from Project Gutenburg.

Quick Links

Download the latest release (1.6.0) as a Binary RPM or a Windows self-extracting installer. Or just get the Source Code (as a source rpm) and build it yourself. See the Project Page at SourceForge for earlier versions, access to the CVS repository, and message boards.

New Tcl Packages

Several new Tcl packages are provided by this software. Each package provides a handful of new Tcl commands. These packages include:


Tcl interpreter with the cipher package already loaded.
Graphical tool for manipulating ciphers.
Graphical tool for autosolving cryptarithm ciphers.
Autosolver for a variety of cipher types. This program iterates through all possible keys and uses a customizable scoring function to determine the best solution.
Autosolver for cipher types that use keysquares. A dictionary of possible keywords is used to generate possible keysquares. A customizable scoring function is used to determine the best solution.
Autosolver for nicodemus ciphers.
Autosolver for K1, K2, and K3 keyed patristocrats. A dictionary of possible keywords is used to generate the keyed alphabets. A customizable scoring function is used to determine the best solution.
Show the plaintext resulting from all possible routes for a given route cipher block width.
Generate a tableau for solving many ciphers by hand.
Generate a columnar cipher from a saved aristocrat/patristocrat solution so that the keyword may be sought after.
Search for K3 keyed alphabets that match a given key. A dictionary of possible keywords is used to find matches.
Attempt to resolve a K4 alphabet into its component keywords. A dictionary of possible keywords is used for one of the K4 keywords. Likely keyed alphabets for the other keyword are shown.
Generate scoring tables from samples of plaintext.
Useful letter frequency analyzer.

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