GCM Galois Counter Mode

You've always wanted to learn cryptography, but you've been intimidated by the highly technical and mathematical literature? Or you've been confused by the big number of acronyms? You've probably heard that crypto stuff is hard, and is best left to experts. Well, fear no longer: crypto is fun, useful, and you too can learn it, one bite at a time.

The best way to learn cryptography is by taking an introductory class in Applied Cryptography. You may read a textbook (and do the exercises), or, much better, you can watch a live lecture at undergraduate level at your University or a recorded lecture on YouTube.

Christof Paar's Cryptography Lectures

An excellent crypto primer is Introduction to Cryptography by Prof. Christof Paar and Prof. Jan Pelzl. It is a very accessible textbook for beginners, that I highly recommend. You may also enjoy viewing Prof. Paar's 25-part 2 semester lectures on cryptography that he taught in 2010/2011 at the Ruhr Universität Bochum, Germany, based on that textbook. If your time is very limited, at least have a look at the lecture slides.

  1. Lecture 1. Introduction to Cryptography
  2. Lecture 2. Modular Arithmetic and Historical Ciphers (+ slides for L1, L2)
  3. Lecture 3. Stream Ciphers, Random Numbers, and the One Time Pad
  4. Lecture 4. Stream Ciphers and Linear Feedback Shift Registers (+ slides for L3, L4)
  5. Lecture 5. Data Encryption Standard (DES): Encryption
  6. Lecture 6. Data Encryption Standard (DES): Key Schedule and Decryption (+ slides for L5, L6)
  7. Lecture 7. Introduction to Galois Fields for the AES
  8. Lecture 8. Advanced Encryption Standard (AES) (+ slides for L7, L8, + full chapter on AES)
  9. Lecture 9. Modes of Operation for Block Ciphers
  10. Lecture 10. Multiple Encryption and Brute Force Attacks (+ slides for L9, L10)
  11. Lecture 11. Number Theory for PKC: Euclidian Algorithm, Euler's Phi Function, and Euler's Theorem (+ slides)
  12. Lecture 12. The RSA Cryptosystem and Efficient Exponentiation (+ slides)
  13. Lecture 13. Diffie-Hellman Key Exchange and the Discrete Log Problem
  14. Lecture 14. The Generalized Discrete Log Problem and the Security of Diffie-Hellman
  15. Lecture 15. ElGamal Encryption Scheme (+ slides for L13, L14, L15)
  16. Lecture 16. Introduction to Elliptic Curves
  17. Lecture 17. Elliptic Curves Cryptography (ECC) (+ slides for L16, L17)
  18. Lecture 18. Digital Signatures and Security Services
  19. Lecture 19. ElGamal Digital Signature (+ slides for L18, L19)
  20. Lecture 20. Hash Functions
  21. Lecture 21. SHA-1 Hash Function (+ slides for L20, L21)
  22. Lecture 21a. SHA-3 Hash Function (+ extension chapter)
  23. Lecture 22. MAC (Message Authentication Codes) and HMAC (+ slides)
  24. Lecture 23. Symmetric Key Establishment and Kerberos
  25. Lecture 24. Man-in-the-Middle Attack, Certificates, and PKI (+ slides for L23, L24)

Here's part 1, which starts rather slow, but don't worry, it'll get faster (and the recording much better and less wobbly) in the subsequent parts:


There's a companion site to this textbook and lectures, which features an extensive Errata List to the printed book (you should really use it!), a Solutions Manual for odd numbered exercises (full solutions manual for instructors upon request), slides, and downloadable recordings of the lectures in mov format (if you can't download them off youtube with youtube-dl), together with the exercises.

Note to German readers: Es gibt auch eine spätere deutsche Version der Vorlesung mit gleichem Inhalt, die man ebenfalls auf der Support-Site herunterladen kann. Auch das Buch ist inzwischen auf Deutsch erschienen. Es ist sicher Geschmackssache, aber mir hat die Vorlesung auf Englisch besser gefallen.

In the following crypto bites, I'll assume that you have taken this class, read the book, looked at the slides, or that you have equivalent knowledge. I may link to some of these lectures where necessary.