The Vigenère cipher is a method of encryption that uses a series of different Caesar ciphers based on the letters of a keyword. It is a simplified version of the more general polyalphabetic substitution cipher, invented by Alberti circa 1465. This cipher's basic idea is so natural that it has been reinvented many times.

This cipher is well-known because while it is easy to understand and implement, it often appears to beginners to be unbreakable. Consequently, many programmers have implemented obfuscation or encryption schemes in their applications which are essentially Vigenère ciphers, only to have them broken.
History
The invention of the Vigenère cipher was misattributed to Blaise de Vigenère in the 19th century. The cipher was originally described by Giovan Batista Belaso in his 1553 book La cifra del. Sig. Giovan Batista Belaso. Vigenère published his description of the cipher in 1586.
Johannes Trithemius and Giovanni Battista Della Porta both created important predecessors to the Vigenère cipher.
Description
In a Caesar cipher, each letter of the alphabet is shifted along some number of places; for example, in a Caesar cipher of shift 3, A would become D, B would become E and so on. The Vigenère cipher consists of using several Caesar ciphers in sequence with different shift values.
To encipher, a table of alphabets can be used, termed a tabula recta, Vigenère square, or Vigenère table. It consists of the alphabet written out 26 times in different rows, each alphabet shifted cyclically to the left compared to the previous alphabet, corresponding to the 26 possible Caesar ciphers. At different points in the encryption, an encipherer uses a different alphabet from one of the rows. The alphabet used at each point depends on a repeating keyword.
For example, suppose the encipherer wishes to encrypt a plaintext:
- ATTACKATDAWN
The encipherer chooses a keyword and repeats it until it matches the length of the plaintext, for example, the keyword "LEMON":
- LEMONLEMONLE
The first letter of the plaintext, A, is enciphered using the alphabet in row L, which is the first letter of the key. This is done by looking at the letter in row L and column A of the Vigenère square, namely L. Similarly, for the second letter of the plaintext, the second letter of the key is used; the letter at row E and column T is X. The rest of the plaintext is enciphered in a similar fashion:
Plaintext: | ATTACKATDAWN |
Key: | LEMONLEMONLE |
Ciphertext: | LXFOPVEFRNHR |
Decryption is performed by finding the position of the ciphertext letter in a row of the table, and then taking the label of the column in which it appears as the plaintext. For example, in row L, the ciphertext L appears in column A, which taken as the first plaintext letter. The second letter is decrypted by looking up X in row E of the table; it appears in column T, which is taken as the plaintext letter.
Vigenère can also be viewed algebraically. If the letters A–Z are taken to be the numbers 0–25, and addition is performed modulo 26, then Vigenère encryption can be written,
and decryption,
Cryptanalysis
Kasiski examination
Main article: Kasiski examination
Friedrich Kasiski published the first successful attack on the Vigenère cipher in 1863, but Charles Babbage had already developed the same test in 1854.
The idea behind the Vigenère cipher is like that of all polyalphabetic ciphers — to make frequency analysis more difficult. Frequency analysis is the practice of decrypting a message by counting the frequency of ciphertext letters, and equating it to the letter frequency of normal text. For instance if P occurred most in a ciphertext whose plaintext is in English one could suspect that P corresponded to E, because E is the most frequently used letter in English. Using the Vigenère cipher, E can be enciphered as any of several letters in the alphabet at different points in the message thus defeating simple frequency analysis.
Noted author and mathematician Charles Ludwidge Dodgson (aka Lewis Carroll) called this cipher unbreakable in his 1868 piece "The Alphabet Cipher" in a children's magazine. In 1917, the Vigenère was described as "impossible of translation" in the respected science magazine Scientific American. Despite this reputation, however, the cipher can be broken.
The weakness lies with the fact that the key is relatively short and constantly repeated: as a result, common words like "the" will likely be encrypted using the same key letters, leading to repeated groups in the ciphertext. Look at this example:
abcdefabcdefabcdefabcdefabcdefabc crypto is short for cryptography.
The encrypted text here will not have repeated sequences that correspond to repeated sequences in the plaintext. However, if the key length is different, as in this example:
abcdeabcdeabcdeabcdeabcdeabcdeabc crypto is short for cryptography.
Then the Kasiski test can be used.
Friedman test
The Friedman test (also known as the Kappa test) was invented in 1925 by William F. Friedman. Friedman used the index of coincidence, the probability that any two cipher letters represent the same letter in the plaintext, to break the cipher. By knowing that the probability of any two randomly chosen letters in English are the same is about 6.5%, Friedman found that the key length I is approximately equal to:
where I (the index of coincidence) equals
n is the length of the text and through are the frequencies of the letters.
The cipher of Blaise de Vigenère
Vigenère actually invented a stronger cipher: an autokey cipher. The name "Vigenère cipher" became associated with this polyalphabetic cipher instead. In fact the two ciphers were often confused, and both were sometimes called "le chiffre indéchiffrable", or "the unbreakable cipher". For nearly 300 years this cipher was thought to be unbreakable, but Charles Babbage and Friedrich Kasiski independently found a way to break it in the middle of the 19th century. Babbage actually broke the much stronger autokey cipher, while Kasiski is generally credited with the first published solution to fixed-key polyalphabetic ciphers.
References
- . ISBN 0-88385-504-6.
{{cite book}}
: Cite has empty unknown parameters:|Editor=
and|Publisher=
(help); Missing or empty|title=
(help); Unknown parameter|Chapter=
ignored (|chapter=
suggested) (help); Unknown parameter|First=
ignored (|first=
suggested) (help); Unknown parameter|Last=
ignored (|last=
suggested) (help); Unknown parameter|Others=
ignored (|others=
suggested) (help); Unknown parameter|Pages=
ignored (|pages=
suggested) (help); Unknown parameter|Title=
ignored (|title=
suggested) (help); Unknown parameter|Year=
ignored (|year=
suggested) (help)
External links
- The Vigenère Cipher as discussed on The Beginner's Guide to Cryptography
- Basic Cryptanalysis at H2G2
- Java Vigenere applet with source code (GNU GPL)