Homework 1: Applied Cryptography

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.

Part I

Write a Java program to decrypt Part II of this homework. Part II is encrypted with hybrid encryption.


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: