Introduction to Cryptography

Computer Science 281/481
University of Rochester
Spring 2012

Instructor: Muthu Venkitasubramaniam

Time: MW 3:25-4:40
Place: CSB 601
Course Web page:

Office Hours: TBD

TA: Scott Ames




Modern cryptography studies techniques for facilitating interactions between distrustful entities. Today, with the advent of the Internet, these techniques become indispensable – enabling, for instance, anonymous electronic elections, privacy-preserving electronic auctions, internet banking and more. In this course we introduce some of the fundamental concepts of this study.

Note: This will be a theory course. You will be expected to read and write formal definitions and mathematical proofs. This is not a course in security: you will not learn how to secure your system. Cryptography is only one (important) part of security. We will not study cryptographic acronyms or all cryptographic protocols in use today. Rather we focus on some of the fundamental design paradigms and on notions that will allow you to critically evaluate cryptographic protocols.

Topics Include: one-way functions, private-key/public-key encryption systems, digital signatures, zero-knowledge, secure-multiparty computation and its applications.  



CS 280 (or equivalent), MTH150 (or mathematical maturity), or permission of instructor.
The main skills that will be assumed from these courses are: 1) the ability to understand and write formal mathematical definitions and proofs and 2) comfort with reasoning about algorithms, such as proving their correctness and analyzing their running times. It is also important that you are familiar with basic probability.

Course Administration





There will be roughly 4 homeworks and 3 exams. Students taking the graduate course will be expected to do a final project. The grade will be based on homework assignments, exams and class participation (and the final project).

Homework Policy


You are free to collaborate with other students on the homework, but you must turn in your own individually written solution and you must specify the names of your collaborators. Additionally, you may make use of published material, provided that you acknowledge all sources used. Note that it is a violation of this policy to submit a problem solution that you are unable to explain orally to me. Typed problem sets are strongly preferred.



Lecture notes covering a large fraction of the course can be found here (course notes developed by Rafael Pass and Abhi Shelat).


There is no required text for the course other than lecture notes. You may find the following two books to be useful references. Note, however, that we will not always be following the same notational conventions as these books.




For a more applied treatment of cryptography, I suggest the following book which is available on-line.



For background reading on probability, algorithms, and complexity theory, I recommend:




Topics Outline



Related Course


MTH 233: Introduction to Cryptography