CSC2426: Fundamentals of Cryptography

Fall 2023


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%).

References: There is no prescribed textbook for this course but the following books and lecture notes are excellent references.

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