This course will cover different mechanisms to provably protect sensitive data. We will answer the following questions in the course:
Can Alice send a secret message to Bob even in the presence of an eavesdropper?
Can Charlie authenticate whether the document he received was indeed sent by David?
There are 4 parts to this course:
Part I (4 weeks): Private-key Encryption Schemes
Relevant chapters in Katz-Lindell: Chapters 1,2,3 and 7.
Part II (2 weeks): Hash Functions
Relevant chapters in Katz-Lindell: Chapter 5.
Part III (3 weeks): Public-Key Encryption Schemes
Relevant chapters in Katz-Lindell: Chapters 8, 10 and, 11.
Part IV (1 week): Digital signatures
Relevant chapters in Katz-Lindell: Chapter 12.
We will roughly follow material from the book by Jonathan Katz and Yehuda Lindell. However, you can follow the course even if you don't have the book as long as you attend the lectures. Useful online materials available for free:
Discrete mathematics (CS 40). Mathematical maturity that includes being comfortable with parsing and writing proofs.
January:
6: Importance of cryptography, private-key encryption
8: Caeser cipher, Vignere cipher
13: Formal definition, one-time pad
15: Hybrid technique
20: Holiday
22: Negligible functions, multi-message security definition
27: Pseudorandom generators
29: Pseudorandom generators (continued)
February:
3: Midterm
5: Pseudorandom generators and one-way functions
10: Pseudorandom generators and one-way functions (continued)
12: Pseudorandom functions: definition
17: Holiday
19: Encryption from pseudorandom functions
24: Pseudorandom functions from pseudorandom generators
March:
26: Hash functions: collision resistance and random oracle model
3: Public-key encryption: formal definition
5: Number theory prelims, RSA cryptosystem
10: Group theory and El Gamal encryption scheme
12: Digital signatures
Lecture hours: MW 2:00pm to 3:15pm
First day of lecture: January 6th
Lecture hall: LSB 1001
Instructor: Prabhanjan Ananth
Instructor's office hours: MW 3:20pm to 3:50pm, HFH 1119
Digital communication with the instructor: via Slack only.
Teaching Assistants (TAs): Divyanshu Bhardwaj, Ofir Dvir, Richard Huang, Caleb Lee, Chuyan Zhang
TA office hours: held in the CS department trailer:
DB: 10am to 11am every Monday (except holidays)
CL: 12:30pm to 2:30pm every Thursday
CZ: 10am to 12pm every Wednesday
RH: 2pm to 4pm every Tuesday
Discussion Sections: Fridays 10-10:50am, 11-11:50am, 12-12:50pm, 1-1:50pm.
First day of discussion sections: October 4th
Quizzes and assignments will be submitted on Gradescope. The gradescope code is 8K37GY.
Weekly quizzes (count towards 40% of the grade)
Multiple choice questions
The least score dropped (new)
Released every Wednesday. Due in one week.
Assignments (20%)
3 assignments
Best 2 out of 3 considered
Proof-based problems
No collaboration allowed: discussing the solutions of the assignment with your fellow classmates before the due date is strictly prohibited. Please read the UCSB policy here.
Midterm (20%)
Proof-based problems
Closed-book exam
Please bring pens, pencils to the exam. We will provide solution booklets for you.
Discussing with your classmates during the exam time is strictly prohibited.
Final exam (20%)
Proof-based problems
Closed-book exam
Please bring pens, pencils to the exam. We will provide solution booklets for you.
Discussing with your classmates during the exam time is strictly prohibited.
Grade distribution:
30-35 (out of 100): C
35-40: C+
40-50: B-
50-60: B
60+: grade will be curved. An A/A+ grade will be awarded for those who are either among the top 30-40% of the students OR received more than 90. The top 3-5 students will receive A+.
Assignment 1:
Release date: 15th January (2nd week)
Due date: 22nd January (3rd week)
Graded assignments released: end of 4th week
Assignment 2:
Release date: 12th February (6th week)
Due date: 19th February (7th week)
Graded assignments released: end of 8th week
Assignment 3:
Release date: 26th February (8th week)
Due date: 11th January (9th week)
Graded assignments released: during 10th week
Midterm: 3rd February during lecture hours.
Location: LSB 1001
Graded midterms released: end of 6th week
Finals: 17th March from 4pm-7pm
Location: LSB 1001
Regularly attend the lectures.
After every lecture, review the material taught in the lecture. If you have missed or haven't followed the previous lecture then it is likely that you will face an uphill battle to follow the rest of the course.
Ask questions. This is an important part of the learning experience.
Writing sound mathematical proofs requires a ton of practice. Please practice the problems from the textbook.
Start working on the assignments early. Don't keep it till the last minute.
The multiple choice questions can in general be solved by directly applying the concepts taught in the class. The proof based problems will be quite challenging -- be prepared to spend a lot of time on them. Depending on your level of preparation, you might be spending many hours on the assignment. If you are spending more than 20 hours on a given assignment then you should consider dropping the course.
All announcements will be made on Slack. If you have enrolled in the course, the Slack link to join the course workspace will be sent to you via email.
Any medical reason for not being able to complete the assignments should be accompanied by a doctor's note. Read more about absence and withdrawal from a course here.
If your grades are poor in the assignments or the exames then I suggest you re-do the assignment and submit it to the TAs by the end of 10th week. This doesn't necessarily improve the grade but could ensure that you won't fail in the course.
Consulting the internet for solutions (including posting questions on Chegg) is strictly prohibited. In particular, the use of Artificial Intelligence tools (including LLMs such as ChatGPT) is strictly prohibited.
No assignment extensions will be allowed.