Encryption the plain-text using the round keys:
1. (Key schedule) Implement an algorithm that will take a 128 bit key and generate the round keys for the AES encryption/decryption process.
2. (Encryption) Implement an algorithm that takes the key schedule and 128 bits of plain text and generates the cipher-text according to the AES encryption algorithm. Your code should print the state of each round as shown in sample out.txt.
3. (Decryption) Implement an algorithm that takes the key schedule and 128 bits of cipher-text and generates the plain-text according to the AES decryption algorithm. Your code should print the state of each round as shown in sample out.txt.
4. (mainline) Write a mainline (main() for your program that will read in the sbox(stored in le aes sbox.txt), inverse sbox (stored in leaes inv sbox.txt), and for each plain-text/key le it should
(a) generate the round keys using the key schedule algorithm,
(b) encryption the plain-text using the round keys, displaying the required outputs,
(c) decrypted the cipher-text (obtain from the last step) and decrypt it, displaying the required output.