9.5 (66人)

- 知识量：
**10** - 教师参与：
**9.8** - 趣味性：
**9.9** - 课程设计：
**9.9**

难度：**一般**

- 学校：Stanford University
- 平台： Coursera
- 语言：
**英语授课 英语字幕** - 教师：
**Dan Boneh**

普通公民

获得证书 **2**

跟国内的密码学教学完全不是一个风格，dan牛的讲课更贴近实践，前后的连贯性、铺垫安排很合理。。课后除了日常作业外还有编程题很精彩，很实用。100%推荐！

授课大纲

WEEK 1**Module 1**

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.**阅读: **Lecture slides for all six weeks

**阅读: **Course overview and additional reading resources

**课程视频: **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]

**测验: **Week 1 - Problem Set

**测验: **Week 1 - Programming Assignment [optional]

WEEK 2**Module 1**

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 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]

WEEK 3**Module 1**

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.**课程视频: **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]

WEEK 4**Module 1**

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.**课程视频: **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]

WEEK 5**Module 1**

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.**课程视频: **Trusted 3rd Parties**课程视频: **Merkle Puzzles

**课程视频: **The Diffie-Hellman Protocol

**课程视频: **Public-Key Encryption

**课程视频: **Notation

**课程视频: **Fermat and Euler

**课程视频: **Modular e'th Roots

**阅读: **More background on number theory

**课程视频: **Arithmetic algorithms

**课程视频: **Intractable Problems

**测验: **Week 5 - Problem Set

**测验: **Week 5 - Programming Assignment [Optional]

WEEK 6**Module 1**

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.**课程视频: **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]

WEEK 7**Module 1**

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!**测验: **Final Exam

密码学是保护计算机系统信息安全不可或缺的工具。这门课程会介绍密码学原语的内部工作原理以及如何正确使用他们。学生将会学习如何论证密码结构的安全性以及如何将这些知识运用到现实生活中的应用中。这门课程将会以拥有共享的秘钥的双方如何在有一个能够监听和篡改数据流量的强大对手存在的情况下安全地进行通信作为开始。我们会检查许多已经实施的协议并且分析已存在系统中的错误。这门课程的第二部分将会讨论允许两个或多个人产生共享的私钥的公钥技术。我们会涉及相关的数论并讨论公钥加密和基本的密钥交换。整个课程中学生将会接触到这个领域内许多有趣的开放问题。

这门课程会包括书写的作业和编程的实验。这门课程的内容是自我包含的，然而，如果对离散概率理论有基本理解的话会有所帮助。

**常见问题解答****在完成这门课程后会拿到证书吗？**

是的。成功完成这门课程的学生会拿到老师签名的证书。**这门课程的形式是什么？**这门课会由小片的视频组成，每个视频一般为8到12分钟。其中的一些会包含嵌入的小测试。这门课程还会有不在视频中的独立测试和编程作业。每周大概会有2个小时长度的视频内容。

这门课程包含编程作业。拥有一些编程背景会有所帮助。然而，我们会提供一些能够帮助学生完成作业的基本代码。我们也会提到能够帮助学生找到必要背景的网络资源。

课程中已经包含了大部分需要用到的内容，然而离散概率方面的知识会有所帮助。离散概率方面的wikibooks文章应该能够为你提供足够的资源。

翻译：@希尔伯特变换

编辑：火绒草

京ICP证100430号 京网文[2015] 0609-239号 新出发京零字东150005号 京公网安备11010502007133号 ©2017果壳网