Hard deadline: Wednesday, February 11, 11:59 pm.
Soft deadline: Monday, February 9, 11:59 pm
Reminders from the course syllabus: You must work alone on homework assignments. You may not collaborate with anyone else on the homeworks. Your solution must represent your own, individual work. Discussing course concepts in general terms with other students is okay, but discussing solutions to homework problems is not. Submissions between the soft and hard deadlines automatically receive a 25% penalty.
You should first read the course notes on applied cryptography before starting this homework.
Warning: This homework has two parts. You are currently looking at Part I. You need to decrypt Part II then do all the problems in it. Part II is much longer than Part I, so you should start early.
Write a Java program to decrypt Part II of this homework. Part II is encrypted with hybrid encryption.
mainmethod must be located in the default package and in a class named
All the code for your program should be located in that one file.
where pubkey, privkey, sesskey, iv, and ciphertext are command-line arguments specifying the names of input files containing a public key, private key, session key, IV, and ciphertext; and an output file for the plaintext; as described below:
java HybridDecrypt pubkey privkey sesskey iv ciphertext plaintext
Use your program to decrypt the ciphertext found in this archive: hw1.II.zip. The ciphertext file is named hw1.II.html.enc. You'll also find files containing the public key, private key, session key, and IV that were used to produce the ciphertext.
Hint: Reference the Java crypto library documentation as needed: