Back to search results

Cryptography and Cryptocurrency

Cryptography is about using mathematics and computational complexity to ensure privacy and security. Cryptographic protocols ensure web traffic is private, secure all modern e-commerce, and power cryptocurrencies like Bitcoin. In this course, we'll learn about foundational cryptographic primitives: hashing, authenticated encryption, key exchange, digital signatures, and zero-knowledge proofs. We'll use these primitives to build alternate version of TLS (a foundational internet protocol) and a private cryptocurrency. Coursework will be a mix of mathematical problems and programming projects in Python.

Back to search results
Session One
at the time of application
Scheduled Class Time*

08:00 AM - 11:00 AM (PDT)

*The course will meet for two hours daily (Monday–Friday) for a live class during this window of time. The exact time will be set closer to the program start. In addition to the live meeting times, students will engage in out-of-class learning assignments such as assigned readings, group work, pre-recorded online lectures, and more.


Students must have basic knowledge of probability, a year of experience programming (e.g., a year-long computer science class), and some beginning knowledge of the Python 3 programming language.