A key idea in modern cryptography is to try and design protocols that are secure against polynomial time adversaries (rather than all adversaries). This relaxed notion of security allows to implement many amazing tasks. (To give just one example we can consider two players playing poker over the phone without the help of a trusted party). In the course we will develop the basic machinery that allows such protocols with emphasis on precise definitions and rigorous proofs.

This course complements the course "introduction to cryptography" and students are allowed (and encouraged) to take both courses.

Requirements:

In the end of the semester there will be an exam.

During the course I will sometimes present questions in class that you can think of and try to solve.

You can also take a look at the following assignment that was used in a course two years ago and try to solve relevant questions.

Course material:

The material in the course is mostly covered in the following book (that is available in several copies in the library)

FOUNDATIONS OF CRYPTOGRAPHY by ODED GOLDREICH.

Some of the material can be found in lecture notes of a course by Yehuda Lindell from Bar-Ilan University.