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.

In this course we introduce some of the fundamental concepts of this study. Emphasis will be placed on the foundations of cryptography and in particular on precise definitions and proof techniques.

 

Topics include: one-way functions, encryption, signatures, pseudo-random number generation, zero-knowledge and basic protocols.