Crank v0.0.3
============

Author: Matthew Russell <twig5151@yahoo.com>
Homepage: http://crank.sourceforge.net/

See 'BUGS' for current bugs.
See 'TODO' for planned features soon to be implemented.

Installation
============

You'll need gdk/gtk+ to build crank.

On Linux:
---------

- Change directory to where Crank has been unpacked. eg. 

% cd crank-0.03

- Compile the sources:

% make

- Run crank from this directory (needs the data directory 'data/' to be in
this location):

% ./crank

On Windows
----------

Crank can be run under Windows using (at least) mingw gcc and the Win32
port of GTK+.

Usage Summary
=============

The main text area in Crank is a view of the source text using the current
key. This current key is displayed using two rows of letters. This
indicates the current substitution being employed.

The 'Key Controls' bring up a controls box including the following:
Invert - find the inverse of the substitution
Shift <<, Shift >> - do a Caesar shift on the key
Reverse - Reverse the order of the key
Complete - Fill in any blanks in an arbitrary fashion
Clear - Remove all key entries
Change (x) - (y) - Change the key mapping for individual letters

'Preprocess source' allows you to strip away numbers, punctuation and
whitespace.

'Statistics' displays 1, 2, and 3 letter combination counts (unigram,
bigram and trigram, respectively), as well as error summaries from the
expected values.

'Break' invokes the automatic cracker, which isn't that strong yet. It
works by randomly trying to improve the key's error rating by slightly
altering the key. The trial key alterations are minor at the start, but
they begin increasing the longer it's been since the last improvement. To
successfully decrypt a message, you generally need about 2-3000 characters
of text (excluding whitespace, punctuation, etc), though it can be more or
less depending on the exact ciphertext.

A sample encrypted text file has been given "ciphertext.txt", which you
can use Crank to decrypt.
