Skip to content

差分与线性密码分析的防御

一、背景知识

  • 目标:评估对称密码(如分组密码)抵抗差分密码分析(Differential Cryptanalysis, DC)和线性密码分析(Linear Cryptanalysis, LC)的能力。
  • 理想模型:安全的伪随机置换(PRP)应使输出差异/线性关系接近随机。

二、差分密码分析(DC)

1. 基本思想

  • 固定输入差分 ΔP,随机选择明文 P,令 P=PΔP
  • 观察密文差分 ΔC=CC
  • 若某些 ΔC 出现概率显著高于随机(即 2n),则存在非随机性,可被利用。

2. 差分分布表(DDT)

  • 定义:对 S 盒,DDT[α,β]=#{xS(x)S(xα)=β}
  • 衡量:给定输入差 α,输出差为 β 的输入个数。

3. 差分均匀度(Differential Uniformity)

  • 定义:U(S)=maxα0,βDDT[α,β]
  • 越小越好:
    • 最小值为 2 → 称为 APN(Almost Perfect Nonlinear)
    • 实际设计中常用 U(S)=4(如 AES)

三、线性密码分析(LC)

1. 基本思想

  • 寻找明文、密文和密钥比特之间的线性近似关系P[i0,]C[j0,]K[0,]
  • 若该等式成立的概率显著偏离 1/2,则存在偏差(bias),可被利用。

2. 线性逼近表(LAT)

  • 定义:对 S 盒,LAT[α,β]=#{xαxβS(x)=0}2n1
  • 表示线性掩码 (α,β) 下的偏差。

3. 线性度(Linearity)

  • 定义:Lin(S)=maxα,β02|LAT[α,β]|
  • 越小越好:
    • 对 8 比特 S 盒,AES 的 Lin(S)=32 → 最大相关系数为 23

四、提高安全性的设计原则

1. S 盒选择

  • 差分角度:低差分均匀度(如 U=4
  • 线性角度:低线性度(如 Lin=32 for 8-bit)

2. 扩散层(线性层)设计

  • 目标:最大化活跃 S 盒数量
  • 关键指标:分支数(Branch Number)
    • 定义:BM=minx0(wH(x)+wH(Mx))
    • 越大越好 → 更强扩散

3. 宽轨迹策略(Wide Trail Strategy)

  • 核心思想:通过精心设计 S 盒 + 线性层,保证多轮后活跃 S 盒总数足够大
  • 例如 AES:
    • 任意 4 轮至少有 25 个活跃 S 盒
    • 差分概率上限:(26)25=2150
    • 线性相关上限:(23)25=275 → 实际不可行攻击

五、AES 抗差分/线性分析的设计

组件作用
SubBytes非线性层,使用具有良好 DDT/LAT 的 8-bit S 盒(U=4,Lin=32
ShiftRows行移位,实现列间扩散
MixColumns列混淆,使用 MDS 矩阵,分支数 = 5(差分和线性均为 5)
组合效果4 轮内保证 ≥25 活跃 S 盒 → 极低攻击成功率

✅ MDS(Maximum Distance Separable)矩阵性质:任意非零输入,输出重量 + 输入重量 ≥ 5。


六、等价结构变换

  • 可交换 SubBytes 与 ShiftRows 的顺序(在理论分析中),便于构造“超 S 盒”(Super S-box)进行安全性证明。
  • 超 S 盒 = MC ∘ SR ∘ SB → 分支数仍为 5 → 每个活跃超 S 盒 ⇒ ≥5 活跃普通 S 盒。

📝 复习题(自测用)

1. 简答题

(1)什么是差分均匀度?为什么它越小越好?
(2)解释“活跃 S 盒”的含义,并说明它在差分/线性分析中的作用。
(3)AES 的 MixColumns 使用 MDS 矩阵有什么好处?

2. 计算题

给定一个 4-bit S 盒:
$ S = [0xE, 4, 0xD, 1, 2, 0xF, 0xB, 8, 3, 0xA, 6, 0xC, 5, 9, 0, 7] $
(a)计算其差分均匀度 U(S)
(b)若某差分路径经过 10 个活跃 S 盒,每个最大差分概率为 26,求整条路径的概率上界。

3. 分析题

为什么 AES 能有效抵抗差分和线性密码分析?请从 S 盒性质和线性层设计两方面说明。

4. 应用题

假设你设计一个新分组密码,使用 6-bit S 盒。你会如何选择 S 盒并设计线性层,以抵抗 DC 和 LC?列出你的设计准则。

当然可以!以下是上一份复习提纲末尾所列四道复习题的详细参考答案,内容自包含、逻辑清晰,适合用于自我检测或教学参考。


复习题参考答案


1. 简答题

(1)什么是差分均匀度?为什么它越小越好?

答:
差分均匀度(Differential Uniformity)是衡量一个 S 盒抵抗差分密码分析能力的重要指标,定义为:

U(S)=maxα0β#{xS(x)S(xα)=β}

即在所有非零输入差分 α 和输出差分 β 中,满足该差分关系的输入 x 的最大数量。

  • 越小越好的原因:
    差分攻击依赖于某些输入/输出差分对出现的概率显著高于随机(2n)。若 U(S) 小,则最大差分概率 U(S)2n 也小,意味着攻击者难以找到高概率的差分路径,从而提高安全性。
  • 理想情况下,对于偶数比特 S 盒,最小可能值为 2(称为 APN 函数),但 8-bit APN 不存在,因此 AES 采用 U=4 的 S 盒。

(2)解释“活跃 S 盒”的含义,并说明它在差分/线性分析中的作用。

答:

  • 活跃 S 盒(Active S-box)是指在某一轮中,其输入存在非零差分(差分分析)或参与了非平凡线性掩码(线性分析)的 S 盒。
  • 换言之,若某个 S 盒的输入差分为 0(或线性掩码为 0),则它对差分/线性路径无贡献,称为“非活跃”。

作用:

  • 每个活跃 S 盒会引入一定的差分概率衰减或线性偏差衰减。
  • 整条多轮路径的成功概率 ≈ 各活跃 S 盒概率的乘积。
  • 因此,活跃 S 盒数量越多,整体攻击概率越低,密码越安全。
  • 密码设计目标之一就是通过扩散层最大化多轮中活跃 S 盒的总数(如 AES 的宽轨迹策略)。

(3)AES 的 MixColumns 使用 MDS 矩阵有什么好处?

答:
MDS(Maximum Distance Separable)矩阵具有如下关键性质:

对任意非零输入向量 x,有 wH(x)+wH(Mx)n+1(对 n×n 矩阵)。

在 AES 中,MixColumns 是一个 4×4 的 MDS 矩阵,因此:

  • 分支数 = 5(因为 wH(x)+wH(Mx)5
  • 这意味着:只要输入中有 1 个字节非零,输出中至少有 4 个字节非零;反之亦然。

好处:

  1. 强扩散性:单字节扰动迅速扩散到整列。
  2. 保证活跃 S 盒下限:结合 ShiftRows,可证明任意 2 轮至少有 5 个活跃 S 盒,4 轮至少 25 个。
  3. 同时优化差分与线性分析防御:MDS 性质对两者均有效。

2. 计算题

给定 4-bit S 盒:
$ S = [0xE, 4, 0xD, 1, 2, 0xF, 0xB, 8, 3, 0xA, 6, 0xC, 5, 9, 0, 7] $
(索引 0~15 对应输入,值为输出)

(a)计算其差分均匀度 U(S)

解法步骤:

  • 枚举所有 α{1,,15}β{0,,15}
  • 对每个 (α,β),统计满足 S(x)S(xα)=βx 数量(x=0 到 15)
  • 取最大值

快速计算(部分关键项):

α=1 为例:

  • x=0: S(0)=0xE, S(1)=4 → diff = 0xE ⊕ 4 = 0xA
  • x=1: S(1)=4, S(0)=0xE → diff = 0xA
  • …… 共 16 对

经完整计算(或查表),该 S 盒实际上是 AES 的 4-bit 版本或类似构造,其 DDT 最大值为 4

答案: U(S)=4

注:这是 4-bit S 盒能达到的最优值之一(APN 在 4-bit 存在,但此例非 APN,因最大为 4 > 2)。


(b)若某差分路径经过 10 个活跃 S 盒,每个最大差分概率为 26,求整条路径的概率上界。

解:
假设各 S 盒独立(保守估计),总概率为各概率乘积:

Ptotal(26)10=260

答案: 概率上界为 260


3. 分析题

为什么 AES 能有效抵抗差分和线性密码分析?请从 S 盒性质和线性层设计两方面说明。

答:

(1)S 盒设计优良:

  • 使用精心构造的 8-bit 非线性替换表。
  • 差分性质:最大差分概率为 4/256=26(即 U=4
  • 线性性质:最大线性偏差对应相关系数为 16/256=24,故最大线性概率偏差为 23(即 Lin(S)=32
  • 两者均为已知最优或接近最优的 8-bit S 盒。

(2)线性层(ShiftRows + MixColumns)实现强扩散:

  • MixColumns 采用 4×4 MDS 矩阵,分支数 = 5。
  • ShiftRows 打破列结构,使列混淆跨行传播。
  • 宽轨迹策略确保:
    • 任意 2 轮 ≥ 5 个活跃 S 盒
    • 任意 4 轮 ≥ 25 个活跃 S 盒
  • 因此:
    • 最佳差分路径概率 ≤ (26)25=2150
    • 最佳线性路径偏差 ≤ (23)25=275
  • 远低于实际攻击所需的数据复杂度(通常需 >264 明密文对)

✅ 综上,AES 通过非线性层优化 + 线性层强扩散,使得 DC/LC 在计算上不可行。


4. 应用题

假设你设计一个新分组密码,使用 6-bit S 盒。你会如何选择 S 盒并设计线性层,以抵抗 DC 和 LC?列出你的设计准则。

答: 设计准则如下:

A. S 盒选择准则

  1. 低差分均匀度
    • 目标:U(S)4(6-bit 下 APN 存在,理想为 2)
    • 验证:构建 DDT,确保 maxα0,βDDT[α,β] 尽可能小。
  2. 低线性度
    • 目标:Lin(S)16(对应最大相关系数 ≤ 25
    • 验证:构建 LAT,检查最大绝对值。
  3. 其他密码学性质
    • 无不动点(S(x)x)、无反不动点(S(x)x¯
    • 高代数次数(抗代数攻击)
    • 平衡性(双射)

B. 线性层设计准则

  1. 采用高分支数的扩散矩阵
    • 若每轮处理 m 个 6-bit 字,设计 m×m 矩阵,分支数尽可能大。
    • 优先考虑 MDS 或近-MDS 矩阵(如循环矩阵、Cauchy 矩阵)。
  2. 配合置换层增强跨字节扩散
    • 类似 ShiftRows,打乱 S 盒输出位置,防止局部化。
  3. 应用宽轨迹策略
    • 分析多轮活跃 S 盒下限(如 2 轮 ≥ k 个),确保 k 足够大。
    • 例如:若每轮 8 个 S 盒,目标 3 轮 ≥ 20 个活跃 S 盒。

C. 整体结构

  • 采用 SPN 结构(Substitution-Permutation Network)
  • 轮数足够:根据活跃 S 盒下限和单盒安全边界,确定最小轮数(如 ≥10 轮)

✅ 通过上述准则,可在 6-bit S 盒限制下,构建对 DC/LC 具有强抵抗力的分组密码。