Instructor: Sruthi Sekar (sruthi [at] cse [dot] iitb [dot] ac [dot] in)
Course Timing and Location (CS 409): 9:30 AM – 10:55 AM (Wed, Fri), CC103
Teaching Assistants: Ravi B Prakash, Lakshya Gadhwal
Contact Hours: After class, or fix an appointment by emailing
Important Dates:
- LAB EXERCISE 1: 8th Aug
(Deadline: 11th Aug 11:59 PM for CTF, 13th Aug 11:59 PM for code and writeup submission) - QUIZ 1: 3rd Sept 2025 (Wed), 8:30 AM-9:30 AM (CC103)
- LAB EXERCISE 2: 29th Aug
(Deadline: 9th Sep 11:59 PM for CTF, 9th Sep 11:59 PM for code and writeup submission) - MIDSEM EXAM: 19th Sept 2025 (Fri), 13:30-15:30 (CC103 & CC105)
- QUIZ 2: 8th October 2025 (Wed), 8:30-9:30 AM (CC103, CC101)
- LAB EXERCISE 3: 27th Sept 2025
(Deadline: 4th Oct 11:59 PM for CTF, 6th Oct 11:59 PM for code and writeup submission) - QUIZ 3: 29th October 2025 (Wed), 8:30-9:30 AM (CC103, CC101)
- LAB EXERCISE 4: 21st October 2025
(Deadline: 1st Sept 11:59 PM for CTF,Code,write-up) - ENDSEM EXAM: 14th November 2025, 9:00-12:00 (LC001)
Course Description (CS 409)
I might add a few more advanced topics; an older minor version of the course had the syllabus below. Additionally, I plan to incorporate graded hands-on sessions, so basic familiarity with writing code will be helpful (assuming everyone has taken CS101).
This course is intended to provide a theoretical foundation in Cryptography (with some supporting hands-on sessions for several topics). 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. The topics that will be covered include the following. We will mainly refer to two books: Katz-Lindell and Boneh-Shoup.
- Perfectly secret encryption: one-time pad, limitations of perfect security
- Private key encryption: defining encryption CPA security, constructing CPA secure scheme- pseudorandom functions and block ciphers, pseudorandom generators, stream ciphers, one-way functions, hardcore predicates, CCA security – motivates message authentication codes, some practical constructions.
- Hash Functions and applications: definition of hash functions, message authentication using hash functions, attacks, and some additional applications
- Public key encryption: CPA security, introduction to some related modular arithmetic, El Gamal, RSA, and Rabin constructions, some attacks on RSA.
- Zero Knowledge Proofs: introduction with motivation, definition of honest verifier zero knowledge, one protocol (graph coloring or some other NP complete problem)
Background
Mathematical maturity is the only prerequisite. Knowledge of elementary probability, elementary algebra, and elementary number theory will be a bonus, but we will recap the basics needed during the course.
Important Dates:
- LAB EXERCISE 1: 8th Aug
(Deadline: 11th Aug 11:59 PM for CTF, 13th Aug 11:59 PM for code and writeup submission) - QUIZ 1: 3rd Sept 2025 (Wed), 8:30 AM-9:30 AM (CC103)
- LAB EXERCISE 2: 29th Aug
(Deadline: 9th Sep 11:59 PM for CTF, 9th Sep 11:59 PM for code and writeup submission) - MIDSEM EXAM: 19th Sept 2025 (Fri), 13:30-15:30 (CC103 & CC105)
- QUIZ 2: 8th October 2025 (Wed), 8:30-9:30 AM (CC103, CC101)
- LAB EXERCISE 3: 27th Sept 2025
(Deadline: 4th Oct 11:59 PM for CTF, 6th Oct 11:59 PM for code and writeup submission) - QUIZ 3: 29th October 2025 (Wed), 8:30-9:30 AM (CC103, CC101)
- LAB EXERCISE 4: 21st October 2025
(Deadline: 1st Sept 11:59 PM for CTF,Code,write-up) - ENDSEM EXAM: 14th November 2025, 9:00-12:00 (LC001)
Course Description (CS 409)
I might add a few more advanced topics; an older minor version of the course had the syllabus below. Additionally, I plan to incorporate graded hands-on sessions, so basic familiarity with writing code will be helpful (assuming everyone has taken CS101).
This course is intended to provide a theoretical foundation in Cryptography (with some supporting hands-on sessions for several topics). 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. The topics that will be covered include the following. We will mainly refer to two books: Katz-Lindell and Boneh-Shoup.
- Perfectly secret encryption: one-time pad, limitations of perfect security
- Private key encryption: defining encryption CPA security, constructing CPA secure scheme- pseudorandom functions and block ciphers, pseudorandom generators, stream ciphers, one-way functions, hardcore predicates, CCA security – motivates message authentication codes, some practical constructions.
- Hash Functions and applications: definition of hash functions, message authentication using hash functions, attacks, and some additional applications
- Public key encryption: CPA security, introduction to some related modular arithmetic, El Gamal, RSA, and Rabin constructions, some attacks on RSA.
- Zero Knowledge Proofs: introduction with motivation, definition of honest verifier zero knowledge, one protocol (graph coloring or some other NP complete problem)
Background
Mathematical maturity is the only prerequisite. Knowledge of elementary probability, elementary algebra, and elementary number theory will be a bonus, but we will recap the basics needed during the course.
Important Dates:
- LAB EXERCISE 1: 8th Aug
(Deadline: 11th Aug 11:59 PM for CTF, 13th Aug 11:59 PM for code and writeup submission) - QUIZ 1: 3rd Sept 2025 (Wed), 8:30 AM-9:30 AM (CC103)
- LAB EXERCISE 2: 29th Aug
(Deadline: 9th Sep 11:59 PM for CTF, 9th Sep 11:59 PM for code and writeup submission) - MIDSEM EXAM: 19th Sept 2025 (Fri), 13:30-15:30 (CC103 & CC105)
- QUIZ 2: 8th October 2025 (Wed), 8:30-9:30 AM (CC103, CC101)
- LAB EXERCISE 3: 27th Sept 2025
(Deadline: 4th Oct 11:59 PM for CTF, 6th Oct 11:59 PM for code and writeup submission) - QUIZ 3: 29th October 2025 (Wed), 8:30-9:30 AM (CC103, CC101)
- LAB EXERCISE 4: 21st October 2025
(Deadline: 1st Sept 11:59 PM for CTF,Code,write-up) - ENDSEM EXAM: 14th November 2025, 9:00-12:00 (LC001)
Course Description (CS 409)
I might add a few more advanced topics; an older minor version of the course had the syllabus below. Additionally, I plan to incorporate graded hands-on sessions, so basic familiarity with writing code will be helpful (assuming everyone has taken CS101).
This course is intended to provide a theoretical foundation in Cryptography (with some supporting hands-on sessions for several topics). 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. The topics that will be covered include the following. We will mainly refer to two books: Katz-Lindell and Boneh-Shoup.
- Perfectly secret encryption: one-time pad, limitations of perfect security
- Private key encryption: defining encryption CPA security, constructing CPA secure scheme- pseudorandom functions and block ciphers, pseudorandom generators, stream ciphers, one-way functions, hardcore predicates, CCA security – motivates message authentication codes, some practical constructions.
- Hash Functions and applications: definition of hash functions, message authentication using hash functions, attacks, and some additional applications
- Public key encryption: CPA security, introduction to some related modular arithmetic, El Gamal, RSA, and Rabin constructions, some attacks on RSA.
- Zero Knowledge Proofs: introduction with motivation, definition of honest verifier zero knowledge, one protocol (graph coloring or some other NP complete problem)
Background
Mathematical maturity is the only prerequisite. Knowledge of elementary probability, elementary algebra, and elementary number theory will be a bonus, but we will recap the basics needed during the course.
References
Textbooks:
- Introduction to Modern Cryptography, Jonathan Katz and Yehuda Lindell
- A Graduate Course in Applied Cryptography, Dan Boneh and Victor Shoup
- The Joy of Cryptography, Mike Rosulek
- A Course in Cryptography, Rafael Pass and Abhi Shelat
- Lecture notes for fundamentals of cryptography, Leonid Reyzin
- Foundations of Cryptography, Volume I-II, Oded Goldreich
Background Material:
- Basic Probability: Section A.3 of Katz-Lindell, Recitation 1 from MIT6875
- Basic Number Theory: Section B of Katz-Lindell, Recitation 3 from MIT6875, the book Comutational Number Theory (Basics)
- Basic computation complexity can be found in Recitation 2 from MIT6875
Related Courses:
- Cryptography (CS406) by Prof. Manoj Prabhakaran, IITB
- Foundations of Cryptography (MIT6875) by Prof Vinod Vaikunthanathan
- Last year’s CS409M offered by me
Grading

Assignments/Exams
- Assignment 1 (Perfect Security, Pseudorandom Generators)
- Assignment 2 (PRFs, CPA Security, Modes of Operation)
- Quiz 1 (Quiz 1 Solution sketch)
- Assignment 3 (CCA, Authenticated Encryption, MAC and Hash)
- Mid Sem Exam (MidSem Solution sketch)
- Assignment 4 (One Way Functions, PKE, Key Exchange)
- Quiz 2 (Quiz 2 Solution sketch)
- Assignment 5 (Digital Signatures, Commitment, ZKPs)
- Quiz 3 (Quiz 3 Solution sketch)
- Assignment 6 (Tutorial)
- End Sem Exam (EndSem Solution sketch)
Lectures
| Number/Date | Topics | Slide |
| Lecture 1 (30th July) | Introduction, Course Policy, Classical Cryptography | Lecture 1 slides |
| Lecture 2 (1st Aug) | One-time pad, Perfect Security, Drawbacks, Attacks | Prep material: Recitation 1 from MIT6875, [Katz-Lindell, App A] Lecture 2 slides |
| Lecture 3 (6th Aug) | Tools for defining computational security | Lecture 3 slides Additional reference: Recitation 2 from MIT6875 |
| (8th Aug) | Lab Exercise 1 | |
| Lecture 4 (8th Aug) | Pseudorandom Generators, Stream Ciphers | Lecture 4 slides Main reference: Katz-Lindell |
| Lecture 5 (13th Aug) | Hybrid Arguments, More About PRGs | Lecture 5 slides Main reference: Goldreich |
| Lecture 6 (20th Aug) | Reusing same key for multiple encryptions, Pseudorandom functions (PRFs) | Lecture 6 slides Main reference: Katz-Lindell |
| Lecture 7 (22nd Aug) | CPA Security, Modes of Operation | Lecture 7 slides Main reference: Katz-Lindell |
| (29th Aug) | Lab Exercise 2 | |
| Lecture 8 (29th Aug) | CCA Security, Message Authentication Codes | Lecture 8 slides Main reference: Katz-Lindell |
| (3rd Sept) | Quiz 1 | Q.Paper [sol sketch] |
| Lecture 9 (3rd Sept) | Authenticated Encryption, Domain Extension of MACs | Lecture 9 slides Main reference: Katz-Lindell |
| Lecture 10 (10th Sept) | Hash Functions | Lecture 10 slides Main reference: Katz-Lindell |
| Lecture 11 (12th Sept) | TUTORIAL | Tutorial set |
| 13th-21st Sept | MID SEM WEEK | Q. Paper [sol sketch] |
| Lecture 12 (24th Sept) | Number theory basics, cryptographic hardness assumptions, PRG based on DDH | Lecture 12 slides Main reference: Katz-Lindell, Recitation 3 |
| Lecture 13 (26th Sept) | One Way Functions and Permutations, Hard-core predicates, PRG from OWF | Lecture 13 slides Main reference: Katz-Lindell |
| (27th Sept) | Lab Exercise 3 | |
| Lecture 14 (1st Oct) | Public Key Encryption, Key Exchange Protocol | Lecture 14 slides Main reference: Katz-Lindell |
| Lecture 15 (3rd Oct) | Public Key Encryption continued, Trapdoor Permutations | Lecture 15 slides [PKE from TDP] Main reference: Katz-Lindell |
| (8th Oct) | Quiz 2 | Q.Paper [sol sketch] |
| Lecture 16 (8th Oct) | Digital Signatures | Lecture 16 slides [Lamport Signatures] Main reference: Katz-Lindell |
| Lecture 17 (10th Oct) | Digital Signatures cont., Identification Scheme, Fiat-Shamir | Lecture 17 slides Main reference: Katz-Lindell |
| Lecture 18 (15th Oct) | Zero Knowledge Proofs (ZKPs) | Lecture 18 slides Main reference: Boneh-Shoup, Goldreich |
| Lecture 19 (17th Oct) | Malicious verifier ZKPs, Commitment Schemes, ZKP for NP via Graph 3-coloring | Lecture 19 slides Main reference: Boneh-Shoup, Goldreich |
| (21st Oct) | Lab Exercise 4 | |
| Lecture 20 (22nd Oct) | ZKP for NP: ZKP for Graph 3-coloring, Proofs of Knowledge, NIZK, Sigma Protocols | Lecture 20 slides Main reference: Boneh-Shoup |
| Lecture 21 (24th Oct) | Application: E-Voting | Lecture 21 slides Main reference: link |
| (29th oct) | Quiz 3 | Q. Paper [sol sketch] |
| Lecture 22 (29th Oct) | Post-Quantum Security: LWE based PKE | Lecture 22 slides Reference: paper |
| Lecture 23 (31st Oct) | Private Outsourcing of Computation: Homomorphic Encryption, Fully Homomorphic Encryption from LWE (GSW) | Lecture 23 slides Reference: survey |
| Lecture 24 (7th Nov) | TUTORIAL | Tutorial set 2 |
| 8th Nov onwards | END SEM EXAMS | Q. Paper [sol sketch] |