This course is intended to provide a theoretically sound foundation in cryptography as used in network security. We shall learn about basic cryptographic tools like encryption and message authentication, in the "private-key" and "public-key" settings, with a focus on mathematical definitions of security, "provably secure" constructions based on fundamental cryptographic primitives, and how they are used in higher-level network security protocols. The course will also offer an opportunity to explore the current practice and challenges in network security via a course project.

Course contents. The first (and main) part of the course will focus on understanding several cryptographic tools: Secret-sharing, Pseudorandom generators (PRG), Symmetric Key Encryption (SKE), Message Authentication Codes (MAC), Public Key Encryption (PKE), Digital Signatures and Collision-Resistant Hash Functions (CRHF). Also, lower-level abstract cryptographic primitives like one-way functions, hardcore predicates and trapdoor one-way permutations, as well as some algebraic and number-theoretic functions which are used to instantiate these primitives will be covered. A good reference would be the Katz-Lindell textbook or the Boneh-Shoup textbook.

In the second part of the course we will overview some major examples of how these cryptographic tools are employed in network security protocols: IPsec, TLS and DNSSEC, as well as protocols like Signal used in messaging applications.

The course project will give you a chance to implement cryptographic schemes, dig deeper into network security protocols and known vulnerabilities, or study advanced cryptographic tools not covered in the lectures.

Graded Work. The graded work involves two quizzes (60%), a few homework assignments (15%), a team project (20%) and attendance/pop-quizzes (5%). The projects will be evaluated based on a report or demo (depending on the nature of the project), and meeting(s) with the instructor prior to that. Some sample topics for the project will be provided later on. The quiz schedule will be announced later.

If you are auditing the course, you should have an attendance of over 80% and score over 50% in the homework assignments. You need not take the quizzes or the project.

Background. This course will have a theoretical flavour: you will need to be comfortable with mathematical definitions and proofs ("mathematical maturity"). Specific mathematical topics that will be encountered are elementary probability, elementary algebra and elementary number theory. For the second part, it may help to be familiar with computer networks but this is not a pre-requisite.

Teaching Assistant.

Office hours. The instructor and the TA will hold office hours when the assignments are out. Schedule TBA.

Please do come for the office hours, if you found anything mysterious (or missed anything) in the lectures or assignments. You are also welcome to drop by and chat about the content/structure of the course during the office hours. Feel free to e-mail anytime if you have any questions or comments.

Lectures so far