Assignment 2
Due on 14/03/2023
Problem(s)
Part-1:
Implement one of the following two algorithms (for Base64 characters except [+, /], i.e.,A to Z, a to z, and 0 to 9) as per the instructions:
- Vernam-Vigenère Cipher: (i.e. a Vigenere Cipher with Key Length equal to message length) (
 oddroll numbers)- Vigenère Cipher: (
 evenroll numbers)
Part-2:
Implement a code for launching the Padding Oracle Attack on a Cipher Block Chaining (CBC) algorithm with the following steps:
- Design CBC cipher
    
- block size = key size = IV size = 3
 - Keep it specific to to the char. [0 to 9] (here, the datatype is ‘character,’ NOT int)
 - Use ‘0’ in case of padding
 
 - Write a function to generate all possible sets of keys
    
- Remember the key size
 - Write a function to automatically call 
decryption()for a given ciphertext bruteforcing the keys 
 - Write a function to generate all possible sets of IVs
    
- Remember the IV size
 - Write a function to automatically call 
decryption()for a given ciphertext bruteforcing the IVs 
 - Implement the Padding Oracle Attack for ciphertext (given as input)
 
* Part 2 is a CHALLENGE question and stepwise marking will be done for the same!