Cryptography provides important tools for ensuring the security of modern digital systems and the privacy of the sensitive information involved in them. Nowadays, core cryptographic tools, such as, encryption, digital signature, key agreement protocols, are used behind millions of daily online transactions. This course will give an introduction to the development and application of cryptographic tools.
We will focus on the foundation of cryptography. The first and foremost questions to ask are philosophical: "What does it mean that a cryptographic tool, say encryption, is secure?", "Is security possible?", "What makes cryptographic tools trustworthy?". Since the 70's, Modern cryptography developed the mathematical language to articulate these questions, as well as the formal method to answer them. Various cryptographic tools and systems are then developed using the mathematical language and their security guarantees are rigorously reasoned about using the formal method. In this class, we study the mathematical underpinning of cryptography and core cryptographic tools developed upon it.