Cryptography uses mathematical algorithms and protocols to ensure the confidentiality, integrity, and authenticity of information. Today, cryptographic principles and systems form an integral part of almost all online activity. This course is an introduction to the fundamentals of modern cryptography. You will learn about cryptography’s formal approach to security. You will learn about cryptographic primitives, and you will learn how those primitives can be used.
This webpage serves as the course syllabus, and it will be edited throughout the semester to release resources.
We will meet Tuesdays and Thursdays from 10:30am – 11:50am in the Electrical and Computer Engineering (ECE) Building room 3013. Lectures will be recorded and made available online.
Tuesdays from 12:15-1:15 in Siebel Center 4322
Fridays from 4:00-5:00 in Siebel Center Basement
Homeworks will be made available here and submitted via Gradescope. You can use code J7YKVB to sign up.
A discussion board is available on Piazza.
Books:
Jonathan Katz’s and Yehuda Lindell’s Introduction to Modern Cryptography is our main textbook.
Mike Rosulek’s The Joy of Cryptography is an excellent, albeit unfinished, free resource.
Dan Boneh’s and Victor Shoup’s A Graduate Course in Applied Cryptography is an additional resource.
The following courses are required:
CS 225: Introduction to Data Structures and Algorithms
Prerequisite overrides will be considered on a case-by-case basis.
We expect that you are familiar with basic probability, modular arithmetic, and logarithms. Take the time to read this chapter of The Joy of Cryptography and make sure you understand the concepts within.
Participation (\(10\%\)). Please show up to class, and participate in discussions in class and on Piazza. We will sometimes take formal attendance in class. You can miss up to three lectures without excuse; after that, each unexcused absence deduct from your participation grade.
Four to Six homework assignments (\(50\%\)). Written homeworks are the bulk of your grade! See Below.
Midterm Exam (\(20\%\)). The midterm exam will be a cumulative test on all course topics covered prior to the midterm. It will be a combination of multiple choice and free response problems.
Final Exam (\(20\%\)). The final exam will be a cumulative test on all course topics. It will be a combination of multiple choice and free response problems.
A small number of extra credit opportunities will be made available throughout the semester. Your first opportunity is to visit office hours within the first three weeks of class for \(1\%\) extra credit on your class grade. Just come to office hours so that you know where to go, and explain you are there for the extra credit opportunity.
(4 credit hours only) Final project (\(15\%\)). In teams of 1–2, you will read papers in the cryptography literature, then write a long-form review. You must propose your project topic to me by Thursday, March 27. Come talk to me about potential topics! (If you are registered for four credit hours, your final grade will be out of \(115\%\), and it will be normalized to out of \(100\%\).)
Your letter grade will be assigned as follows: A: 93-100, A-: 90-92, B+: 87-89, B: 83-86, B-: 80-82, C+: 77-79, C: 73-76, C-: 70-72, D+: 67-69, D: 63-66, D-: 60-62, F: 0-59.
The course will include four to six (depending on the pace of the course) homework assignments. Homework makes up half of your grade!
Each homework will include careful instructions. Homework problems will include (1) long-form problem write-ups and proofs as well as (2) C++ programming assignments. For programming assignments, follow instructions carefully to receive full credit.
Homeworks are to be submitted via Gradescope. Homework materials follow:
Homeworks are to be submitted individually. However, you may collaborate with up to one other student on homework assignments. On each homework submission, declare your collaborator (if any). In your collaboration you are expected to discuss the homework, not merely copy answers. Plagiarism will not be tolerated (see Academic Integrity).
Date | Topic | Lecture Slides | Resources | ||
---|---|---|---|---|---|
1/21 | Course Overview and Introduction | Slides | Video | ||
1/23 | Perfect Secrecy and One-Time Pads | Slides | Video | ||
1/28 | Pseudorandom Generators | Slides | Video, Recommended Reading | ||
1/30 | Pseudorandom Generators Continued | Slides | Video, Recommended Reading | ||
2/4 | One-time Semantic Security and PRFs | Slides | Video, Recommended Reading | ||
2/6 | Block Ciphers and CPA Security | Slides | Video, Recommended Reading | ||
2/11 | CPA Security | Slides | Recommended Reading | ||
2/13 | |||||
2/18 | |||||
2/20 | |||||
2/25 | |||||
2/27 | |||||
3/4 | |||||
3/6 | |||||
3/11 | |||||
3/13 | |||||
3/18 | |||||
3/20 | |||||
3/25 | Spring Break – No Class | ||||
3/27 | Spring Break – No Class | ||||
4/1 | |||||
4/3 | |||||
4/8 | |||||
4/10 | |||||
4/15 | |||||
4/17 | |||||
4/22 | |||||
4/24 | |||||
4/29 | |||||
5/1 | |||||
5/6 |
The final exam is currently scheduled for Thursday, May 15 at 8:00am.
Topics covered in the course include – but are not limited to – the following:
Perfect Secrecy and One-Time Pads
Pseudorandom Generators
Pseudorandom Functions
Block Ciphers
Message Authentication
Authenticated Encryption
Key Exchange
Public Key Encryption
Digital Signatures
Zero Knowledge Proofs
Secure Multiparty Computation
Academic dishonesty is a serious offense. The University of Illinois Urbana-Champaign Student Code (https://studentcode.illinois.edu) is considered a part of this syllabus. If you are ever in doubt of what constitutes plagiarism or cheating, do not hesitate to ask me.
To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES you may visit 1207 S. Oak St., Champaign, call 333-4603 (V/TTY), or e-mail a message to disability@illinois.edu.