Cryptography I (Coursera)

Offered by Stanford University,
Cryptography I (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

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.

Syllabus

WEEK 1
Course overview and stream ciphers
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.

WEEK 2
Block Ciphers
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.

WEEK 3
Message Integrity
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
Authenticated Encryption
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.

WEEK 5
Basic Key Exchange
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
Public-Key Encryption
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.

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!

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Engineering Maintainable Android Apps (Coursera) Coursera
Vanderbilt University

Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Jun 22nd 2026
4 Weeks
Web Connectivity and Security in Embedded Systems (Coursera) Coursera
EIT Digital

Web Connectivity and Security in Embedded Systems (Coursera)

In this course, we will explore several technologies that bring modern devices together, facilitating a network of connected things and making devices internet enabled. We will discuss rules, protocols, and standards for these devices to communicate with each other in the network. We will also go through security and privacy issues and challenges in cyber physical systems (CPS). We will explore measures and techniques for securing systems from different perspectives. Possible attack models are introduced and solutions to tackle such attacks are discussed. Moreover, some basic concepts related to privacy in cyber physical systems are presented.

Jun 22nd 2026
5-12 Weeks
DDoS Attacks and Defenses (Coursera) Coursera
University of Colorado System

DDoS Attacks and Defenses (Coursera)

In this MOOC, you will learn the history of DDoS attacks and analyze new Mirai IoT Malware and perform source code analysis. you will be provided with a brief overview of DDoS Defense techniques. You learn an Autonomous Anti-DDoS Network called A2D2 for small/medium size organizations to deal with DDoS attacks. A2D2 uses Linux Firewall Rate limiting and Class Based Queueing, and subnet flood detection to handle various DDoS traffic types.

Jun 22nd 2026
4 Weeks
Real-Time Cyber Threat Detection and Mitigation (Coursera) Coursera
New York University

Real-Time Cyber Threat Detection and Mitigation (Coursera)

This course introduces real-time cyber security techniques and methods in the context of the TCP/IP protocol suites. Explanation of some basic TCP/IP security hacks is used to introduce the need for network security solutions such as stateless and stateful firewalls. Learners will be introduced to the techniques used to design and configure firewall solutions such as packet filters and proxies to protect enterprise assets.

Jun 22nd 2026
4 Weeks
Software Design as an Element of the Software Development Lifecycle (Coursera) Coursera
University of Colorado System

Software Design as an Element of the Software Development Lifecycle (Coursera)

This course talks about software development lifecycles a description/prescription for how we write software. Design is a step in this life cycle, and the course explores the implications of this. Design has a role in the life cycle; it is always there, regardless of the kind of life cycle we’re talking about. Why is that? Why was design considered as a step in this life cycle?

Jun 22nd 2026
5-12 Weeks
Cybersecurity and the Internet of Things (Coursera) Coursera
University System of Georgia

Cybersecurity and the Internet of Things (Coursera)

Welcome to “Cybersecurity and the Internet of Things”! This course is for you if you are curious about the most recent trends and activities in the internet capabilities and concerns about programmed devices. There are complexities and areas of necessary awareness when the industrial sector becomes connected to your home.

Jun 22nd 2026
4 Weeks
Classical Cryptosystems and Core Concepts (Coursera) Coursera
University of Colorado System

Classical Cryptosystems and Core Concepts (Coursera)

Welcome to Introduction to Applied Cryptography. Cryptography is an essential component of cybersecurity. The need to protect sensitive information and ensure the integrity of industrial control processes has placed a premium on cybersecurity skills in today’s information technology market. Demand for cybersecurity jobs is expected to rise 6 million globally by 2019, with a projected shortfall of 1.5 million, according to Symantec, the world’s largest security software vendor. According to Forbes, the cybersecurity market is expected to grow from $75 billion in 2015 to $170 billion by 2020.

Jun 22nd 2026
3 Weeks
Big Data Analytical Platform on Alibaba Cloud (Coursera) Coursera
Alibaba Cloud Academy

Big Data Analytical Platform on Alibaba Cloud (Coursera)

Building an Analytical Platform on Alibaba Cloud can empower how you take in, analyze, and demonstrate clear metrics from a set of Big Data. This course is designed to teach engineers how to use Alibaba Cloud Big Data products. It covers basic distributed system theory and Alibaba Cloud's core products like MaxCompute, DataWorks, E-MapReduce as well as a bundle of ecosystem tools.

Jun 22nd 2026
5-12 Weeks
Risk in Modern Society (Coursera) Coursera
Leiden University,LDE Centre for Safety and Security

Risk in Modern Society (Coursera)

Risk has become one of the defining features of modern society. Almost daily, we are preoccupied with assessing, discussing, or preventing a wide variety of risks. It is a cornerstone notion for businesses and organizations, but also for nation states and their many levels of government. And even for individuals, risk and the avoidance or embracing thereof, is a key theme. The course Risk in Modern Society sheds light on the broad concept of risk.

Jun 22nd 2026
5-12 Weeks
Introduction to Cybersecurity for Business (Coursera) Coursera
University of Colorado System

Introduction to Cybersecurity for Business (Coursera)

The world runs computers. From small to large businesses, from the CEO down to level 1 support staff, everyone uses computers. This course is designed to give you a practical perspective on computer security. This course approaches computer security in a way that anyone can understand. Ever wonder how your bank website is secure when you connect to it? Wonder how other business owners secure their network? Wonder how large data breaches happen? This is practical computer security. It will help you answer the question – what should I focus on?

Jun 22nd 2026
5-12 Weeks
Advanced System Security Topics (Coursera) Coursera
University of Colorado System

Advanced System Security Topics (Coursera)

In this MOOC, we learn RBAC and ABAC access control to facilitate the specification and management of access policies. We learn examples of how RBAC is supported by modern systems such as Docker and AWS IAM. We learn XACML 3.0 and an ABAC implementation for controling secure access to web documents and network resources with attribute certificates, and XACML architecture components.

Jun 22nd 2026
4 Weeks
Cyber Threats and Attack Vectors (Coursera) Coursera
University of Colorado System

Cyber Threats and Attack Vectors (Coursera)

Data breaches occur nearly every day. From very large retailers, down to your fantasy football website, and anywhere in between, they have been compromised in some way. How did the attackers get in? What did they do with the data they compromised? What should I be concerned with in my own business or my systems? This course is the second course in the Practical Computer Security. It will discuss types of threats and attack vectors commonly seen in today’s environment.

Jun 22nd 2026
5-12 Weeks