DES 差分分析实验报告
四大队四队五班 刘杰
一、实验目的
差分密码分析是一种选择明文攻击,是现代分组密码分析的重要方法之一,也是理论分析密码算法和算法抗攻击测试的重要依据之一。
本实验通过3轮DES 简化算法的差分分析来达到加深学员对差分分析方法原理的理解和利用该原理分析实际问题的操作能力。
二、实验内容
(1)3轮DES 简化算法的差分分析;
(2)通过三组明密文对(每组两个相关明文和相应密文),利用差分原理提
三、实验原理
设DES 两个明密文对:=00m L R ***=00m L R =33c L R ***
=33c L R
计算过程:
(,)(,)(,)(,)=⊕=⊕=⊕⊕322312300123R L f R k R f R k L f R k f R k
(,)(,)****=⊕⊕300123R L f R k f R k
令:*'=⊕000L L L (,)(,)(,)(,)***
''=⊕=⊕⊕⊕⊕333001012323R R R L f R k f R k f R k f R k 观察得:在本次实验原始数据中,明文对*=00R R ,即*
'=⊕=0
0000000000R R R 则(,)(,)**
''=⊕=⊕⊕3
3302323R R R L f R k f R k 同时有:=00m L R ***=00m L R =23R L **=23R L
则可计算出:*'=⊕000L L L *'=⊕333R R R (,)(,)*
''⊕=⊕232330f R k f R k R L
则可得出:
S 盒输入差:(())(())()()*
*⊕⊕⊕=⊕232333E R k E R k E L E L
S 盒输出差:()*-''⊕=⊕13
0D D P R L
分析过程:
令:()()*⊕=3312345678E L E L B B B B B B B B
()-''⊕=13
012345678P R L C C C C C C C C ()=312345678E L A A A A A A A A =312345678k J J J J J J J J
()⊕=3312345678E L k X X X X X X X X *()⊕=3312345678E L k Y Y Y Y Y Y Y Y
基本思路:(分别计算12345678J J J J J J J J )
{|,()()}∈=⊕⊕=⊕=i i i i i i i J Test x A x y B S x S y C ,,,,,,,=12345678i
对于本次实验的3个具有明文差(*,0)的明密文对,则可构造上面的3个Test 集合,显然 ()()
()∈12i i i i J Test Test Test t ,,,,,,,=12345678i
一种确定Ji 的直接方法:
1.建立26=64长度的数组J[64]={0};
2.对Testi(r),r = 1,2,…,t ,若a ∈Testi(r),则 J[a] = J[a] + 1。
3.若J[b] =3,则6比特串b 就是可能的密钥比特 Ji 。
四、实验环境
Microsoft visual c++ 五、实验步骤
(1)计算简化算法第3轮S 盒输入差
(2)计算简化算法第3轮S盒输出差
(3)计算第3轮单个S盒可能的6比特子密钥
对第i=1个S盒:
(4)构造64个计数器
(5)对每一组数据利用(3)对64个计数器进行累加
(6)根据计数器最大值判定6比特子密钥
(7)i++,若i<=8重复(4,5,6),否则转入下步。
求解第三轮子密钥:
(8)计算第三轮48比特子密钥(即8个S盒6比特密钥级联)
穷举初始56比特密钥
(9)根据PC-2选择置换还原48比特子密钥在56比特中位置(缺省8比特空出)
(10)循环移位还原56比特初始密钥
穷举初始56比特密钥
(11)穷举56比特初始密钥中空出的8比特,还原成64比特初始密钥
(12)调用3轮DES简化算法对6个明文分组加密,均得到相应密钥即为正确64比特初始密钥
六、实验结果。