- The assignment objectives are as follows:
o To provide hands-on experience for the students in implementing a simple encryption algorithm
o To increase the understanding of two main security properties of encryption algorithms: confusion and diffusion.
Assignment Requirements and Implementation
- You are required to develop a simple symmetric-key image encryption algorithm using C, C++ or python
o The entire algorithm should be in one source code file that can be compiled easily
o The algorithm should allow the user to select between encryption or decryption
o The algorithm should prompt the user to enter a secret key (you are free to choose any key length) o If the user selects encryption, the program should encrypt a plainimage to produce a cipherimage (Note: The plainimage itself should be transformed into the cipherimage)
o If the user selects decryption, the program will decrypt an input cipherimage to produce the original plainimage (Note: The cipherimage itself should be transformed into the plainimage)
o Being able to view the cipherimage itself is not mandatory but will be a plus.