This website does readability filtering of other pages. All styles, scripts, forms and ads are stripped. If you want your website excluded or have other feedback, use this form.

Cryptography I | Coursera

success fail Feb MAR Apr 23 2017 2018 2019 202 captures 25 Feb 2016 - 16 Jun 2018 About this capture COLLECTED BY Organization: Internet Archive Focused crawls are collections of frequently-updated webcrawl data from narrow (as opposed to broad or wide) web crawls, often focused on a single domain or subdomain.
Collection: top_domains-01750 TIMESTAMPS

Cryptography I

OverviewSyllabusFAQsCreatorsRatings and Reviews

HomeComputer ScienceComputer Security and Networks

Cryptography I

Stanford University

About this course: 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.

Created by:  Stanford University
  • Taught by:  Dan Boneh, Professor

    Computer Science
Language English How To Pass Pass all graded assignments to complete the course. User Ratings 4.8 stars Average User Rating 4.8See what learners said Syllabus WEEK 1 Course overview and stream ciphers Week 1. This week's topic is an overview of what cryptography is about as well as our first example ciphers. You will learn about pseudo-randomness and how to use it for encryption. We will also look at a few basic definitions of secure encryption. 12 videos, 2 readings, 1 practice quiz
  1. Reading: Lecture slides for all six weeks
  2. Reading: Course overview and additional reading resources
  3. Video: Course Overview
  4. Video: What is Cryptography?
  5. Video: History of Cryptography
  6. Video: Discrete Probability (Crash Course)
  7. Video: Discrete Probability (Crash Course, Cont.)
  8. Video: Information Theoretic Security and The One Time Pad
  9. Video: Stream Ciphers and Pseudo Random Generators
  10. Video: Attacks on Stream Ciphers and The One Time Pad
  11. Video: Real-World Stream Ciphers
  12. Video: PRG Security Definitions
  13. Video: Semantic Security
  14. Video: Stream Ciphers are Semantically Secure [optional]
  15. Practice Quiz: Week 1 - Programming Assignment [optional]
Graded: Week 1 - Problem Set WEEK 2 Block Ciphers Week 2. We introduce a new primitive called a block cipher that will let us build more powerful forms of encryption. We will look at a few classic block-cipher constructions (AES and 3DES) and see how to use them for encryption. Block ciphers are the work horse of cryptography and have many applications. Next week we will see how to use block ciphers to provide data integrity. The optional programming assignment this week asks students to build an encryption/decryption system using AES. 11 videos, 1 practice quiz
  1. Video: What are Block Ciphers?
  2. Video: The Data Encryption Standard
  3. Video: Exhaustive Search Attacks
  4. Video: More Attacks on Block Ciphers
  5. Video: The AES Block Cipher
  6. Video: Block Ciphers From PRGs
  7. Video: Review: PRPs and PRFs
  8. Video: Modes of Operation: One Time Key
  9. Video: Security for Many-Time Key (CPA security)
  10. Video: Modes of Operation: Many Time Key (CBC)
  11. Video: Modes of Operation: Many Time Key (CTR)
  12. Practice Quiz: Week 2 - Programming Assignment [Optional]
Graded: Week 2 - Problem Set WEEK 3 Message Integrity Week 3. This week's topic is data integrity. We will discuss a number of classic constructions for MAC systems that are used to ensure data integrity. For now we only discuss how to prevent modification of non-secret data. Next week we will come back to encryption and show how to provide both confidentiality and integrity. This week's programming project shows how to authenticate large video files. Even if you don't do the project, please read the project description --- it teaches an important concept called a hash chain. 11 videos, 1 practice quiz
  1. Video: Message Authentication Codes
  2. Video: MACs Based On PRFs
  3. Video: CBC-MAC and NMAC
  4. Video: MAC Padding
  5. Video: PMAC and the Carter-Wegman MAC
  6. Video: Introduction
  7. Video: Generic Birthday Attack
  8. Video: The Merkle-Damgard Paradigm
  9. Video: Constructing Compression Functions
  10. Video: HMAC
  11. Video: Timing attacks on MAC verification
  12. Practice Quiz: Week 3 - Programming Assignment [Optional]
Graded: Week 3 - Problem Set WEEK 4 Authenticated Encryption Week 4. This week's topic is authenticated encryption: encryption methods that ensure both confidentiality and integrity. We will also discuss a few odds and ends such as how to search on encrypted data. This is our last week studying symmetric encryption. Next week we start with key management and public-key cryptography. As usual there is also an extra credit programming project. This week's project involves a bit of networking to experiment with a chosen ciphertext attack on a toy web site. 12 videos, 1 practice quiz
  1. Video: Active Attacks on CPA-Secure Encryption
  2. Video: Definitions
  3. Video: Chosen Ciphertext Attacks
  4. Video: Constructions From Ciphers and MACs
  5. Video: Case Study: TLS 1.2
  6. Video: CBC Padding Attacks
  7. Video: Attacking Non-Atomic Decryption
  8. Video: Key Derivation
  9. Video: Deterministic Encryption
  10. Video: Deterministic Encryption: SIV and Wide PRP
  11. Video: Tweakable Encryption
  12. Video: Format Preserving Encryption
  13. Practice Quiz: Week 4 - Programming Project [Optional]
Graded: Week 4 - Problem Set WEEK 5 Basic Key Exchange Week 5. This week's topic is basic key exchange: how to setup a secret key between two parties. For now we only consider protocols secure against eavesdropping. This question motivates the main concepts of public key cryptography, but before we build public-key systems we need to take a brief detour and cover a few basic concepts from computational number theory. We will start with algorithms dating back to antiquity (Euclid) and work our way up to Fermat, Euler, and Legendre. We will also mention in passing a few useful concepts from 20th century math. Next week we will put our hard work from this week to good use and construct several public key encryption systems. 9 videos, 1 reading, 1 practice quiz
  1. Video: Trusted 3rd Parties
  2. Video: Merkle Puzzles
  3. Video: The Diffie-Hellman Protocol
  4. Video: Public-Key Encryption
  5. Video: Notation
  6. Video: Fermat and Euler
  7. Video: Modular e'th Roots
  8. Reading: More background on number theory
  9. Video: Arithmetic algorithms
  10. Video: Intractable Problems
  11. Practice Quiz: Week 5 - Programming Assignment [Optional]
Graded: Week 5 - Problem Set WEEK 6 Public-Key Encryption Week 6. This week's topic is public key encryption: how to encrypt using a public key and decrypt using a secret key. Public key encryption is used for key management in encrypted file systems, in encrypted messaging systems, and for many other tasks. The videos cover two families of public key encryption systems: one based on trapdoor functions (RSA in particular) and the other based on the Diffie-Hellman protocol. We construct systems that are secure against tampering, also known as chosen ciphertext security (CCA security). There has been a ton of research on CCA security over the past decade and given the allotted time we can only summarize the main results from the last few years. The lectures contain suggestions for further readings for those interested in learning more about CCA secure public-key systems. The problem set this week involves a bit more math than usual, but should expand your understanding of public-key encryption. Please don't be shy about posting questions in the forum. This is the last week of this Crypto I course. I hope everyone learned a lot and enjoyed the material. Crypto is a beautiful topic with lots of open problems and room for further research. I look forward to seeing you in Crypto II where we will cover additional core topics and a few more advanced topics. 11 videos, 1 practice quiz
  1. Video: Definitions and Security
  2. Video: Constructions
  3. Video: The RSA Trapdoor Permutation
  4. Video: PKCS 1
  5. Video: Is RSA a One-Way Function?
  6. Video: RSA in Practice
  7. Video: The ElGamal Public-key System
  8. Video: ElGamal Security
  9. Video: ElGamal Variants With Better Security
  10. Video: A Unifying Theme
  11. Video: Farewell (For Now)
  12. Practice Quiz: Week 6 - Programming Assignment [Optional]
Graded: Week 6 - Problem Set WEEK 7 Final exam Congratulations! We are at the end of the course. This module contains only the final exam which covers the entire course. I hope everyone learned a lot during these 6 weeks. Good luck on the final exam and I look forward to seeing you at a future course!
    Graded: Final Exam
    FAQs How It Works Coursework

    Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

    Help from Your Peers

    Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.


    Earn official recognition for your work, and share your success with friends, colleagues, and employers.

    Creators Stanford University The Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is an American private research university located in Stanford, California on an 8,180-acre (3,310 ha) campus near Palo Alto, California, United States. Ratings and Reviews Rated 4.8 out of 5 of 1,742 ratings


    Extremely good course, with just enough math to comprehend the topics.


    I learned a lot from this course. From my perspective (background in math), Boneh made a good trade-off between a rigorous approach and covering real-world crypto - both is covered to a sensible degree. Looking forward to part 2.


    This was a great intro cryptography course for someone with a strong mathematics background like myself! Not fluff, Dan Boneh cuts straight to the point. Every lecture is brilliantly presented and explanations are always thorough and easy to follow. Topics are relevant for real world applications. Amazing course. Can't wait for part 2.

    Thank you very much for this amazing course, my priorities in software has been changed after this course.

    You May Also Like University of Maryland, College Park Software Security 1 course University of Maryland, College Park Software Security View course University of Maryland, College Park Hardware Security 1 course University of Maryland, College Park Hardware Security View course University of Illinois at Urbana-Champaign Cloud Computing Concepts: Part 2 1 course University of Illinois at Urbana-Champaign Cloud Computing Concepts: Part 2 View course University of Maryland, College Park Usable Security 1 course University of Maryland, College Park Usable Security View course University of Maryland, College Park Cryptography 1 course University of Maryland, College Park Cryptography View course Coursera Coursera provides universal access to the world’s best education, partnering with top universities and organizations to offer courses online. © 2018 Coursera Inc. All rights reserved.