Module 3 – Cryptography

Снимок экрана 2025-06-01 160337
Valiner
Last Update 03.06.2025
3 already enrolled

About This Course

Cryptography is an indispensable tool for protecting information in computer systems. In this course, you will learn about the inner workings of cryptographic systems and how to properly use them in other applications. The course will discuss in detail how two people, a shared secret key, can communicate securely when an adversary starts eavesdropping and starts moving traffic. We will cover many protocols and analyze bugs in a modern computer. The second class of the course will discuss public key methods that allow you to provide a shared secret key.

Curriculum

66 Lessons

Section 1: what is cryptography about?

Introduction to Cryptography
Introduction to Cryptography
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]

Block Ciphers

Block Ciphers

Message Integrity

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. Learning Objectives Learn how to ensure data integrity using Message Authentication Codes (MACs) Learn what cryptographic hash functions are and how to use them.

Authenticated Encryption

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.

Basic Key Exchange

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.

Public – Key Encryption

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.

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! Learning Objectives Final exam encompassing everything you learned in the course.

Test Title: Cryptography Fundamentals Test

Your Instructors

Valiner

0/5
6 Courses
0 Reviews
18 Students
See more

Write a review

Passwordless Login with Passkey Concept - 3D Illustration
CHF 0.00
Level
All Levels
Lectures
66 lectures
Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
Compare