Cryptography is an indispensable tool for protecting information in computer systems. You will learn the inner workings of cryptographic systems and how to correctly use them in real-world applications. There will be two courses that will discuss the main cryptographic topics and problems.
cryptographyWe will begin with a detailed discussion of how two parties, who have a shared secret key, can communicate securely when a powerful adversary eavesdrops and tampers with traffic. We will examine many deployed protocols and analyze mistakes in existing systems. Then we will talk about public-key techniques, that let two parties generate a shared secret key. Throughout the course participants will be exposed to many exciting open problems in the field and work on fun programming projects. Later on, we will cover more advanced cryptographic tasks such as zero-knowledge, privacy mechanisms, and other forms of encryption.

Go to Course

  • Cryptography I
    • Stream Ciphers
    • Block Cipher
    • Message Integrity
    • Authenticated Encryption
    • Basic Key Exchange
    • Public Key Encryption
  • Cryptography II
  • Bitcoin and Cryptocurrency Technologies
    • Introduction to Crypto and Cryptocurrencies
    • How Bitcoin Achieves Decentralization
    • Mechanics of Bitcoin
    • How to Store and Use Bitcoins
    • Bitcoin Mining
    • Bitcoin and Anonymity
    • Community, Politics, and Regulation
    • Alternative Mining Puzzles
    • Bitcoin as a Platform
    • Altcoins and the Cryptocurrency Ecosystem
    • The Future of Bitcoin?