分组密码(块密码)复习笔记
一、定义
分组密码是一种满足映射关系 $V_n \times K \to V_m$ 的密码算法:
将 n 维明文向量空间,在密钥空间 $K$ 的作用下,变换为 m 维密文向量空间。
- 本质:对 n 字长数字序列 进行代换的密码。
二、典型算法
- 国际标准:DES、3DES、AES
- 国密算法:SM4、SM1、SM7
三、核心结构
- SP 结构:由代换层(S盒)和置换层(P盒)交替组成的基础结构。
- Feistel 结构:由香农提出,是 SP 结构的一种特殊形式,也是很多经典分组密码(如 DES)的核心结构。
四、安全性设计原则
- 扩散(Diffusion):让明文的每一位变化,尽可能影响到更多的密文位,隐藏明文的统计特性。
- 混淆(Confusion):让密钥和密文之间的关系变得复杂,攻击者无法通过密文直接推导出密钥信息。
五、与流密码的核心区别
| 特性 | 分组密码(块密码) | 流密码 |
|---|---|---|
| 处理方式 | 按块变换(将明文分成固定长度的组,逐组加密) | 按位/逐字节变换(明文与密钥流按位异或) |
| 核心特点 | 依赖复杂的分组运算和多轮迭代 | 依赖密钥流生成器,算法结构相对简单 |
六、常见工作模式
- ECB 电子密码本模式
- 特点:每个明文块独立加密,相同明文块得到相同密文块,安全性最低,不推荐用于加密长数据。
- CBC 密码分组链接模式
- 特点:前一个密文块参与下一个明文块的加密,引入了初始向量(IV),隐藏了明文的模式,是常用的安全模式。
- CFB 密码反馈模式
- 特点:将分组密码转化为流密码,可按字节/比特处理数据,适合处理长度不确定的数据流。
- OFB 输出反馈模式
- 特点:将分组密码转化为同步流密码,密钥流与明文无关,加密/解密对称,传输错误不会传播。
- CTR 计数器模式
- 特点:将分组密码用作流密码,通过计数器生成密钥流,支持并行加密/解密,效率高,是现代应用中推荐的模式。
💡 补充小贴士:
- Feistel 结构的优势在于加解密结构对称,硬件实现成本低;而 AES 采用的是无 Feistel 的 SP 网络结构,安全性更高、速度更快。
- 实际应用中,ECB 模式因为安全性太差,基本被淘汰;目前主流的安全选择是 CBC(需配合MAC保证完整性)或 CTR 模式。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 slowbirdie.top@outlook.com