[ engines | analyzers | cipher window | key dialog | alphabets | encrypt/decrypt | menus ] |
CryptoToolJ is a Java-based application program that supports encryption, decryption, and cryptanalysis of text file using a variety of simple historical ciphers.
Encryption/Decryption: Encrypting operations require that
the user create the appropriate cryptographic
key, and decrypting operations require the user supply the
correct key. The following ciphers are implemented in the default
version, although additional cipher engines can be added to through
tool as plugins. Clicking on their links gets additional
information about the cipher method itself.
Key Dialog CryptoToolJ provides a key dialog window to
assist with creating and using keys.
Cryptanalysis: Once a message has been typed into CryptoToolJ's
textarea, a variety of programs can be used to cryptanalyze it. The
following analyzers are implemented in the default version, although
additional analyzers can be added as plugins.
When CryptoToolJ is started, its main window opens:
This window is not interactive. It just reports the status of the
program and it can also be used by analyzers to report their results.
CryptoToolJ has four menus, File, Edit, Window,
and Analysis.
To encrypt or decrypt a file or a message, use the file menu to open
a Cipher Window:
Cipher windows are numbered and more than one can be open at a time,
although only the front window is considered active. The window's title
shows the name of the cipher engine that has been selected for that
window.
This window contains a choice-box menu that lists the available
cipher engines. The Caesar cipher is the default choice. When the Cipher
window is initially opened, its Encrypt and Decrypt buttons
are de-activated and remain so until the cryptographic key is specified. Once the
cipher engine has been selected, clicking on the Key Button
will open the Key Dialog:
To specify a valid cryptographic key, you must select the plaintext alphabet and ciphertext alphabet and provide the key data. In this example, the key data
consists of the Caesar shift. For
most other cipher engines, the key data would consist of a keyword. In either case, the key data is
used to generate the cryptographic key, which is some permutation of
the alphabets.
The alphabets may be specified by choosing from among the
checkbox options and/or by designating other and typing
in a valid alphabet descriptor. The
alphabet descriptor may be composed of any combination of Unicode
character ranges and Unicode block names. Here are some examples.
Any alphabet ranges specified in the Other field, are added
to those selected by checkboxes. (NOTE: CryptoToolJ does not currently
recognize all Unicode blocks by name.)
Once a valid key has be specified, the Encrypt and Decrypt
buttons will become activated. When either button is clicked, its action
will be applied to the text in the Input TextArea and the result
will be displayed in the Output TextArea. Here's the result of
a Caesar encryption.
CIPHER Description of the Key
Caesar An integer by which each letter is shifted
Simple Substitution A keyword or a permutation of A..Z
Transposition A String, such as 1023, describing the reordering of a block of text
Vigenere A keyword
Gronsfeld A keyword
Beaufort A keyword
Autoclave A keyword
Playfair A keyword
Railfence An integer > 0 giving number of rows
Analyzer Description
Index of Coincidence Displays the message's index of coincidence.
TextAnalyzer Displays frequency data in an interactive histogram.
AffineAnalyzer Attempts to break the text assuming affine encryption.
CaesarAnalyzer Attempts to break the text assuming Caesar encryption.
SubstitutionAnalyzer Attempts to break the text assuming simple substitution encryption.
VigenerAnalyzer Attempts to break the text assuming Vigenere encryption.
Using CryptoToolJ to Encrypt/Decrypt Messages
Descriptor Meaning
Range.ai+Range.kz Lowercase a to z except for j
Range.ai+Range.kz+Range.AI+Range.KZ Lower- and uppercase a to z except for j
UnicodeBlock.GREEK The standard Greek alphabet
UnicodeBlock.HIRAGANA+UnicodeBlock.KATAKANA The standard Japanese alphabets
Menus
File Menu
Edit Menu
Window Menu
Analysis Menu