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.
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.
What's included
12 videos2 readings2 assignments
Show info about module content
12 videos•Total 210 minutes
Course Overview•11 minutes
What is Cryptography?•16 minutes
History of Cryptography•19 minutes
Discrete Probability (Crash Course)•18 minutes
Discrete Probability (Crash Course, Cont.)•14 minutes
Information Theoretic Security and The One Time Pad•19 minutes
Stream Ciphers and Pseudo Random Generators•20 minutes
Attacks on Stream Ciphers and The One Time Pad•23 minutes
Real-World Stream Ciphers•20 minutes
PRG Security Definitions•25 minutes
Semantic Security•16 minutes
Stream Ciphers are Semantically Secure [optional]•11 minutes
2 readings•Total 20 minutes
Lecture slides for all six weeks•10 minutes
Course overview and additional reading resources•10 minutes
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.
What's included
11 videos2 assignments
Show info about module content
11 videos•Total 167 minutes
What are Block Ciphers?•17 minutes
The Data Encryption Standard•22 minutes
Exhaustive Search Attacks•20 minutes
More Attacks on Block Ciphers •16 minutes
The AES Block Cipher•14 minutes
Block Ciphers From PRGs•12 minutes
Review: PRPs and PRFs•12 minutes
Modes of Operation: One Time Key•7 minutes
Security for Many-Time Key (CPA security)•23 minutes
Modes of Operation: Many Time Key (CBC)•16 minutes
Modes of Operation: Many Time Key (CTR) •9 minutes
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.
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.
What's included
12 videos2 assignments
Show info about module content
12 videos•Total 167 minutes
Active Attacks on CPA-Secure Encryption•13 minutes
Definitions •5 minutes
Chosen Ciphertext Attacks•12 minutes
Constructions From Ciphers and MACs•20 minutes
Case Study: TLS 1.2•18 minutes
CBC Padding Attacks•14 minutes
Attacking Non-Atomic Decryption •10 minutes
Key Derivation•14 minutes
Deterministic Encryption•15 minutes
Deterministic Encryption: SIV and Wide PRP•20 minutes
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.
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.
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!
What's included
1 assignment
Show info about module content
1 assignment•Total 30 minutes
Final Exam•30 minutes
Instructor
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
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.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.8
4,477 reviews
5 stars
84.85%
4 stars
12.21%
3 stars
1.71%
2 stars
0.49%
1 star
0.71%
Showing 3 of 4477
M
MF
4·
Reviewed on Apr 18, 2021
A bit too hard actually, should be more focused on practical cryptography that teaches how to use cryptography in computer programming more efficiently, rather than theoretical cryptography.
M
ME
5·
Reviewed on Jul 18, 2025
Aside from the average online courses, this one is almost at the university level and provides an advanced mathematical understanding of the fundamentals in the field of cryptography. Awesome!
L
LG
5·
Reviewed on Dec 15, 2017
This course gives is perfect to start learning cryptography, explanations are detailed, topics carefully selected combining theory with real world examples and making emphasis in important details.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I purchase the Certificate?
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.