Question
In this programming assignment, you will implement Vigenere encryption and decryption with Cipher Block Chaining (CBC). The original form of Vigenere cipher has been introduced
In this programming assignment, you will implement Vigenere encryption and decryption with Cipher Block Chaining (CBC). The original form of Vigenere cipher has been introduced in L6: Symmetric Encryption (slide No. 15-18). CBC mode has been introduced in L8: Modes of Operation (slide No. 15-19). In the lecture of Modes of Operation, we used Vigenere block cipher as an example to show how to apply the modes of operation to ciphers. The description of Vigenere block cipher is in slide No. 7 of L8: Modes of Operation. Comparing with original form of Vigenere cipher, the Vigenere block cipher defines a block size that is equal to length of Vigenere key. According to the slide No. 18 of L8: Modes of Operation, for CBC mode an IV (Initial Vector) is also needed as input. So, the inputs to the encryption algorithm include Vigenere key, IV and plaintext and the inputs to the decryption algorithm include Vigenere key, IV and cyphertext. In the lecture slides, we have focused on the encryption part. But in this assignment, you will implement both encryption and decryption algorithms. Therefore, you will create two programs or source files: one for the encryption (or encipher) and one for the decryption (or decipher). The encipher program will be run first. When encrypting, the encipher program will take inputs including plaintext, key and IV. The encipher encrypts the plaintext with the key & IV, and generate a file to store the ciphertext. Then when the decipher program is run, the ciphertext file will be used as input along with key & IV. The decipher program decrypts the ciphertext to recover the plaintext
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started