Question: Implement an extended version of the Caesar cipher that users the characters from (Space, ASCII 32) to '~' (tilde, ASCII 126). Any character (printable

Implement an extended version of the Caesar cipher that users the characters from " (Space, ASCII 32) to '~' (tilde, ASCII 126). Any character (printable or not) that falls outside of the ASCII range of 32-126 should be left unchanged during both encryption and decryption. This will ensure that printable files

remain printable

Upon starting the program should first prompt the user to enter a decryption password. The password is

"lovecybe366!" without auotes. Store a hash of the password as a constant in your program. When the user enters a password, hash it and compare it to the constant. If the correct password is entered, continue the program. If an incorrect password is entered, abort the program. For hash type you can use anything supported in the Proxmox DVWA image.

After authentication the user is prompted to enter they key size for this run of the program. Acceptable values are 0 to 94. Example encryption with key size of 1:

Plaintext: Hello (-World~}!

Ciphertext: Ifmmp!| Xpsme ~"

After the key size the user is prompted to encrypt or decrypt.

Next the user is promoted to choose inout via a file or jext

Inext is chosen me user can enter plaimext or cinenext cecenaine on te operation requested

If a file is chosen the user should enter the full path and filename to the file to decrypt or encrypt

dependina on the operation requesteo.

lastly, the program should output to standard out either plaintext or ciphertext depending on the operation

requested

The program can be written in either C or C++. You must use make and a Makefile and have commands to build and clean. The program should be written in such a way that all inputs are handled securely. The program should be written in such a way that it is not easily crashable

Submit a tar.bz2 file containing your source code and Makefile. Additionally, create a PDF file. in this PDF file explain what steps you took to write your code in a secure fashion. How does your program gc about making sure buffer overflows and other errors are mitigated? Think about which parts of your program might be susceptible when explaining your defense. Explain any other steps you took to make the program more robust and crash proof. Use Chapter 2 in the Secure Coding in C and C++ book as a reference for how you dealt with strings.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!