Instructor: Akshayaram Srinivasan
Lecture Timings: 10 AM - 12 noon on Monday.
Location: MY 480.
Office Hours: By appointment.
Class Discussion: Please signup on Piazza.
Course Description: Cryptography is a branch of computer science that aims at building secure systems that protect sensitive information against adversarial attacks. It allows us to construct systems that enable private communication over public channels, systems that prevent tampering of data during transmission, systems that enable us to securely outsource data and computation to external entities like cloud service providers, and many more. These systems are crucial in ensuring the security of communication and computation happening over the internet.
In this course, we will study the theoretical foundations of cryptography and the theory behind constructing such secure systems. Specifically, we will first study how to rigorously define the security properties that these systems need to satisfy. We will then look at how to construct these systems and formally prove that the constructed systems satisfy these security properties.
Prerequisites: Students are expected to have completed undergraduate-level courses on discrete mathematics, algorithms, and complexity theory. As this course will be theoretical, students are expected to have good mathematical maturity and should be comfortable with writing proofs.
Evaulation: Scribe notes (20%), Homeworks (40%), and Final Project (40%).
Course Schedule:
Date | Topics Covered | Scribe Notes | Additional Reading |
---|---|---|---|
Sept 11, 2023 | Introduction, Negligible Functions | Lecture-1 | Note on Negligible Functions |
Sept 18, 2023 | One-Way Functions | Lecture-2 | Chapter 2.4 |
Sept 25, 2023 | Goldreich-Levin Theorem | Lecture-3 | Chapter 3.4.2 |
Oct 2, 2023 | Computational Indistinguishability and PRGs | Lecture-4 | Chapters 3.1-3.3 |
Oct 16, 2023 | Pseudorandom Functions and Secret-Key Encryption | Lecture-5 | Lecture by A.Chiesa |
Oct 23, 2023 | Proof of Security of SKE and One-time Digital Signatures | Lecture-6 | Chapters 5.3-5.4 |
Oct 30, 2023 | Digital Signatures | Lecture-7 | Chapters 5.7 |
Nov 13, 2023 | Zero-Knowledge Proofs | Lecture-8 | Chapters 4.5-4.7 |
Nov 20, 2023 | Public-Key Encryption | Lecture-9 | Chapter 6 |
Nov 27, 2023 | Oblivious Transfer and Secure Two-party Computation | Lecture-10 | Chapter 9 |
Dec 4, 2023 | Secure Multiparty Computation | Lecture-11 | Section 3 and 4 |
Dec 11, 2023 | Project Presentation |