Appearance
差分与线性密码分析的防御
一、背景知识
- 目标:评估对称密码(如分组密码)抵抗差分密码分析(Differential Cryptanalysis, DC)和线性密码分析(Linear Cryptanalysis, LC)的能力。
- 理想模型:安全的伪随机置换(PRP)应使输出差异/线性关系接近随机。
二、差分密码分析(DC)
1. 基本思想
- 固定输入差分
,随机选择明文 ,令 。 - 观察密文差分
。 - 若某些
出现概率显著高于随机(即 ),则存在非随机性,可被利用。
2. 差分分布表(DDT)
- 定义:对 S 盒,
- 衡量:给定输入差
,输出差为 的输入个数。
3. 差分均匀度(Differential Uniformity)
- 定义:
- 越小越好:
- 最小值为 2 → 称为 APN(Almost Perfect Nonlinear)
- 实际设计中常用
(如 AES)
三、线性密码分析(LC)
1. 基本思想
- 寻找明文、密文和密钥比特之间的线性近似关系:
- 若该等式成立的概率显著偏离 1/2,则存在偏差(bias),可被利用。
2. 线性逼近表(LAT)
- 定义:对 S 盒,
- 表示线性掩码
下的偏差。
3. 线性度(Linearity)
- 定义:
- 越小越好:
- 对 8 比特 S 盒,AES 的
→ 最大相关系数为
- 对 8 比特 S 盒,AES 的
四、提高安全性的设计原则
1. S 盒选择
- 差分角度:低差分均匀度(如
) - 线性角度:低线性度(如
for 8-bit)
2. 扩散层(线性层)设计
- 目标:最大化活跃 S 盒数量
- 关键指标:分支数(Branch Number)
- 定义:
- 越大越好 → 更强扩散
- 定义:
3. 宽轨迹策略(Wide Trail Strategy)
- 核心思想:通过精心设计 S 盒 + 线性层,保证多轮后活跃 S 盒总数足够大
- 例如 AES:
- 任意 4 轮至少有 25 个活跃 S 盒
- 差分概率上限:
- 线性相关上限:
→ 实际不可行攻击
五、AES 抗差分/线性分析的设计
| 组件 | 作用 |
|---|---|
| SubBytes | 非线性层,使用具有良好 DDT/LAT 的 8-bit S 盒( |
| 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)计算其差分均匀度。
(b)若某差分路径经过 10 个活跃 S 盒,每个最大差分概率为,求整条路径的概率上界。
3. 分析题
为什么 AES 能有效抵抗差分和线性密码分析?请从 S 盒性质和线性层设计两方面说明。
4. 应用题
假设你设计一个新分组密码,使用 6-bit S 盒。你会如何选择 S 盒并设计线性层,以抵抗 DC 和 LC?列出你的设计准则。
当然可以!以下是上一份复习提纲末尾所列四道复习题的详细参考答案,内容自包含、逻辑清晰,适合用于自我检测或教学参考。
复习题参考答案
1. 简答题
(1)什么是差分均匀度?为什么它越小越好?
答:
差分均匀度(Differential Uniformity)是衡量一个 S 盒抵抗差分密码分析能力的重要指标,定义为:
即在所有非零输入差分
- 越小越好的原因:
差分攻击依赖于某些输入/输出差分对出现的概率显著高于随机()。若 小,则最大差分概率 也小,意味着攻击者难以找到高概率的差分路径,从而提高安全性。 - 理想情况下,对于偶数比特 S 盒,最小可能值为 2(称为 APN 函数),但 8-bit APN 不存在,因此 AES 采用
的 S 盒。
(2)解释“活跃 S 盒”的含义,并说明它在差分/线性分析中的作用。
答:
- 活跃 S 盒(Active S-box)是指在某一轮中,其输入存在非零差分(差分分析)或参与了非平凡线性掩码(线性分析)的 S 盒。
- 换言之,若某个 S 盒的输入差分为 0(或线性掩码为 0),则它对差分/线性路径无贡献,称为“非活跃”。
作用:
- 每个活跃 S 盒会引入一定的差分概率衰减或线性偏差衰减。
- 整条多轮路径的成功概率 ≈ 各活跃 S 盒概率的乘积。
- 因此,活跃 S 盒数量越多,整体攻击概率越低,密码越安全。
- 密码设计目标之一就是通过扩散层最大化多轮中活跃 S 盒的总数(如 AES 的宽轨迹策略)。
(3)AES 的 MixColumns 使用 MDS 矩阵有什么好处?
答:
MDS(Maximum Distance Separable)矩阵具有如下关键性质:
对任意非零输入向量
,有 (对 矩阵)。
在 AES 中,MixColumns 是一个 4×4 的 MDS 矩阵,因此:
- 分支数 = 5(因为
) - 这意味着:只要输入中有 1 个字节非零,输出中至少有 4 个字节非零;反之亦然。
好处:
- 强扩散性:单字节扰动迅速扩散到整列。
- 保证活跃 S 盒下限:结合 ShiftRows,可证明任意 2 轮至少有 5 个活跃 S 盒,4 轮至少 25 个。
- 同时优化差分与线性分析防御: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)计算其差分均匀度
解法步骤:
- 枚举所有
, - 对每个
,统计满足 的 数量( 到 15) - 取最大值
快速计算(部分关键项):
以
: , → diff = 0xE ⊕ 4 = 0xA : , → diff = 0xA - …… 共 16 对
经完整计算(或查表),该 S 盒实际上是 AES 的 4-bit 版本或类似构造,其 DDT 最大值为 4。
✅ 答案:
注:这是 4-bit S 盒能达到的最优值之一(APN 在 4-bit 存在,但此例非 APN,因最大为 4 > 2)。
(b)若某差分路径经过 10 个活跃 S 盒,每个最大差分概率为 ,求整条路径的概率上界。
解:
假设各 S 盒独立(保守估计),总概率为各概率乘积:
✅ 答案: 概率上界为
3. 分析题
为什么 AES 能有效抵抗差分和线性密码分析?请从 S 盒性质和线性层设计两方面说明。
答:
(1)S 盒设计优良:
- 使用精心构造的 8-bit 非线性替换表。
- 差分性质:最大差分概率为
(即 ) - 线性性质:最大线性偏差对应相关系数为
,故最大线性概率偏差为 (即 ) - 两者均为已知最优或接近最优的 8-bit S 盒。
(2)线性层(ShiftRows + MixColumns)实现强扩散:
- MixColumns 采用 4×4 MDS 矩阵,分支数 = 5。
- ShiftRows 打破列结构,使列混淆跨行传播。
- 宽轨迹策略确保:
- 任意 2 轮 ≥ 5 个活跃 S 盒
- 任意 4 轮 ≥ 25 个活跃 S 盒
- 因此:
- 最佳差分路径概率 ≤
- 最佳线性路径偏差 ≤
- 最佳差分路径概率 ≤
- 远低于实际攻击所需的数据复杂度(通常需
明密文对)
✅ 综上,AES 通过非线性层优化 + 线性层强扩散,使得 DC/LC 在计算上不可行。
4. 应用题
假设你设计一个新分组密码,使用 6-bit S 盒。你会如何选择 S 盒并设计线性层,以抵抗 DC 和 LC?列出你的设计准则。
答: 设计准则如下:
A. S 盒选择准则
- 低差分均匀度:
- 目标:
(6-bit 下 APN 存在,理想为 2) - 验证:构建 DDT,确保
尽可能小。
- 目标:
- 低线性度:
- 目标:
(对应最大相关系数 ≤ ) - 验证:构建 LAT,检查最大绝对值。
- 目标:
- 其他密码学性质:
- 无不动点(
)、无反不动点( ) - 高代数次数(抗代数攻击)
- 平衡性(双射)
- 无不动点(
B. 线性层设计准则
- 采用高分支数的扩散矩阵:
- 若每轮处理
个 6-bit 字,设计 矩阵,分支数尽可能大。 - 优先考虑 MDS 或近-MDS 矩阵(如循环矩阵、Cauchy 矩阵)。
- 若每轮处理
- 配合置换层增强跨字节扩散:
- 类似 ShiftRows,打乱 S 盒输出位置,防止局部化。
- 应用宽轨迹策略:
- 分析多轮活跃 S 盒下限(如 2 轮 ≥ k 个),确保 k 足够大。
- 例如:若每轮 8 个 S 盒,目标 3 轮 ≥ 20 个活跃 S 盒。
C. 整体结构
- 采用 SPN 结构(Substitution-Permutation Network)
- 轮数足够:根据活跃 S 盒下限和单盒安全边界,确定最小轮数(如 ≥10 轮)
✅ 通过上述准则,可在 6-bit S 盒限制下,构建对 DC/LC 具有强抵抗力的分组密码。