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.)

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, Diffie-Hellman key exchange
Week 8 3/4 RSA encryptions
Week 9 3/11 Spring Break No Class
Week 10 3/18 Digital Signatures
Week 11 3/25 Digital Signatures
Week 12 4/1 Pairing-based cryptography
Week 13 4/8 Zero-knowledge proofs
Week 14 4/15 Secure Multiparty Computation
Week 15 4/22 Blockchain
Week 16 4/29 Ethics and Cryptography, 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