# Polyalphabetic substitution ciphers

- Description
- Algorithm
- Implementation

In polyalphabetic substitution ciphers one should define a few possible combinations of substitutions of all alphabet letters by other letters. Then, one should use the substitutions cyclically, one after the other, changing the replacement after each new letter.

To use this cipher, one should choose, remember and deliver to all parties some substitutions of all alphabet letters. Then, the substitutions should be used in a specific order. To decrypt the message, one should use corresponding substitutions in the same order but the letters should be changed in the other side.

The strongest version of a polyalphabetic substitution cipher is to define all its transformations randomly. Such a method was preferred by Alberti himself.

On the other hand, due to the large amount of data to remember, some easy to remember and easy to hand over to another person substitutions were invented and widely used. The Vigenère cipher is an example of such an approach.

## Security of polyalphabetic substitution ciphers

A properly implemented polyalphabetic substitution cipher is quite difficult to break. Its strength is based on many possible combinations of changing alphabet letters. Some effective methods of attacking such ciphers were discovered in the nineteenth century. They are about to guess a secret key's length in a first step. After that, one can examine the ciphertext using frequency analysis methods.