📖 密码学相关基本概念
🎯 课程摘要:密码学是计算机网络安全的基础。本节介绍密码学的基本术语(明文、密文、加密、解密、密钥)、数据加密的一般模型、为何依靠密钥而非算法保密、对称密钥密码体制与公钥密码体制的区分,以及密码体制的安全性(无条件安全 vs 计算上安全)。
📝 详细笔记
1. 密码学基本术语
| 术语 | 定义 |
|---|---|
| 明文 | 加密前的原始数据 |
| 密文 | 加密后、对不知道如何做逆变换的人不可理解的数据形式 |
| 加密 | 将发送的数据变换成对任何不知道如何做逆变换的人都不可理解的形式,从而保证数据的机密性 |
| 解密 | 通过某种逆变换,将密文重新变换回明文 |
| 密钥 | 加密和解密过程使用的参数;必须保密,但加密和解密的过程可以公开 |
- 核心原则:只有知道密钥的人才能解密密文;即使知道加密或解密算法,没有密钥也无法解密密文。
2. 数据加密的一般模型
将待加密的明文 X 通过加密密钥 Ka 和加密算法 E 加密成密文 Y;密文 Y 传送到接收端后,利用解密密钥 Kb 和解密算法 D 解出明文 X。
明文 X --[加密算法 E, 加密密钥 Ka]--> 密文 Y --(网络传送)--> [解密算法 D, 解密密钥 Kb]--> 明文 X
加密过程:
Y = E(Ka, X)解密过程:
X = D(Kb, Y)⚠️ 重点/考点:加密密钥和解密密钥可以相同也可以不同,取决于采用的是对称密钥密码体制还是公开密钥密码体制。
3. 对称密钥密码体制 vs 公钥密码体制
| 对比项 | 对称密钥密码体制 | 公钥密码体制(公开密钥密码体制) |
|---|---|---|
| 加密密钥与解密密钥 | 相同(Ka = Kb) | 不同(Ka ≠ Kb) |
| 密钥保密性 | 密钥必须保密 | 加密密钥可公开,解密密钥保密 |
| 安全性基础 | 密钥的保密 | 解密密钥的保密 |
4. 为何依靠密钥保密而非算法保密
- 算法失密的代价:一旦算法失密,就必须放弃该算法;而开发一个新的密码算法是非常困难的事情。
- 密钥的优势:
- 密钥空间可以很大
- 用密钥将密码算法参数化,同一个密码算法可以为大量用户提供加密服务
- 只需更换密钥即可,无需更换算法
- 结论:密码算法可以公开,保密的核心在于密钥。
5. 密码体制的安全性
| 安全性类别 | 定义 | 现实情况 |
|---|---|---|
| 无条件安全(理论上不可破) | 不论攻击者截获了多少密文,在密文中都没有足够的信息来唯一确定出对应的明文 | 在无任何条件限制下,目前几乎所有使用的密码体制均是可破的 |
| 计算上安全 | 一个密码体制中的密码不能在一定时间内被可以使用的计算资源破解 | 实际工程追求的目标 |
- ⚠️ 重点/考点:
- 人们关心的是计算上安全而非理论上不可破。
- 通过使用长的密钥可以有效增加破解密文的难度,但同时也使加密方和解密方的计算量加大。
💡 核心总结
- 密码学基本术语:明文 →(加密)→ 密文 →(解密)→ 明文,密钥是保密的核心参数。
- 加密模型:
Y = E(Ka, X),X = D(Kb, Y);Ka 与 Kb 是否相同决定密码体制类型。 - 依靠密钥保密而非算法保密:算法公开,密钥参数化,密钥空间大,同一算法可服务大量用户。
- 安全性分两级:无条件安全(理论不可破,实际不存在)和计算上安全(一定时间内、可用计算资源无法破解,工程目标);长密钥增加破解难度但也增加计算量。
❓ 课后思考 / 经典考题
- 解释明文、密文、加密、解密、密钥的含义。
- 写出数据加密的一般模型,并说明加密密钥与解密密钥的关系。
- 为什么密码系统依靠密钥保密而不是依靠密码算法保密?
- 对称密钥密码体制与公钥密码体制的主要区别是什么?
- 什么是无条件安全?什么是计算上安全?实际使用的密码体制追求哪种安全性?
- 增加密钥长度对密码体制的安全性和性能有什么影响?