S盒的差分均匀度
在分组密码的设计中,S盒(Substitution-Box)是整个密码系统的安全核心。它的密码学强度直接决定了密码算法抵抗各种密码分析的能力
S和有六个主要指标
- 差分均匀度
- 非线性度
- 代数次数和代数项数
- 代数免疫度
- 雪崩特性
- 扩散性
1. 差分均匀度
1.1 差分攻击
差分密码分析是一种强大的选择明文攻击,由Biham和Shamir在1990年提出。其核心思想是:分析特定输入差分(两个明文的异或值)导致特定输出差分(两个密文的异或值)的概率。如果存在一个差分对\((α, β)\),使得当输入差分为\(α\)时,输出差分为\(β\)的概率异常高,攻击者就可以利用这条差分特征路径来恢复密钥。
差分均匀度就是为量化S盒抵抗这种攻击的能力而设计的指标。
1.2 严谨的数学定义
设 \(S: F_2^n → F_2^m\) 是一个将\(n\)位输入映射到\(m\)位输出的S盒。
-
差分概率:对于任意非零输入差分 \(α ∈ F_2^n /{0}\) 和任意输出差分 \(β ∈ F_2^m\),其差分传播概率定义为:
\[DP(α, β) = ( \{ x ∈ F_2^n | S(x) \bigoplus S(x \bigoplus α) = β \} ) / 2^n \]在所有可能的输入\(x\)下,输入差分\(α\)导致输出差分\(β\)的频率。
-
差分分布表:将所有\((α, β)\)的\(DP(α, β)\)值(通常用计数表示,即分子部分)排列成一个大小为 \(2^n × 2^m\) 的表格,称为差分分布表
-
差分均匀度:定义为差分分布表中所有非零输入差分\(α\)对应的最大计数值:
\[δ(S) = max_{\{α≠0, β\}} \{ x ∈ F_2^n | S(x) \bigoplus S(x \bigoplus α) = β \} \]相应的最大差分概率为 \(δ(S) / 2^n\)
-
计算复杂度:\(x,\alpha ,\beta\) 遍历\(2^n,2^n,2^m\)次,共\(2^{2n+m}\)
1.3 密码学意义与理想值
- 值越小越好:\(δ(S)\)的值越小,意味着不存在明显的差分传播路径,差分分析就越困难。
- 理想情况:对于一个完美的随机函数,期望每个非零\((α, β)\)对的计数都接近于\(2^n/2^m\)。当\(n=m\)时,理想值为\(1\),对应的最大差分概率为\(1/2^n\)。
- 最佳已知值:在实际密码设计中(当\(n=m\)且为偶数时),可以达到\(2\)或\(4\)的差分均匀度。例如,AES的S盒(8x8)具有极佳的差分均匀度\(4\),其最大差分概率为\(4/256 = 2^{-6}\)。
1.4例题
给定一个3-bit输入、3-bit输出的S盒及其对应的差分分布表,求该S盒的差分均匀度。
S盒:
输入: 000 001 010 011 100 101 110 111
输出: 010 111 101 000 011 001 100 110
差分分布表:
| α \ β | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
|---|---|---|---|---|---|---|---|---|
| 000 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 001 | 0 | 0 | 4 | 0 | 0 | 4 | 0 | 0 |
| 010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 |
| 011 | 0 | 0 | 4 | 0 | 0 | 4 | 0 | 0 |
| 100 | 0 | 4 | 0 | 0 | 0 | 0 | 4 | 0 |
| 101 | 0 | 0 | 0 | 4 | 4 | 0 | 0 | 0 |
| 110 | 0 | 4 | 0 | 0 | 0 | 0 | 4 | 0 |
| 111 | 0 | 0 | 0 | 4 | 4 | 0 | 0 | 0 |
1.4.2解题过程
- 理解表格含义:表格的行代表输入差分 \(α\),列代表输出差分 \(β\)。单元格 \((α, β)\) 中的数值表示满足 \(S(x) ⊕ S(x ⊕ α) = β\) 的输入 \(x\) 的个数。
- 确定搜索范围:根据定义,我们需要寻找所有非零输入差分(即 \(α ≠ 000\))和所有输出差分 \(β\) 对应的数值中的最大值。
- 提取数据并比较:
- 当 \(α = 001\) 时,最大值为 4
- 当 \(α = 010\) 时,最大值为 8
- 当 \(α = 011\) 时,最大值为 4
- 当 \(α = 100\) 时,最大值为 4
- 当 \(α = 101\) 时,最大值为 4
- 当 \(α = 110\) 时,最大值为 4
- 当 \(α = 111\) 时,最大值为 4
- 得出结论:在所有非零 \(α\) 对应的数值中,最大的值是 8为S盒的差分均匀度
1.4.3结果分析
计算出的差分均匀度为8
- 存在高概率差分路径:当输入差分 \(α = 010\) 时,输出差分 \(β = 111\) 的概率为 \(8 / 2^3 = 1\)。这是一个确定性的差分特征,意味着只要输入差分为010,输出差分必然是111
- 极低的安全性:差分均匀度为8是3-bit S盒可能的最差值。这表明该S盒完全不具备抵抗差分攻击的能力。攻击者可以轻易利用这个特征,以极高的成功率恢复密钥
- 与理想S盒的对比:对于一个理想的n-bit S盒,差分均匀度应尽可能小。对于 \(n=m\) 的双射S盒,最佳已知差分均匀度为4。本例中的S盒远未达到安全标准

浙公网安备 33010602011771号