Members don't see the ad below. Register now!

Cryptography

Back to course list | Guidelines For Editing


Table of contents
Introduction
Prerequisites
Reading list
Video materials
Lecture notes
Software
Further studies

Information

Cryptography is going to be offered for the first time on (was January 23, 2012) now February, 2012.

Cryptography is an indispensable tool for protecting information in computer systems. This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications.

Topics include:

  1. How two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic.
  2. Examining many deployed protocols and analyzing mistakes in existing systems.
  3. Public-key techniques that let two or more parties generate a shared secret key.
  4. Relevant number theory, public-key encryption, digital signatures, and authentication protocols.

Towards the end of the course we will cover more advanced topics such as zero-knowledge, distributed protocols such as secure auctions, and a number of privacy mechanisms. Throughout the course students will be exposed to many exciting open problems in the field.

The course will include written homeworks and programming labs.

Prerequisites

The course is self-contained, however it will be helpful to have a basic understanding of discrete probability theory.

The course includes programming assignments and some programming background will be helpful. However, we will hand out lots of starter code that will help students complete the assignments. We will also point to online resources that can help students find the necessary background.

Recommended reading

Video materials

Lecture notes

Software

Further studies

powered by OSQA