Skip to content

Week5~7 差分分析

差分分析

对于加密 C=PKC = P \oplus K,有 PP=PKPK=CCP \oplus P' = P \oplus K \oplus P' \oplus K = C \oplus C',对于一个n比特加密算法和随机置换的区别,常有:DP(α,β)>1/2nDP(\alpha,\beta) > 1/2^n,所以可以通过构造特定差分的方式建立区分器并且进一步恢复密钥

S 盒差分分布表项为何为偶数

S:F2nF2mS:\mathbb{F}_2^n \to \mathbb{F}_2^m,差分分布表(DDT)定义

D[a,b]={xF2nS(x)S(xa)=b}.D[a,b] = \bigl|\{\, x \in \mathbb{F}_2^n \mid S(x)\oplus S(x\oplus a)=b \,\}\bigr|.

  • a0a\neq 0:映射 τ(x)=xa\tau(x)=x\oplus a 将域划分为 2n12^{n-1} 个不相交二元组 {x,xa}\{x, x\oplus a\}。在每个二元组内,若 xx 满足等式,则 xax\oplus a 也满足,因为

    S(xa)S((xa)a)=S(xa)S(x)=b.S(x\oplus a)\oplus S((x\oplus a)\oplus a)=S(x\oplus a)\oplus S(x)=b.

    解成对出现,因此 D[a,b]D[a,b] 为偶数。
  • a=0a=0:恒有 S(x)S(x)=0S(x)\oplus S(x)=0,故 D[0,0]=2nD[0,0]=2^nD[0,b0]=0D[0,b\neq 0]=0,也都是偶数。

该结论对任意 SS(不要求为置换)成立,关键在差分运算使用异或(特征为 2),从而可以配对 xxxax\oplus a。若改为普通加法模 2n2^n 等运算,上述“必为偶数”的性质不一定成立。

密钥恢复

假设有如下5 rounds算法:

已知有一条高概率为 pp 的4轮差分路线,则可以猜测第五轮轮密钥 k5k5,通过反推比对第四轮输出差分与期望(概率为 pp),从而恢复轮密钥 k5k5