Part 1: (100 points) Write a program that performs encryption and decryption using Hill Cipher. You can assume that the matrix key is 2X2. Your program MUST check validity of the KEY!You can assume that the ciphertext is a string of UPPER CASE letters and the plaintext is the string of LOWER CASE letters.
You can assume that there are no other characters in the input strings.
Part 1 is due on Friday, February 27, by 11 AM. Testing will be done in class.
Part 2: (100 points) Write a program that reads two strings - ciphertext and the partial plaintext and finds the key matrix and the complete plaintext using the known plaintext cryptanalysis technique that we learned in class and the decryption part of your Part 1 program.
You can assume that the ciphertext was obtained by encrypting plaintext using Hill Cipher with 2X2 matrix.
You can assume that the ciphertext is a string of UPPER CASE letters and the plaintext is the string of LOWER CASE letters.
You can assume that there are no other characters in the input strings.
Simplification: you can assume that the maximal length of the known plaintext is 10 character. This simplification will result in 5 points reduction.
Your program must print the following:
Due Day: Wed, March 11, 11 AM