General Information

Lectures: MW 12:30-1:45pm, WWH (Courant) 101. Instructor: Prof. Yevgeniy Dodis
Email:; Phone: 212-998-3084; Office: WWH (Courant) 508
Office hours: Wednesday 2-3pm and by appointment.
Teaching Assistant: Shabsi Walfish, Email:; Phone: 212-998-3127;
Office: WWH 505; Office Hours: Thursday 5-6pm and by appointment

Course Web Page: All course materials, handouts, homework and announcements will be available here. You should plan on visiting this page regularly and often!

Mailing list: To subscribe to the class list, follow instructions at
To post a message to all the list members, send email to Please, post only messages interesting to everybody taking the class. Specific class-related questions and most of your other correspondence should be directed to our TA Shabsi Walfish at Email me personally only if you have some more serious problem (personal or otherwise; e.g., you want to ask my advice if you should stay in the class, etc.). But don't hesitate to contact me if you need to!

Signup Sheet: Please fill it and return to me within the first week of the course.


No advanced mathematics background is assumed. However, students are expected to be somewhat comfortable with mathematical proof techniques (``mathematical maturity''), be at ease with algorithmic concepts, and have elementary knowledge of discrete math, number theory and basic probability. A brief review of relevant topics will be given as needed during the course, making it possible to follow the material. No programming will be required for the course.

``Mathematical maturity'' means simply that you have had exposure to proofs and know what distinguishes a formal proof from a convincing argument. It means you are familiar with "proofs by induction" and "proofs by contradiction". It also implies being comfortable with thinking about things in an abstract way.

Finally, learning cryptography involves a great deal of curiosity, creativity and originality. Please bring those along...


Grading will be based on the problem sets (given approximately bi-weekly), midterm/final exams and class participation. Depending on class enrollment and interests, it might be possible to do a small research project in place of the final exam.

Problem Sets. Problem sets will be due at the beginning of lecture. Homework without priorly obtained extension will not be accepted. I strongly prefer typed homework solutions. In fact, I encourage you to use Latex for your solutions. In addition to be legible and readable, such homework is not losable and can be submitted over e-mail. Additionally, in case you are not familiar with latex, this will you with the opportunity to learn this extremely useful tool. To encourage you even further, we provide you with a self-explanatory Latex template together with each homework. All you have to do is to fill in your solutions in the places marked! Finally, here is a brief Latex tutorial to get you started. Worst comes to worst, if you write by hand, write neatly!

Exams. Most likely, exams will be in class and will be closed book. I'm entertaining the option of replacing one of the exams by a take-home exam, and also giving the option to do a research project in place of the final exam. These will be decided very soon. Feel free to tell me your preference, though.

Participation. I want to keep this class interactive and you interested in the material. Therefore, questions (including ``stupid questions'', whatever that means) and other constructive participation is encouraged.


There is still not a single entirely satisfactory text in cryptography. Among those present, there are two recommended but not required textbooks (see below), plus I encourage you to read my own notes from the graduate cryptography class that I taught. The two recommended textbooks are (1) Delfs and Knebl ``Introduction to Cryptography'' and (2) Stinson `` Cryptography Theory and Practice (second edition)''. Please contact the Reading section on the web site for more detailed information and other suggestions.

Problem Set Policies

I expect you to try solving each problem set on your own. However, when being really stuck on a problem, I encourage you to collaborate with other students in the class, subject to the following rules:

  1. You may discuss a problem with one or two students in this class, and work together on solving it. This can involve brainstorming and verbally discussing the problem, going together through possible solutions, but should not involve one student telling another a complete solution.

  2. Once you solve the homework, you should write up your solutions on your own, without looking at other people's write-ups or giving your write-up to others.

  3. In your solutions for each problem, you should write down the names of the people with whom you worked on it. Do not worry that writing down the names will negatively affect your grade: it will not, as long as you are honest.

  4. Sometimes, it is OK (but not encouraged) to give others a small hint about your solution, but not the complete solution. When giving such a hint, you do not need to acknowledge this in your write-up. When given such a hint, you must acknowledge this in your solution.

  5. Do not consult solution manuals, other people's solutions from similar courses (or prior years of this course), and people not taking the class.

Last modified: September 3, 2002