Introduction to Cryptography - CMSC 456

Spring 2016

Course Outline

This course is an undergraduate introduction to cryptography, whose aim is to present the theoretical foundations of cryptosystems used in the real world. 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" to get a better understanding of various cryptographic primitives, algorithms, attacks, and protocols.

The required textbook for the course is Introduction to Modern Cryptography, 2nd edition, by myself and Yehuda Lindell. The course will follow the book closely.
Note: The second edition has a number of topics not included in the first edition, plus additional exercises. The second edition of the book is required. The exams will be "open book" but electronics will not be allowed; therefore, students are advised not to use a Kindle edition or (illegal) copies of the book that can be found online.

This course has a significant mathematical component. No advanced mathematics background is assumed, but students are expected to have "mathematical maturity" since many of the concepts will be abstract, rigorous definitions and proofs will be given, and some advanced mathematics (group theory, number theory) will be covered. Basic background in discrete mathematics (probability, modular arithmetic) and algorithms (big-O notation, reading pseudocode) is assumed.

Moreover, some of the homeworks will require programming. The choice of language is flexible, however some homeworks will have a networking component with the networking code provided for you in a particular language. It is assumed you can pick up what is needed in order to complete the assignments.

The course will be similar, though not identical, to my previous offering of this course.

Lecture Schedule

After each lecture, I will post a (brief) summary of what we cover, and provide references to relevant sections of the book, here.


General Information