The Vigenere Cipher follows its name from a French cryptographer Blaise de Vigenere. This cipher is a substitution cipher that supports encryption and decryption of only alphabetic text.

There is a Vigenere’s Table which is responsible for encrypting the plaintext with the help of a key.

Vigenere Cipher Table

The table consists of 26 rows and columns with each cell storing a single letter. The storage of the letter starts from A-Z in the first row, and a left shift operation influences each successive row.

Vigenere Table 1

Vigenere’s Table

The ciphertext is formed by letters indexed out from the above table using the row and column names.


Encryption Process of Vigenere Cipher

Let us run an example through the encryption process for the better understanding of the Vigenere Cipher.

We need a plaintext and a key before starting the encryption process.

Vigenere Cipher Plaintext And Key

Plaintext and Key

In order to create the ciphertext, we pick the first letter of each of the above values. 'J' from the plaintext and 'B' from the key. We find the table entry for which 'J' is the row name, and 'B' is the column name.

Vigenere Cipher Ciphertext EditedCreation of Ciphertext

For every letter of the plaintext, we need a letter from the key. If length of the key is small, the algorithm repeats the key until the it matches the length.

Vigenere Cipher Complete Ciphertext

Encryption of ‘JOURNALDEV’

#data structure and algorithms #c++ #cipher #vigenere #cplusplus #programming-c

Vigenere Cipher and its implementation in C++
20.20 GEEK