这对我一个初学者来说真是一个特别烧脑的东西,我看的是北京邮电大学谷利泽版的现代密码学,可根据85-88页作参照
书上一堆公式,表格劝退,这里删繁就简,尽量用一些精炼的语言来描述
这里以一轮DES的差分为例
![](https://i-blog.csdnimg.cn/blog_migrate/a8f515d7ca0ecd920e57390f331ef878.png)
这个图中,有:A⊕K=B
差分要研究ΔX和ΔY的关系,但E盒和P盒无密码意义,转变为研究ΔA和ΔC的关系
由于ΔB=ΔA(书86页有证明),转变为研究ΔB和ΔC的关系
S盒有8个,以第一个为例
ΔB=B1⊕B1' , 我们固定ΔB,这样我们有B1即知B1'。我们遍历所有B1,(也就64个),观察输出的ΔC是多少。得到如下分布:
![](https://i-blog.csdnimg.cn/blog_migrate/ac0c0e430bc99c7db7e72db5f1c11ed1.png)
我们可以看到,对于固定的ΔB=110100,只有八种可能的ΔC
前文写到,A⊕K=B,那么K=A⊕B
现在就以K=A⊕B为突破口求K
我们固定ΔB,那么我们只要给出输出差分值ΔC,就能根据上面的表4-12得到可能的B1值
我们逐一测试A1,得到这个表:
![](https://i-blog.csdnimg.cn/blog_migrate/221984f9aec0d28ded90b82b162d159d.png)
若给定A1为000000,那么在ΔC1=0011的情况下,B1只有那6种可能(参照4-12)表,K1也就那6种可能,再测试A1位000001,测试在ΔC1=0011的情况下,B1只有那8种可能,对应K1也就有那8种可能。但是由于K1是确定的,唯一的,所以取那6个和那8个的交集,有两个,把这两个用明文-密文对试一下就行了。
当然这里写的K1对应第一轮的S盒中的第一个小S盒
然后,剩下的K,以此类推
终于写完了,0.33了,看懂尚且不容易,真正运用岂不是更难?复试太不容易了