Cryptocurrencies like Bitcoin and Ethereum have risen to mainstream prominence over the past decade. Not only has cryptography made this exciting development in the evolution of money possible, but it has also ensured that web traffic is kept private, securing modern e-commerce. This course will teach foundational cryptographic primitives: hashing, authenticated encryption, key exchange, digital signatures, and zero-knowledge proofs. Students will use these primitives to build an alternate version of TLS (a foundational internet protocol) and a private cryptocurrency. Coursework includes mathematical problems and programming projects in Python. Understanding the building blocks of cryptography, students will apply this knowledge to understand the basics of cryptocurrencies.
Live Meeting Time*
08:00 AM - 11:00 AM (PDT)
Session One
08:00 AM - 11:00 AM (PDT)
Session Two
*The course will meet for two hours daily (Monday–Friday) for a live online class during this window of time. The third hour is used for online office hours. Students will be admitted to and attend just one course section and time. The exact course time and office hour schedule will be set closer to the start of the program.
Prerequisite(s)
Basic knowledge of probability. Completion of an experience in programming (e.g., a year-long computer science class). Beginning knowledge of Python 3 programming language.