📖 公钥密码体制
🎯 课程摘要:公钥密码体制由 Diffie 和 Hellman 于 1976 年提出,使用一对不同的密钥——公开的公钥(PK)用于加密、保密的私钥(SK)用于解密,从根本上解决了对称密钥体制中密钥分发的难题。RSA 是目前最著名的公钥密码算法,实际应用中常将公钥密码体制(用于建立会话密钥)与对称密钥密码体制(用于加密大量数据)结合使用。
📝 详细笔记
1. 公钥密码体制的产生原因
在对称密钥密码体制中,加解密双方需共享同一个密钥,常用做法有两种:
| 方法 | 缺点 |
|---|---|
| 双方事先约定同一密钥 | 密钥的管理和更换极不方便 |
| 使用信使传送密钥 | 不适用于高度自动化的大型计算机网络 |
尽管使用复杂但高度安全的密钥分配中心可以解决该问题,但采用公钥密码体制可以更容易地解决密钥分发问题。
2. 公钥密码体制的基本概念
- 提出者:斯坦福大学研究人员 Diffie 和 Hellman,于 1976 年提出
- 核心特征:使用不同的加密密钥和解密密钥
- 公钥(PK):向公众公开的加密密钥
- 私钥(SK):需要保密的解密密钥
- 算法公开:加密算法 E 和解密算法 D 都是公开的
- ⚠️ 重点:尽管私钥 SK 由公钥 PK 决定,但不能根据 PK 计算出 SK;公钥 PK 只能用来加密,不能用来解密
3. 公钥加密/解密过程
- 加密和解密运算可以对调
- 任何发送方都可以获得公钥 PK 并用来加密
- 加密后的密文只能由接收方用自己的私钥 SK 解密
- 采用公钥密码体制更易解决密钥分发问题
4. 公钥密码算法
公钥密码体制提出不久,研究人员就找到了三种公钥密码算法。其中最著名的是 RSA 算法:
- 提出者:美国三位科学家 Rivest、Shamir 和 Adleman
- 提出时间:1976 年提出,1978 年正式发表
- 数学基础:基于数论中大数分解问题
公钥密码体制不仅用于加密,还可以很方便地用于鉴别和数字签名。
5. 对称密钥密码体制 vs 公钥密码体制
| 对比项 | 对称密钥密码体制 | 公钥密码体制 |
|---|---|---|
| 密钥数量 | 加解密共用一个密钥 | 一对密钥(公钥 PK +私钥 SK) |
| 密钥保密 | 密钥必须保密 | 公钥公开,私钥保密 |
| 密钥分发 | 困难(需信使或 KDC) | 容易(公钥可公开) |
| 运算速度 | 快 | 比对称算法慢好几个数量级 |
| 适用场景 | 加密大量数据 | 会话密钥建立、鉴别、数字签名 |
- ⚠️ 重点:由于公钥密码算法比对称密钥算法慢好几个数量级,因此公钥密码体制通常用于会话密钥的建立,而对称密钥密码体制用于其他大多数情况下的加密
6. 公钥密码体制与对称密钥密码体制的结合使用
- 会话密钥:仅用于 A 和 B 之间本次会话的对称密钥
- 公钥密码体制加密很少的数据量(会话密钥),对称密钥密码体制加密大量数据
7. 加密方法安全性的决定因素
- ⚠️ 重点/考点:任何加密方法的安全性取决于密钥的长度和攻破密文所需的计算量,而不是简单地取决于加密体制
- 因此不能简单地判断对称密钥密码体制与公钥密码体制相比哪个安全性更好
💡 核心总结
- 公钥密码体制使用公钥(PK)加密、私钥(SK)解密,PK 公开、SK 保密,且 PK 无法推算出 SK
- RSA 是最著名的公钥密码算法,基于大数分解问题
- 公钥密码算法运算慢,常用于建立会话密钥;对称密钥算法运算快,用于加密大量数据
- 实际应用中常将两种体制结合:公钥加密会话密钥,对称密钥加密数据
- 安全性取决于密钥长度和攻破密文的计算量,而非加密体制本身
❓ 课后思考 / 经典考题
- 公钥密码体制中,公钥 PK 能否用来解密?为什么 PK 可以公开?
- 为什么实际应用中常将公钥密码体制与对称密钥密码体制结合使用?
- 简述 RSA 算法的数学基础及其在公钥密码体制中的地位。
- 为什么说"加密方法的安全性取决于密钥长度和计算量,而不是加密体制"?
- 画图说明用户 A 与用户 B 利用公钥密码体制建立会话密钥并加密通信的过程。