crypto2

DES加密算法。

分组密码与DES

一、对称加密两类

类型方式示例说明
流密码按位/字节异或密钥流RC4, ZUC类似“一次一密”的可实现版本
分组密码对固定长度块加密DES, AES现代主流加密结构

二、分组密码基本思想

  • 定义:把 n 位明文映射为 n 位密文的可逆变换
  • 核心目标:模拟理想随机代换(安全)
  • 实现方法:用多轮代换+置换(S/P)逼近理想代换。

三、Shannon 的两大原则

原则作用对应操作
混淆 (Confusion)增加密钥与密文关系复杂度S盒(非线性代换)
扩散 (Diffusion)分散明文统计特征P盒(置换)

四、Feistel 结构(现代分组密码核心)

DES、Blowfish、SM4 都基于此。

加密:

解密:

结论
解密 = 加密结构 + 子密钥逆序使用

优点:

  • 结构可逆;
  • 安全性可扩展(多轮叠加)。

五、简化DES(S-DES)

  • 教学模型:8位明文 + 10位密钥,2轮 Feistel;
  • 结构:IP → fK₁ → SW → fK₂ → IP⁻¹;
  • 说明了:“轮函数 + 密钥调度 + 左右交换” 的核心思想。

六、DES(Data Encryption Standard)

项目内容
块长64 位
密钥56 位有效(64 位含奇偶校验)
结构16 轮 Feistel
每轮密钥48 位
核心函数 F扩展 E → XOR Ki → S盒 → P置换

DES 关键要素

  1. S盒 (S-Box)

    • 唯一非线性部分;
    • 输入6位→输出4位;
    • 行由第1、6位确定,列由中间4位确定。
  2. 密钥调度

    • 主密钥 → PC-1 → 左右各28位 (C,D);
    • 每轮循环左移 → PC-2 压缩 → 48位子密钥 Ki。
  3. 加解密对称

    • 加密:K₁→K₂→…→K₁₆
    • 解密:K₁₆→K₁₅→…→K₁

七、DES 安全性

概念说明
雪崩效应明文或密钥变动1位 → 密文约一半位改变
密钥长度短56位可被穷举破解
攻击类型差分分析、线性分析
后续替代3DES、AES

DES 仍是理解现代分组密码结构的基石。


八、分组密码设计准则(记忆要点)

  • 混淆 + 扩散(Shannon 原则)
  • 足够轮数(提升非线性)
  • 雪崩效应 (SAC):输入1位变 → 输出约一半位变
  • 位独立准则 (BIC):输出比特变化相互独立
  • 复杂密钥调度:防止密钥相关攻击

九、典型应用场景

  • 匿名路由(洋葱路由):逐层加密保证路径匿名性
  • 可撤销加密(版权保护):撤销单用户密钥不影响其他人

Feistel 结构 + S盒非线性 + 多轮混淆扩散 = 现代分组密码的灵魂。

后 DES 时代的分组加密算法

一、从 DES 到更强的分组密码

背景

  • DES 密钥仅 56 位,暴力破解已可行。
  • 两条发展路线:
    1️⃣ 多次迭代 DES(如双重 DES、三重 DES);
    2️⃣ 设计全新的分组密码(IDEA、AES、SM4)。

二、双重 DES(2DES)

结构

密钥长度:112 位(理论上)。

攻击:中间相遇攻击 (MITM)

  1. 对所有 (K1) 计算 (E{K_1}(P)),存表。
  2. 对所有 (K2) 计算 (D{K_2}(C)),与表比对。
  3. 匹配成功则候选密钥。

复杂度

  • 时间:约 (2^{57}) 次 DES 运算;
  • 空间:约 (2^{56}) 条记录;
  • 仅需两对 (P, C) 即可验证。

✅ 结果:双重 DES 安全性 ≈ 单次 DES


三、三重 DES(3DES)

结构(EDE 模式,兼容 DES)

解密同理:

  • 可选两密钥或三密钥版本:

    • 2-key 3DES:(K_1=K_3),密钥长度 112 位。
    • 3-key 3DES:独立三密钥,长度 168 位。

安全性

版本密钥长度状态说明
2-key 3DES112 位安全主流金融标准
3-key 3DES168 位更强用于 PGP、S/MIME
  • 抗差分、线性分析能力 ≫ DES。
  • 暴力破解约需 (2^{112}) 级操作量。
  • 现无实用攻击。

优缺点

✅ 优点:

  • 与 DES 兼容,安全性提升百倍以上。
    ❌ 缺点:
  • 运算慢(3 次 DES)。
  • 分组长度仍 64 位。
    被 AES 逐步取代

四、IDEA(International Data Encryption Algorithm)

基本特征

项目内容
分组长度64 位
密钥长度128 位
结构混合算术结构(非 Feistel)
轮数8 轮
安全性抗差分、线性攻击

混淆与扩散机制

基于三种运算:

  • 异或(⊕)
  • 模 (2^{16}) 加法(⊞)
  • 模 (2^{16}+1) 乘法(⊙)

→ 代数结构多样,增强非线性。

优点

  • 抗差分分析;
  • 软硬件实现高效;
  • 软件速度约为 DES 的两倍;
  • 被用于 PGP(Pretty Good Privacy)

五、AES(Advanced Encryption Standard)

历史与选型

  • 由 NIST 于 1997 年启动评选,2001 年选定 Rijndael 算法
  • 目标:比 3DES 更快、至少同样安全。

基本参数

项目内容
分组长度128 位
密钥长度128 / 192 / 256 位
轮数10 / 12 / 14
结构类型S-P 网络(非 Feistel)

核心四步轮函数(每轮)

1️⃣ SubBytes(字节代换):S盒非线性变换(混淆)。
2️⃣ ShiftRows(行移位):行循环移位(扩散)。
3️⃣ MixColumns(列混合):GF(2⁸) 多项式运算(扩散)。
4️⃣ AddRoundKey(轮密钥加):与子密钥异或(加密控制)。

首轮和末轮略有调整(末轮无列混合)。

密钥扩展

  • 通过字循环与 S盒生成每轮 128 位子密钥;
  • 支持灵活的密钥长度(Nk = 4/6/8)。

AES 优点

✅ 高速(软件/硬件)
✅ 抗差分、线性、能量攻击
✅ 内存需求低,适合嵌入式
✅ 开放无专利、跨平台
❌ 理论上仍可能受侧信道攻击(需防御设计)

AES 已成为全球主流对称加密标准。


六、SM4(中国商用分组加密标准)

基本特征

项目内容
分组长度128 位
密钥长度128 位
结构非平衡 Feistel 网络
轮数32 轮
发布2006(WAPI 标准),2016 成为国家标准 GB/T 32907-2016

算法特点

  • 加解密算法结构相同(轮密钥顺序相反)。
  • 采用 S盒 + 线性移位 + 异或混合。
  • 密钥扩展 32 轮,使用常数 FK、CK。
  • 安全性与 AES 相当。

应用

  • WAPI 无线局域网
  • 政府、金融、商用加密标准体系(SM 系列)

七、总结对比

算法分组密钥结构状态
DES64b56bFeistel已淘汰
3DES64b112b/168bFeistel过渡标准
IDEA64b128b混合结构较安全,专利
AES128b128/192/256bSP 网络国际主流
SM4128b128b非平衡 Feistel中国标准

八、记忆重点

  1. 双重 DES 可被中间相遇攻击,安全性 ≈ DES。
  2. 三重 DES (EDE) 是过渡方案,两密钥版最常用。
  3. IDEA 使用混合算术(⊕、⊞、⊙),抗差分强。
  4. AES = SPN 结构(SubBytes、ShiftRows、MixColumns、AddRoundKey)。
  5. SM4 = 国密分组加密,128 位分组、32 轮非平衡 Feistel。
  6. AES、SM4 都已取代 3DES 成为现行主流标准。