Cryptography
Coursera
Course Summary
This course will introduce you to the foundations of modern cryptography, with an eye toward practical applications.
-
+
Course Description
Historically, cryptography was used to ensure private communication between two people with some prior relationship. More recently, its scope has expanded to include things as diverse as data integrity, secure internet-wide communication, electronic cash, secure distributed computation, and more.Cryptography has also become ubiquitous. Perhaps unknowingly, we have all encountered applications of cryptography in our daily lives---whether by logging in using a password, making a web purchase over a secure connection, or applying a software update that is digitally signed.This course will introduce you to the foundations of modern cryptography, with an eye toward practical applications. We will learn the importance of carefully defining security; of relying on a set of well-studied “hardness assumptions” (e.g., the hardness of factoring large numbers); and of the possibility of proving security of complicated constructions based on low-level primitives. We will not only cover these ideas in theory, but will also explore their real-world impact. You will learn about cryptographic primitives in wide use today, and see how these can be combined to develop modern protocols for secure communication.
-
+
Course Syllabus
Introduction and Motivation
- Classical Encryption Schemes
- Principles of Modern Cryptography
Perfect Secrecy and Its Limitations
Private-Key Encryption- Computational Security
- Pseudorandom Generators and Stream Ciphers
- Pseudorandom Functions and Block Ciphers
- Modes of Encryption
- Security against Chosen-Ciphertext Attacks and Padding-Oracle Attacks
Message Authentication
- Secrecy vs. Integrity
- Message Authentication Codes
- CBC-MAC
- Authenticated Encryption
Hash Functions
- Security Requirements
- HMAC
- Additional Applications of Hash Functions
Number Theory and Mathematical Background
The Public-Key Revolution- Key Distribution and Key Management
- Diffie-Hellman Key Exchange
Public-Key Encryption
- Definitions of Security
- Hybrid Encryption and the KEM/DEM Paradigm
- El Gamal Encryption and DHIES
- RSA Encryption and the RSA PKCS #1 Standard
Digital Signatures
- Signatures vs. MACs
- RSA-Based Signatures and the RSA PKCS #1 Standard
- DSA/ECDSA
- Public-Key Infrastructures
-
+
Recommended Background
- Intended for students majoring in either computer science or mathematics.
- A prior course covering discrete mathematics and basic probability.
- Prior exposure to algorithms will be helpful, but the necessary background can be picked up quickly.
- Some of the examples and optional exercises will assume familiarity with programming in a C-like language, and some advanced topics will require mathematical maturity.