The reading assignment in the last lecture covered how AES (Rjindael) works. This problem will give you an idea as to how much processing time AES requires to perform key generation, encryption and decryption.
Download the AES implementation source code from:
http://islab.oregonstate.edu/koc/ece...Sha/sprash.zip
First, familiarize yourself with the AES key generation, encryption and decryption functions in this source code. Choose a key and block size of 128 bits. Choose any plaintext M 128*5 bit long. Then, perform the following:
1) Execute the key generation function to get a key K
• Compute the execution time.
2) Execute the encryption function to encrypt M using K, and obtain the ciphertext
• Compute the execution time.
3) Execute the decryption function to decrypt C using K, and to obtain M back.
• Compute the execution time.
Repeat each of the above steps 100 times and give the average execution time for each of the three functions. List the type and speed of the processor, and the memory (RAM) of the machine you execute the code on.
I hope you know how to measure execution time! If not, please try to figure it out yourself before asking for help. Include a description of how you measured the timing, such as what functions you measured the execution time of.