The assignment is worth 7.5% of the total mark for this module. This assignment involves writing a C/C++ program for task 1 described below. The purpose of this assignment is for you to get a good understanding of the RSA encryption and decryption.

The tasks:

· Task 1 (7.5%)

Complete the given scratch of RSA algorithm implementation ConsoleRSA.cpp. Basically, you need to finish the functions of gcd, ModularExponention, ModularInverse, etc. Given an input file plain.txt, you need to show the encryption result and the decryption result. You also need to show the runtime of your program.

In the program and the report, you need to

1. Explain how you can compute gcd efficiently.

2. Explain how you compute the modular inverse efficiently.

3. Explain how you can compute the modular exponention efficiently 

Assessment criteria:

Correctness of program 25%

Efficiency of program 25%

Quality of program and clarity of comments 50%

Submission

You are required to submit the source code file (CE235A2.cpp), and the encryption result (CE235A2encryption.txt) and the decryption result (CE235A2decrytion.txt) of the given file plain.txt. All of the files should be placed in a single folder which should then be zipped for submission to the coursework submission system (FASER), i.e. the submission should be a single file in zip format.

After you complete your programs, you should demonstrate them to the module supervisor.

Late submission and plagiarism

This assignment is to be done individually, i.e. whatever you submit must be your own individual work. Any software or any other materials that you use in this assignment, whether previously published or not, must be referred to and properly acknowledged.  Please be aware that the module supervisor may ask students for an interview to explain their submitted work.

Please refer to the Undergraduate Students’ Handbook for details of the School policy regarding late submission and University regulations regarding plagiarism:

http://www.essex.ac.uk/ldev/resources/plagiarism/default.aspx

http://www.essex.ac.uk/about/governance/policies/academic-offences.aspx