This course will cover different mechanisms to provably protect sensitive data. We will address 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:
5: Importance of cryptography, private-key encryption
7: Caeser cipher, Vignere cipher
12: Formal definition, one-time pad
14: Hybrid technique
19: Holiday
21: Negligible functions, multi-message security definition
26: Pseudorandom generators
28: Pseudorandom generators (continued)
February:
2: Pseudorandom generators and one-way functions
4: Pseudorandom generators and one-way functions (continued)
9: Midterm
11: Pseudorandom functions: definition
16: Holiday
18: Encryption from pseudorandom functions
23: Pseudorandom functions from pseudorandom generators
March:
25: Hash functions: collision resistance and random oracle model
2: Public-key encryption: formal definition
4: Number theory prelims, RSA cryptosystem
9: Group theory and El Gamal encryption scheme
11: Digital signatures
Lecture hours: MW 2:00pm to 3:15pm
First day of lecture: January 5th
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): Jacob Fingerman, Vikas Kalagi
TA office hours: held in the CS department trailer:
JF: 4:15pm to 4:45pm, Wednesdays
VK: 1pm to 2pm, Mondays
ULAs: Vedang Pradhan, Riley Paddock
Discussion Sections: Fridays 10-10:50am, 11-11:50am, 12:00-12:50pm
First day of discussion sections: January 9th
Quizzes and assignments will be submitted on Gradescope. The gradescope code is J47NW4.
Weekly quizzes (count towards 40% of the grade)
Multiple choice questions
The least score dropped
Released every Wednesday. Due in one week.
Assignments (20%)
2 assignments
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: 21st January (3rd week)
Due date: 30th January (4th week)
Graded assignments released: end of 5th week
Assignment 2:
Release date: 25th February (8th week)
Due date: 6th March (9th week)
Graded assignments released: end of 10th week
Midterm: 9th February during lecture hours.
Location: LSB 1001
Graded midterms released: end of 7th week
Finals: 16th 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 exams 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.
For assignments: 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) for coming up with solutions is strictly prohibited. However, we do allow the usage of AI tools for editorial purposes (such as generating LaTeX code).
For general usage: we allow for using generative AI tools as an aid to understand the course better. However, it is important to note that these AI tools are nowhere being perfect and can make mistakes. They can also be a distraction and can interfere in your learning experience.
No assignment extensions will be allowed.