分组密码(块密码)复习笔记

  1. 分组密码(块密码)复习笔记
    1. 一、定义
    2. 二、典型算法
    3. 三、核心结构
    4. 四、安全性设计原则
    5. 五、与流密码的核心区别
    6. 六、常见工作模式

分组密码(块密码)复习笔记


一、定义

分组密码是一种满足映射关系 $V_n \times K \to V_m$ 的密码算法:
n 维明文向量空间,在密钥空间 $K$ 的作用下,变换为 m 维密文向量空间

  • 本质:对 n 字长数字序列 进行代换的密码。

二、典型算法

  • 国际标准:DES、3DES、AES
  • 国密算法:SM4、SM1、SM7

三、核心结构

  1. SP 结构:由代换层(S盒)和置换层(P盒)交替组成的基础结构。
  2. Feistel 结构:由香农提出,是 SP 结构的一种特殊形式,也是很多经典分组密码(如 DES)的核心结构。

四、安全性设计原则

  1. 扩散(Diffusion):让明文的每一位变化,尽可能影响到更多的密文位,隐藏明文的统计特性。
  2. 混淆(Confusion):让密钥和密文之间的关系变得复杂,攻击者无法通过密文直接推导出密钥信息。

五、与流密码的核心区别

特性 分组密码(块密码) 流密码
处理方式 按块变换(将明文分成固定长度的组,逐组加密) 按位/逐字节变换(明文与密钥流按位异或)
核心特点 依赖复杂的分组运算和多轮迭代 依赖密钥流生成器,算法结构相对简单

六、常见工作模式

  1. ECB 电子密码本模式
    • 特点:每个明文块独立加密,相同明文块得到相同密文块,安全性最低,不推荐用于加密长数据。
  2. CBC 密码分组链接模式
    • 特点:前一个密文块参与下一个明文块的加密,引入了初始向量(IV),隐藏了明文的模式,是常用的安全模式。
  3. CFB 密码反馈模式
    • 特点:将分组密码转化为流密码,可按字节/比特处理数据,适合处理长度不确定的数据流。
  4. OFB 输出反馈模式
    • 特点:将分组密码转化为同步流密码,密钥流与明文无关,加密/解密对称,传输错误不会传播。
  5. CTR 计数器模式
    • 特点:将分组密码用作流密码,通过计数器生成密钥流,支持并行加密/解密,效率高,是现代应用中推荐的模式。

💡 补充小贴士:

  • Feistel 结构的优势在于加解密结构对称,硬件实现成本低;而 AES 采用的是无 Feistel 的 SP 网络结构,安全性更高、速度更快。
  • 实际应用中,ECB 模式因为安全性太差,基本被淘汰;目前主流的安全选择是 CBC(需配合MAC保证完整性)或 CTR 模式。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 slowbirdie.top@outlook.com