(10 Pts) You want to implement the Caesar Cipher by using C++. Write the specifications for a program that will prompt the user for encryption or decryption. If encryption is chosen, it will read in a key, a plaintext file, encrypt the plaintext and output the result to a ciphertext file (all file names dependent on user). If decryption is chosen, it will read in a key, a ciphertext file, decrypt the ciphertext and output the result to a plaintext file (all file names dependent on user). The specifications should be targeted to a former CST 116/126 student who has graduated from OIT for over a year.
- (25 Pts) Write the C++ program that will satisfy the specifications of part 1). No need to hand in program. I’ll check out the source code during check-off.
- (15 Pts) Write the specification for a C++ program that will perform the cryptanalysis of the Caesar Cipher. Namely, given some ciphertext and no key, the program will recover the plaintext. Be careful, you must make an effort to minimize the amount of work required of the user. The user should not be required to read 26 different files and pick out the correct plaintext among them. The program should reject as many non-plaintext files as possible. The specification should target the same student in part 1. Like all cryptanalysis, one must make some assumptions based on knowledge of the language. Assume the text is in English and make some good assumptions and include them in the specifications!
- (30 Pts) Write the program that will satisfy the specifications of part 3). No need to hand in program. I’ll check out the source code during check-off.
- (15 Pts) Gilbert Vernam devised a simple system that encrypts and decrypts by bitwise XOR of the text and the key. Use your intimate knowledge of digital logic and provide a proof that the system does work. The proof must be mathematical based. The proof should be targeted to a CST 130 student who just learned the magic of the XOR and its use in addition and subtraction using 2’s complement.
- (5 Pts) Each member of the team assesses him or herself. Provide the percentage of work each has contributed to the assignment. No work is 0%; half of work is 50% etc…
- Due dates: parts 1), 3), 5) and 6) e-mailed to me by Wednesday 2nd week in lecture. Part 2) and 4) will be checked off in class on Monday 3rd week in lecture.