MainCourse Catalog › Cryptography Intro

Cryptography Intro

Course code
Cryptography Intro

Cryptography is an indispensable tool for protecting information in computer systems. In this course you will learn the inner workings of cryptographic systems and how to correctly use them in real-world applications. The course begins 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. The second half of the course discusses 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 (optional) programming projects.


1. Basics

  • Course Overview
  • What is Cryptography?
  • History of Cryptography
  • Discrete Probability (Crash Course)
  • Discrete Probability (Crash Course, Cont.)
  • Information Theoretic Security and The One Time Pad
  • Stream Ciphers and Pseudo Random Generators
  • Attacks on Stream Ciphers and The One Time Pad
  • Real-World Stream Ciphers
  • PRG Security Definitions
  • Semantic Security
  • Stream Ciphers are Semantically Secure

2. Block Ciphers

  • What are Block Ciphers?
  • The Data Encryption Standard
  • Exhaustive Search Attacks
  • More Attacks on Block Ciphers
  • The AES Block Cipher
  • Block Ciphers From PRGs
  • Review: PRPs and PRFs
  • Modes of Operation: One Time Key
  • Security for Many-Time Key (CPA security)
  • Modes of Operation: Many Time Key (CBC)
  • Modes of Operation: Many Time Key (CTR)

3. Message Integrity

  • Message Authentication Codes
  • MACs Based On PRFs
  • CBC-MAC and NMAC
  • MAC Padding
  • PMAC and the Carter-Wegman MAC
  • Introduction
  • Generic Birthday Attack
  • The Merkle-Damgard Paradigm
  • Constructing Compression Functions
  • HMAC
  • Timing attacks on MAC verification

4. Authenticated Encryption

  • Active Attacks on CPA-Secure Encryption
  • Definitions
  • Chosen Ciphertext Attacks
  • Constructions From Ciphers and MACs
  • Case Study: TLS 1.2
  • CBC Padding Attacks
  • Attacking Non-Atomic Decryption
  • Key Derivation
  • Deterministic Encryption
  • Deterministic Encryption: SIV and Wide PRP
  • Tweakable Encryption
  • Format Preserving Encryption

5. Basic Key Exchange

  • Trusted 3rd Parties
  • Merkle Puzzles
  • The Diffie-Hellman Protocol
  • Public-Key Encryption
  • Notation
  • Fermat and Euler
  • Modular e’th Roots
  • Reading: More background on number theory
  • Arithmetic algorithms
  • Intractable Problems

6. Public-Key Encryption

  • Definitions and Security
  • Constructions
  • The RSA Trapdoor Permutation
  • PKCS 1
  • Is RSA a One-Way Function?
  • RSA in Practice
  • The ElGamal Public-key System
  • ElGamal Security
  • ElGamal Variants With Better Security
  • A Unifying Theme

For whom it is intended:

  • System administrator
  • System engineer
Registration for the course
* required fields

To pre-register for courses or clarify information, please call: +380 44 230 34 74