An Intensive Introduction to Cryptography

Boaz Barak

Work in progress

These are lecture notes for lecture notes for an introductory but fast-paced undergraduate/beginning graduate course on cryptography. I am using these notes for Harvard CS 127.

You can also download all lecture notes in a single PDF file.

If you have any comments, suggestions, typo fixes, etc.. I would be very grateful if you post them as an issue or pull request in the GitHub repository where I am maintaining the source files for these notes.


0 Preface (pdf version)

0.5 Mathematical background (pdf version)

1 Introduction (pdf version)

2 Computational security (pdf version)

3 Pseudorandom generators (pdf version)

4 Pseudorandom functions (pdf version)

5 Pseudorandom functions from pseudorandom generators (pdf version)

6 Chosen ciphertext security (pdf version)

7 Hash functions, proofs of work and cryptocurrencies (pdf version)

8 More hash functions (pdf version)

9 Public key cryptography (pdf version)

10 Concrete public key schemes (pdf version)

11 Lattice based cryptography (pdf version)

12 Chosen Ciphertext Security for Public Key Encryption (pdf version)

13 Establishing secure communication channels (pdf version)

14 Zero knowledge proofs (pdf version)

15 Fully homomorphic encryption (pdf version)

16 Fully homomorphic encryption II (pdf version)

17 Multiparty secure computation (pdf version)

18 Multiparty secure computation II (pdf version)

19 Quantum computing and cryptography (pdf version)

20 Quantum computing and cryptography II (pdf version)

21 Software obfuscation (pdf version)

22 Software obfuscation II (pdf version)

23 Anonymous routing (pdf version)

24 Cryptography morality and policy (pdf version)

25 Course recap (pdf version)

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.