Winter 2023

Stanford University

This course offers an introduction to cryptographic techniques used in computer security, covering encryption, message integrity, digital signatures, key management, and more. It is suitable for advanced undergraduates and masters students with some proof techniques and programming experience.

Cryptography is an indispensable tool for protecting information in computer systems. This course explains the inner workings of cryptographic primitives and how to use them correctly.

This course is an introduction to the basic theory and practice of cryptographic techniques used in computer security. We will cover topics such as encryption (secret-key and public-key), message integrity, digital signatures, user authentication, key management, cryptographic hashing, Network security protocols (SSL, IPsec), public-key infrastructure, digital rights management, and a bit of zero-knowledge protocols.

Optional readings can be found in the textbooks denoted by KL and AC in the syllabus below. The optional AC book, by Boneh and Shoup, is more advanced (and free) and is intended for students wishing to go deeper. The online version of the course is another resource for the material covered in class.

**Boneh-Shoup (AC):**(free)*A Graduate Course in Applied Cryptography (V 0.5)*by D. Boneh and V. Shoup**KL:***Introduction to Modern Cryptography*(2nd edition) by J. Katz and Y. Lindell.

The course is self contained, however a basic understanding of probability theory and modular arithmetic will be helpful. The course is intended for advanced undergraduates and masters students. Students are expected to have experience with basic proof techniques and some programming experience.

No data.

Students can supplement the lectures with an online version of the course (MOOC) that covers some of the material.

The following books can be used to supplement the lectures:

- Optional:
*A Graduate Course in Applied Cryptography*by D. Boneh and V. Shoup. (free) - Optional:
*Introduction to Modern Cryptography*by J. Katz and Y. Lindell.

Note that the textbooks do not cover all the material discussed in class.

Lecture slides available at Course syllabus, videos, and slides

Videos available on Coursera at Course syllabus, videos, and slides

Homwork and project available at Homework

The following is a free textbook for the course. The book goes into more depth, including security proofs, and many exercises.

*A Graduate Course in Applied Cryptography*by D. Boneh and V. Shoup (free)

Active attacksAdvanced Encryption Standard (AES)Arithmetic modulo primesAuthenticated encryptionAuthenticated key exchangeBlock cipherCBC-MACCertificate TransparencyCertificate revocationCertificatesChallenge-response authenticationChosen Ciphertext Attacks (CCA) securityChosen Plaintext Attacks (CPA)CipherCipher Block Chaining (CBC)Collision-resistant hashingComputational Diffie-Hellman (CDH) assumptionCounter modeDavies-Meyer constructionDiffie-Hellman key exchangeDigital signatureDiscrete logarithm assumptionElGamal public key encryptionEnd-to-end encryptionFinite cyclic groupsGrover's algorithmHash-based Message Authentication Code (HMAC)Hash-based signaturesIdentification protocolsIterated Even-Mansour ciphersMerkle-Damgard constructionMessage integrityOne time padOne-time passwordsPMACPassword protocolsPerfect secrecyPost-quantum cryptographyPost-quantum digital signaturesPost-quantum key exchangePseudo Random Functions (PRF)Pseudo Random Permutations (PRP)RSA trapdoor permutationS/KeySaltsSecurIDSecure Hash Algorithm (SHA)Secure Socket Layer (SSL)Semantic securityShor's algorithmStream ciphersSymmetric-key encryptionTransport Layer Security (TLS)Trapdoor functionZero-knowledge proof