Cryptography - CMSC 456
Course Outline This course serves as an introduction to cryptography suitable for advanced undergraduates and graduate students.
The focus is on definitions, theoretical foundations, and rigorous proofs of security. This course is cross-listed with the mathematics department, so it will have a significant mathematical component.
This course complements Computer and Network Security (CMSC 414) which focuses more on "high-level" issues and actual systems; in this class, we will look "under the hood" and attempt to understand various cryptographic protocols and algorithms.
This course and CMSC 414 may be taken in either order, and are designed to be largely independent of each other.
We will begin with a brief discussion of "classical" cryptography and its limitations. Following this, we will define a notion of "perfect" (information-theoretic) security and see what can and cannot be achieved in this sense.
This will lead us naturally to the modern, complexity-theoretic appraoch to cryptography in which security is based on the assumed computational hardness of various problems.
In this vein, we will study pseudo-randomness, private-key (i.e., shared key) encryption and message authentication, block ciphers, authentication, public-key encryption, and digital signatures. Advanced topics will be covered as time permits.
No advanced mathematics background is assumed, but students are expected to possess "mathematical maturity" since many of the concepts will be abstract and rigorous proofs will be given occasionally throughout the semester.
Discrete mathematics (probability theory, modular arithmetic) and complexity theory are also helpful, but the necessary prerequisites will be covered in class.
A graduate cryptography course is offered regularly by the instructor.
The graduate course will not assume that students have taken the undergraduate course; therefore, there will be a fair amount of overlap between the two.
In any case, I welcome students who wish to take both.
The graduate version will cover more material in far greater depth, will assume slightly more mathematical background, and will focus more on rigorous proofs of security. If you have questions about which version is "right" for you, please see me.
- The class meets Tuesdays and Thursdays from 12:30 - 1:45 in 1122 CSIC.
- Office hours for the instructor and the TA are listed below.
- There is no assigned textbook for this course. However, the course notes by Bellare and Rogaway and my lecture notes will be very useful.
- Grading will be based on 5-6 homeworks assigned throughout the course (35%), two midterm exams (30% total), and a final exam (35%). Note that homeworks make up a significant portion of the final grade!
Graduate students taking the course (both Masters and PhDs students) will be graded on a separate scale from undergraduates.
- You may collaborate on the homeworks with at most one other student in the class. Each student must independently write up their own solutions. Cheating will not be tolerated!
- You may consult outside references when doing the homework, as long as these sources are properly referenced, you write up the solution yourself, and you understand the answer.
- Feedback is very important. Please let me know (via email, if you like) if anything covered in class is unclear. Most likely, other students are having the same difficulty.
- Check the course homepage frequently since all handouts will be distributed via the web and an updated syllabus will be maintained on this page.
Staff Instructor: Jonathan Katz (jkatz AT cs). Office: 3225 A.V. Williams Building. Office hours: Thursday 3:30 - 4:30 (note change in day), or by appointment.
Teaching Assistant: Nan Wang (nwang AT cs). Office hours: Tuesday and Thursday 4 - 5 in 1151 A.V. Williams (TA room).