我对对称其实并不熟悉,缓更
欢迎捉虫!
0. 前言
1. 密码分析
不讨论侧信道攻击和故障攻击
1.1. 差分分析
对于一个加密函数 E ,
令(P,P∗)为明文对,则P和P∗的差分值定义为
ΔP=P⊕P∗
于是
P∗=P⊕ΔP
ΔC=E(P)⊕E(P∗)=E(P)⊕E(P⊕ΔP)
上述性质可以用来恢复密钥,通常用在选择明文攻击中。
我们依此法表示加密过程:
E=ρr⋅...⋅ρ2⋅ρ1
ρi 表示第i轮的轮函数 ,r 表示最后一轮
令明文 P1=P (可以理解为经过第0轮的轮函数输出的值)
则有 Pi+1=ρi(Pi)
不难推出
密文 C=Pr+1=ρr(Pr) (可以理解为经过第r轮的轮函数输出的值)
类似地,Pi∗ 和 C∗ 是另一串明文P∗ 使用相同的密钥若干轮加密后的结果
为简化讨论,我们令
δi=ΔPi,Δ=ΔP1,and ∇=ΔPr+1
即第i轮差分用δi 表示,明文差分值用 Δ 表示 ,密文差分值用 ∇ 表示.
用 pi表示 δi→δi+1的概率,即
pi=Pρi(δi,δi+1)=P[ρi(x+δi)−ρi(x)=δi+1]
也就是
“已知第i轮输出值的差分值是δi,求第i+1轮的输出值的差分值是δi+1”的概率
于是我们有 差分特征:
参考
A Salad of Block Ciphers:The State of the Art in Block Cipher and their Analysis
密码学学习笔记 之 差分分析入门篇——四轮DES | Van1sh的小屋