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.
Grading:
70% homeworks, 30% final
Text book:
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
·
Optional: Handbook
of Applied Cryptography by A. Menezes,
P. Van Oorschot, S. Vanstone (free!)
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.