Introduction to Cryptography


Stanford School of Engineering



Cryptography is an indispensable tool for protecting information in computer systems. This introduction to the basic theory and practice of cryptographic techniques used in computer security will explore the inner workings of cryptographic primitives and how to use them correctly.


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.

Topics include

  • Encryption (symmetric and public key)
  • Digital signatures and data integrity
  • Authentication
  • Key management, PKI, zero-knowledge protocols
  • Real-world applications

Note on Course Availability

The course schedule is displayed for planning purposes – courses can be modified, changed, or cancelled. Course availability will be considered finalized on the first day of open enrollment. For quarterly enrollment dates, please refer to our graduate certificate homepage.