CryptoToolJ User Guide

[ engines | analyzers | cipher window | key dialog | alphabets | encrypt/decrypt | menus ]

Overview

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.

CIPHERDescription of the Key
CaesarAn integer by which each letter is shifted
Simple SubstitutionA keyword or a permutation of A..Z
TranspositionA String, such as 1023, describing the reordering of a block of text
VigenereA keyword
GronsfeldA keyword
BeaufortA keyword
AutoclaveA keyword
PlayfairA keyword
RailfenceAn integer > 0 giving number of rows

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.

AnalyzerDescription
Index of CoincidenceDisplays the message's index of coincidence.
TextAnalyzerDisplays frequency data in an interactive histogram.
AffineAnalyzerAttempts to break the text assuming affine encryption.
CaesarAnalyzerAttempts to break the text assuming Caesar encryption.
SubstitutionAnalyzerAttempts to break the text assuming simple substitution encryption.
VigenerAnalyzerAttempts to break the text assuming Vigenere encryption.

Using CryptoToolJ to Encrypt/Decrypt Messages

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.

DescriptorMeaning
Range.ai+Range.kzLowercase a to z except for j
Range.ai+Range.kz+Range.AI+Range.KZLower- and uppercase a to z except for j
UnicodeBlock.GREEKThe standard Greek alphabet
UnicodeBlock.HIRAGANA+UnicodeBlock.KATAKANAThe standard Japanese alphabets

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.

Menus

File Menu

Edit Menu

Window Menu

Analysis Menu