名校公开课 / 斯坦福 / 经典

密码学 I

Cryptography I斯坦福self-paced免费旁听
流密码分组密码消息认证认证加密公钥加密

这门课学什么

课程讲现代密码原语怎样工作、又怎样被攻破:流密码、分组密码、消息完整性、认证加密、密钥交换和公钥加密。可选编程项目要求攻击有漏洞的实现。

内容摘要

这门课讲现代密码学的基本构件怎样工作,以及它们被错误使用时怎样失效。课程共 6 周,外加期末考试。讲师 Dan Boneh 是应用密码学专家。他的讲法是先给严格定义,再给构造和安全论证,最后讲真实世界中的攻击。

前 4 周讲对称密码学。第 1 周从一次一密讲到流密码和语义安全。第 2 周讲分组密码 DES 和 AES,以及 CBC 和 CTR 工作模式。第 3 周讲消息认证码和抗碰撞哈希,包括 HMAC。第 4 周把加密和完整性合在一起,讲认证加密,并分析 TLS 1.2 和 CBC 填充攻击。

后 2 周转到公钥密码学。第 5 周讲密钥交换(Merkle 谜题和 Diffie-Hellman)和所需的数论知识。第 6 周讲两类公钥加密:基于 RSA 陷门置换的方案和基于 Diffie-Hellman 的 ElGamal 方案。

每周有 1 次习题测验和 1 个选做编程作业。编程作业让你亲手攻破用错的密码方案。学完后,你能判断一个加密方案的用法是否正确,知道该选哪种标准构造。这门课也是学习公钥签名和安全协议的基础。

为什么值得学

Boneh 是应用密码学的顶尖学者。这门课是公认最好的免费密码学入门课。

课程信息

学校
斯坦福(Stanford)
讲师
Dan Boneh
学期
self-paced
平台
Coursera
费用
免费旁听
难度
中级
学时
约 30 小时
先修
需要离散概率基础,编程项目需要会一门编程语言。
材料
视频、作业、考试
许可证
未注明
去课程主页 ↗
课程是英文的。本页的介绍、摘要和大纲由极客教育原创撰写,讲次标题为中文意译。开课时间、收费和链接以官方页面为准。

课程大纲 · 共 14 节

大纲依据:Coursera 课程模块列表(6 周 + 期末考试,每周按讲次分成两段)(查看原始页面 ↗)

  1. 1.1
    课程概览Course Overview

    介绍密码学能做什么、不能做什么,以及密码学的历史。快速复习离散概率。

  2. 1.2
    流密码Stream Ciphers

    讲一次一密和信息论安全。讲伪随机生成器(PRG)、针对流密码的攻击、实际的流密码,以及语义安全的定义。

  3. 2.1
    分组密码Block Ciphers

    讲 DES、穷举搜索攻击、其他攻击和 AES。讲用 PRG 构造分组密码,复习伪随机置换(PRP)和伪随机函数(PRF)。

  4. 2.2
    分组密码的使用:工作模式Using Block Ciphers: Modes of Operation

    讲一次性密钥下的工作模式。定义选择明文攻击(CPA)安全,讲 CBC 和 CTR 模式。

  5. 3.1
    消息认证码Message Authentication Codes

    讲 MAC 的定义和基于 PRF 的构造。讲 CBC-MAC、NMAC、MAC 填充、PMAC 和 Carter-Wegman MAC。

  6. 3.2
    抗碰撞性Collision Resistance

    讲通用生日攻击和 Merkle-Damgård 结构。讲压缩函数的构造、HMAC,以及 MAC 验证中的计时攻击。

  7. 4.1
    认证加密Authenticated Encryption

    讲针对 CPA 安全加密的主动攻击。定义认证加密和选择密文攻击,讲用密码和 MAC 组合的构造方法。

  8. 4.2
    案例:TLS 1.2 与填充攻击Case Studies: TLS 1.2 and Padding Attacks

    分析 TLS 1.2 的记录协议。讲 CBC 填充攻击和非原子解密攻击。

  9. 4.3
    其他专题Odds and Ends

    讲密钥派生和确定性加密(SIV、宽 PRP)。讲可调加密(tweakable encryption)和保格式加密。

  10. 5.1
    基础密钥交换Basic Key Exchange

    讲可信第三方方案和 Merkle 谜题。讲 Diffie-Hellman 协议,并引出公钥加密的概念。

  11. 5.2
    数论入门Introduction to Number Theory

    讲模运算记号、费马小定理和欧拉定理。讲模 e 次根、算术算法和数论中的难解问题。

  12. 6.1
    基于陷门置换的公钥加密Public-Key Encryption from Trapdoor Permutations

    讲公钥加密的定义和安全性。讲 RSA 陷门置换、PKCS 1 和 RSA 的实际用法。

  13. 6.2
    基于 Diffie-Hellman 的公钥加密Public-Key Encryption from Diffie-Hellman

    讲 ElGamal 公钥系统及其安全性。讲安全性更强的变体,并总结公钥加密的统一思路。

  14. 7
    期末考试Final Exam

    期末考试覆盖全部 6 周内容。

斯坦福的其他经典课