Vigenere

Vigenere cipher is a simple encryption algorithm capable to mask the frequency of the letter usage.

Trivial ciphers (like Caesar cipher, for instance) replace one symbol by another following some encryption table. However not all symbols are used equally frequently and encryption table of the longer text can be restored from the symbol usage statistics. Original Caesar cipher circulary shifts relative symbol positions by the same offset (for instance, for the key = 2 it shifts A to C, B to D, etc). This is particulary insecure as once a single mapping is correctly recovered, the key is recovered and all encryption is cracked.

To overcome this limitation, Vigenere cipher encodes adjacent characters with different encryption tables that come in a sequence (after running out of tables, the cipher moves to the start of the sequence and reuses that same tables again). Same as with Caesar cipher, it is convenient to use tables that circulary shift all characters by some offset. This allows to define all table with the single number, the offset. The algorithm is described in more detail in [1].

Vigenere algorithm is resistant to the simple analysis of the letter frequency but the repeating nature of the key makes it sensitive to the more advanced methods of decryption. After correctly guessing the length of the key (number of the encryption tables used) it can be easily broken by measuring the frequency of the letter usage individually for each table. Hence security specialists do not recommend to use this algorithm where encryption is really important[2]. Some websites offer online tools[3] to decipher messages encrypted by this algoritm.

Blaise de Vigenère is not the first author of this algorithm that has been invented many times during the history.

Applet

This applet uses Vigenere's algorithm to show a basic example of cryptography. The left panel gives an evaluation of the key strength, printing the percent value. The central panel is divided into 3 sub-panels (panelPhrase, panelKey, panelEncrypted), which contain respectively the plain phrase, the key and the encrypted phrase. The panelKey contains also two buttons (buttonCrypt e buttonDecrypt) used respectively to encrypt the plain phrase and to decrypt the encrypted phrase. Note that the text area containing the key is editable; so you can insert a personal key, and this is the recommended way. Now if you want to hide the key frow a curious eye, use the nearby checkbox "Visible key". You can deselect temporarily the other checkbox "Evaluate key" while you insert the key, if the processor is too slow. The button "Reset key" restores the default key (composed by the first ciphers of pi and of the e number). Last, the coloured buttons on the right let you switch from the Italian from the English version.

References

  1. 1 Lab exercise, available online, contains description and historical overview of Vigenere cipher
  2. 2 Cryptoanalysis in Wikipedia
  3. 3 Automatic Vigenere Decoder/Solver, available online





Acknowledgements

  • Java applet by Pierre Blanc
  • Ultrastudio.org has transferred 50 sFr to Plan Schweiz, reference ID 13618, target Schulen für Liberia.