What do I learn?

Digital information are ubitiquous. They appear in various forms, such as the data stored in cloud, the messages sent back and forth between the smartphone and Web application service, or the activity post in a social network. We observe a growing demand for digital information in an intensity almost comparable to elementary resources. Such a demand turns precious, exclusive information into assets with a remarkable value, and companies in possession of the information to major players of our economy and society. Securing information thus from competetors, national security agencies or cyberattackers is a crucial requirement when it comes to building, implementing or deploying a digital system and security by design turns into a game changing feature. 

Contemporary cryptography introduces concepts to protecting information. In fact, all well-established information security technologies of today build upon some cryptographic concept. Understanding cryptographic algorithm design, essential security properties and the reason why cryptographic algorithms are deemed secure is a fundamental step towards the goal of designing, implementing and deploying secure information technologies.

The lecture is devoted to study the foundations of cryptographic algorithm design. We explore the basic concepts underpinned by some very concrete applications, including

  • Basic number-theoretic structures, including groups, rings and fields
  • Modular arithmetic
  • Elliptic Curves
  • Lattices
  • The Discrete Log Problem
  • Diffie-Hellman Key Exchange
  • El Gamal Encryption
  • Cramer-Shoup Encryption
  • (EC)DSA
  • Textbook and full-domain RSA
  • Post-Quantum secure Regev Encryption

Our treatment of cryptography is formal. It is an neccessary requirement. Imprecise deployment of cryptographic concepts may lead to vulnerable implementations and render the whole idea of securing the system void.  

What can I do with this knowledge?

You learn the theory to understand cryptographic algorithms and protocols. Most notably you learn to de-obfuscate the "magic" of cryptography and obtain the powerful skill of understanding why a cryptographic algorithm has been designed this way. You will be confident to choose the right cryptographic concept in order to implement a secure information system and understand many important cryptographic applications, such as SSL/TLS, bitlocker or bitcoin.

Rules of the Game

You are given problem sets each week to be solved before the forthcoming class. A tutor grades your solutions. Towards the end of the course you write a final exam. You qualify for the final exam, if

">50% of problem sets are solved correctly" 

Recommended Books

Jonathan Katz and Yehuda Lindell: Introduction to Modern Cryptography (2nd Edition). Chapman & Hall   Victor Shoup: A Computational Introduction to Number Theory and Algebra. Cambridge University Press    

Online Courses

You may have a look at Jonathan Katz's lecture on coursera. Dan Boneh's cryptography course is also pretty awesome.

Research Papers

  • Oded Goldreich and Leonid Levin: A hard-core predicate for all one-way functions. STOC, 1989
  • Johan Hastad, Russell Impagliazzo, Leonid A. Levin, and Michael Luby: A Pseudorandom Generator from any One-way Function. SIAM J. Comput., 28(4), 1364–1396
  • Oded Goldreich, Shafi Goldwasser and Silvio Micali: How to Construct Random Functions, Journal of the ACM, vol.33, no.4, 792-807
  • Shafi Goldwasser and Silvio Micali, Probabilistic Encryption, Special issue of Journal of Computer and Systems Sciences, Vol. 28, No. 2, 270-299
  • Shafi Goldwasser, Silvio Micali, and Ronald L. Rivest: A Digital Signature Scheme Secure Against Adaptive Chosen-Message Attacks. SIAM J. Comput., 17(2), 281–308
  • Ronald Cramer, Victor Shoup: A Practical Public Key Cryptosystem Provably Secure Against Adaptive Chosen Ciphertext Attack. CRYPTO, 1998: 13-25
  • Oded Regev: On lattices, learning with errors, random linear codes, and cryptography. J. ACM 56(6): 34:1-34:40 (2009)