This course explains the inner working of cryptographic tools, the security properties they are designed to achieve, how to reason about their security, and how to properly use them. We will cover topics such as encryption (secret-key and public-key), message authentication, user authentication, digital signatures, key management, cryptographic hashing, network security protocols (SSL, IPsec), and public-key infrastructure. Towards the end of the class we will touch on a few advanced topics such as zero-knowledge proofs and secure computation.
Prerequisites: The course is intended for upper-level undergraduates, and we assume familiarity with algorithms (CS.161) and discrete math (ICS.6B / ICS.6D). Basic understanding of probability theory and modular arithmetic will be helpful, although we will review relevant concepts as we need them.
70% homeworks, 30% final
There is no required textbook in the class, but the following books can be used to supplement the lectures:
· Optional: Introduction to Modern Cryptography by J. Katz and Y. Lindell
Note that the textbooks do not cover all the material discussed in class.
· You may collaborate on the homeworks, but in groups whose size does not exceed two students.
· Each student must write down their solution on their own own. If you collaborated with someone else on the homework, you must list the name of this person on your homework as your collaborator.
· Similarly, if you consulted any other source while solving a homework problem, e.g. a book or on-line lecture notes, you must list this source clearly on your homework. It is a violation of an academic policy to consult any source on your homework without giving a proper credit to this source, whether it is another student you ask for help, a textbook, any material you find on-line, or any other source you consulted.
· Any extra credit question on the homework must be solved individually.
· Homework will be due on the due date in class.
· Extensions: Each student has a total of 72 extension hours throughout the quarter. This extension can be spent in units of 24 hours on any of the assignments and projects. The extension is granted automatically, but to take this extension you must notify us before the time the homework is due by email to the TA that you are taking an extension and you must specify how many 24 hour periods you are taking. Please deliver your submissions to the TA's office in ICS1 (bldg 302), room 458c, sliding it under his door if he's not there, and mark the time of the submission on the submission next to your name and class number. There will be no additional extensions.