Course Information

Course Description and Prerequisites

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 cryptograhy’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.

Textbooks (optional)

Slides and files:

Assignments and Gradebook::



Class 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 will deduct of your participation grade.

Homework: 50%. The course will include four homework assignments. 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. Late homework will not be accepted without valid excuses and approval of the instructor

Final Exam: 40%. The final exam will be a cumulative test on all course topics. It will be a combination of multiple choice and free response problems. 8:00-11:00 a.m., Monday, May 6

(4 credit hours only) Final project: 20%. In teams of 2, you will read papers in the cryptography literature, then write a long-form review. Come talk to me about potential topics. (If you are registered for four credit hours, your final grade will be out of 120, and it will be normalized to out of 100.)

Grading: [93-100] A, [90-92] A-, [87-89] B+, [83-86] B, [80-82] B-, [77-79] C+, [73-76] C, [70-72] C-, [67-69] D+, [63-66] D, [60-62] D-, [0-59] F.

Schedule (tentative)

Week Date Topic Readings
Week 1 1/17 Introduction and background on Cryptography
1/19 Ancient ciphers Chapter 1.1-1.3, Introduction to Morden Cryptography
Week 2 1/22 Perfect secrecy, one-time pad Chapter 1.4, 2
1/24 Computational Security Chapter 3.1,3.2
1/26 Pseudorandomness Chapter 3.3
Week 3 1/29 Chosen plaintext attack, stream cipher Chapter 3.4, 3.6, 7.1
1/31 Pseudorandom Function and Block cipher Chapter 3.5
2/2 DES and AES Chapter 7.2
Week 4 2/5 Modes of Operation Chapter 3.6
2/7 Modes of Operation Chapter 3.6
2/9 Padding oracle attacks Chapter 5.1
Week 5 2/12 Message Authentication Codes Chapter 4
2/14 CCA security Chapter 5.1.2
2/16 Authenticated Encryption Chapter 5.2-5.3
Week 6 2/19 Hash functions Chapter 6.1, 6.4
2/21 Merkle hash tree Chapter 6.6
2/23 HMAC Chapter 6.2-6.3
Week 7 2/26 Number Theory Chapter 9.1, 9.3
2/28 Diffie-Hellman key exchange Chapter 11.3, 12.4
3/1 ElGamal encryption Chapter 9.4, 12.3
Week 8 3/4 Factoring assumptions Chapter 9.2
3/6 RSA encryptions Chapter 12.5
3/8 Class canceled due to travelling
Week 9 3/11 Spring Break No Class
Week 10 3/18 RSA with CCA security Chapter 12.5
3/20 Random Oracle and Digital Signature Chapter 6.5, 13.1-13.2
3/22 RSA Signature Chapter 13.3, 13.4
Week 11 3/25 Schnorr Signature Chapter 13.5
3/27 DSA Signature and PKI Chapter 13.5, 13.6
3/29 Elliptic curve Chapter 9.3.4
Week 12 4/1 Bilinear pairing and BLS signature Chapter 15.4 and 15.5 in A Graduate Course in Applied Cryptography
4/3 Commitment scheme Chapter 6.6.5, Introduction to Morden Cryptography
4/5 Sigma protocols Chapter 19.4 and 19.5 in A Graduate Course in Applied Cryptography
Week 13 4/8 Blockchain and cryptocurrencies
4/10 Smart contract
4/12 Zero-knowledge proof and its applications in blockchain
Week 14 4/15 Privacy-preserving cryptocurrencies and zkRollup Zcash
4/17 Polynomial commitments KZG polynomial commitment
4/19 Sumcheck protocol sumcheck
Week 15 4/22 GKR protocol GKR
4/24 Secure Multiparty Computation: Oblivious Transfer Chapter 11.6.1 in A Graduate Course in Applied Cryptography
4/26 Garbled circuits Chapter 23.3 in A Graduate Course in Applied Cryptography
Week 16 4/29 GMW protocol Chapter 23.2 in A Graduate Course in Applied Cryptography
5/1 Review session

Academic Integrity

Academic dishonesty is a serious offense. The University of Illinois Urbana-Champaign Student Code 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.

Disability Accommodations

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