Note:For this assignment, feel free to use aprogramming language of your choice. Python is recommended. For Python, the packages PyCryptodome ([login to view URL]) or PyCryptodomex ([login to view URL]) are recommended.
Submission requirements:
Your submission must contain:The source code, the executable(s) if any, and all other related files.The project report, which will contain the instructions for running your program, and thescreenshots demonstrating that your program works according to the assignment tasks.
Tasks:[login to view URL] atext file“[login to view URL]” with the following text “This is the test message 1”.Create a copy of this file with name “[login to view URL]”. Generate a random 128-bit key “k”.Encrypt the contents of “[login to view URL]” using the AES-ECB mode and the key “k”, and save theresulting ciphertext to a file “[login to view URL]”. Before saving, encode the ciphertext using Base64 (so that it can be conveniently printed on the screen).Encrypt the contents of “[login to view URL]” in the same way as described above, on the same key “k”, and save the contents to a file “[login to view URL]”.Print the contents of the files “[login to view URL]” and “[login to view URL]” to the screen (to make sure that theresulting ciphertexts are the same).
[login to view URL] Task 1 but use the AES-CBC mode with randomized IV. Use the same key “k”.Print the contents of the files “[login to view URL]” and “[login to view URL]” to the screen (to make sure that theresulting ciphertexts are different).
[login to view URL] a random 256-bit key “k1”. Compute an HMAC authentication tag for “[login to view URL]” using “k1”, and save it to afile “[login to view URL]”, using Base64 [login to view URL] the contents of “[login to view URL]” to “This is the test message 2”.Compute an HMAC authentication tag for the updated “[login to view URL]” using “k1”, and save it to afile “[login to view URL]”, using Base64 encoding.
Print the contents of the files “[login to view URL]” and “[login to view URL]” to the screen (to make sure that theresulting authentication tags are different).
[login to view URL] a random 256-bit key “k2”. Encrypt the contents of “[login to view URL]” using the AES-GCM-256 mode and the key “k2”, and save theresulting ciphertext to a file “[login to view URL]”, using Base64 [login to view URL] the contents of “[login to view URL]”, and print the result to the screen to make sure that thedecryption has been performed [login to view URL] the first symbol in the file “[login to view URL]” to a different alphanumerical character (to be consistent with Base64 encoding).Attempt to decrypt the updated ciphertext “[login to view URL]” and display the result (to make sure that the ciphertext is rejected).
I am experienced in the implementation of several cryptographic primitives (symmetric and assymetric) in C/C++ and Python. I am well experienced with your preferred crypto library PyCryptodome. I am extremely happy to help you. Please do hire me, to get your project done as soon as possible !!!