Cryptography I

  • 4.8
Approx. 23 hours to complete

Course Summary

Learn about cryptography and its applications in the real world. Understand the principles of encryption and how it is used to secure data.

Key Learning Points

  • Learn about the history of cryptography and its modern applications
  • Understand the principles of encryption and decryption
  • Explore the different types of cryptographic algorithms and their uses

Related Topics for further study


Learning Outcomes

  • Understand the history and principles of cryptography
  • Learn about the different types of cryptographic algorithms
  • Gain the skills to apply cryptography in real-world scenarios

Prerequisites or good to have knowledge before taking this course

  • Basic understanding of computer science and programming
  • Familiarity with mathematical concepts like algebra and number theory

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Introduction to Cybersecurity
  • Applied Cryptography
  • Cryptography and Information Theory

Related Education Paths


Related Books

Description

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. In a second course (Crypto II) we will cover more advanced cryptographic tasks such as zero-knowledge, privacy mechanisms, and other forms of encryption.

Outline

  • Course overview and stream ciphers
  • 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 [optional]
  • Lecture slides for all six weeks
  • Course overview and additional reading resources
  • Week 1 - Problem Set
  • Week 1 - Programming Assignment [optional]
  • 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)
  • Week 2 - Problem Set
  • Week 2 - Programming Assignment [Optional]
  • 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
  • Week 3 - Problem Set
  • Week 3 - Programming Assignment [Optional]
  • 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
  • Week 4 - Problem Set
  • Week 4 - Programming Project [Optional]
  • Basic Key Exchange
  • Trusted 3rd Parties
  • Merkle Puzzles
  • The Diffie-Hellman Protocol
  • Public-Key Encryption
  • Notation
  • Fermat and Euler
  • Modular e'th Roots
  • Arithmetic algorithms
  • Intractable Problems
  • More background on number theory
  • Week 5 - Problem Set
  • Week 5 - Programming Assignment [Optional]
  • 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
  • Farewell (For Now)
  • Week 6 - Problem Set
  • Week 6 - Programming Assignment [Optional]
  • Final exam
  • Final Exam

Summary of User Reviews

The Crypto course on Coursera has received positive reviews from users. Many users found the course to be informative and engaging. The course covers a wide range of topics related to cryptography, including encryption and decryption techniques, digital signatures, and more.

Pros from User Reviews

  • Thorough coverage of cryptography concepts and techniques
  • Helpful assignments and quizzes to reinforce learning
  • Engaging and knowledgeable instructors
  • Flexible schedule allows for self-paced learning
  • Access to a supportive online community of learners

Cons from User Reviews

  • Some users found the course material to be too technical or difficult to understand
  • Limited interaction with instructors
  • Course content may not be applicable to all industries or job roles
  • Some users experienced technical issues with the Coursera platform
  • The course may require prior knowledge or experience in mathematics or computer science
English
Available now
Approx. 23 hours to complete
Dan Boneh
Stanford University
Coursera

Instructor

Dan Boneh

  • 4.8 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses