Vigenère Analysis

Determines the length of the key of a Vigenère cipher
Text length:

N-gram:
Choose a keysize. Here are the possible keysizes sorted by their probability in descending order.



Author: Jean Michel Polak



This tool illustrates how to break a Vigenère encryption. As a first step, please enter a text encoded with Vigenère. Then you can select the length of the N-grams to perform the analysis. This analysis is based on the English alphabet, so non-alphabetic characters like '?', commas and spaces are filtered out.

The possible key lengths are then displayed in the diagram, and the divisors of the autocorrelation results are also calculated and included in the diagram.

The second view available is a table, in which all N-grams for which the distance between them, has at least one common divisor. These dividers are displayed in the table shown in colour and with a cross. The most likely key length has the most entries. The possible keys are shown below the diagram, these are ordered according to their probability.

Press one of the key lengths and two letter distributions are displayed. The upper distribution is the one from the english language, in the lower distribution will depend on the the letters of the encrypted text in n groups. The first letter represents the first group. Let's assume you have decided on key length 7, then the first letter is placed in the first group , 7th, 14th and so on in the first Group. Now with the help of a letter frequency distribution each Group considered individually. For example, if in the third group the letter 'G' is the most common, it most likely corresponds in plain language to the 'E'.

Whenever the distributions are shifted, the corresponding autocorrelation value calculated and displayed, it is desirable to find the minimum value. Each time the text is moved, the ciphertext is decrypted with the existing key.

For the automatic release of a Vigenère encryption you are invited to use the software CrypTool2 (https://www.cryptool.org/en/cryptool2) .



References

Chart.js (used for diagram)