网络安全 课程设计文档格式.doc
《网络安全 课程设计文档格式.doc》由会员分享,可在线阅读,更多相关《网络安全 课程设计文档格式.doc(20页珍藏版)》请在冰豆网上搜索。
该算法通信双方通信前共同拟定一个密钥,不对第三方公开,并且消息发送前都通过该密钥加密,到达后也通过该密钥解密。
该算法利用一个56+8奇偶校验位(第8,16,24,32,40,48,56,64位)=64位的密钥对以64位为单位的块数据进行加解密操作。
具体实现过程是将DES的数据分组长度为64位,输入的是64位的明文,在64位密钥的控制下产生64位的密文;
反之输入64位的密文,输出64位的明文。
64位的密钥中含有8个位的奇偶校验位,所以实际有效密钥长度为56位。
明文数据经过初始置换IP、16圈迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器后得到密文数据。
在初始置换IP时,将64位明文的位置进行置换,得到一个乱序的64位明文组,而后分成左右两段,每段32位,用L0和R0表示。
DES的加密函数f对32位的段操作:
首先将这32位的段选择扩展运算成48位的段;
其次将这48位的段和子密钥产生器输出的48位的密钥进行组合并将组合结果作为8个不同S-盒的输入。
每个S-盒的输入是6位,输出是4位;
然后将S-盒的32位做置换作为加密函数f的输出。
经过16圈迭代,最终产生64位密文
DES设计思路以及解决问题的方法共七步
1)DES算法第一步:
输入64个二进制位明码文数据区组:
T=t1t2…t64
按初始换位表IP进行换位,得到区组
B(0):
B(0)=B(0)=b1(0)b2(0)…b64(0)=t58t50…t7
初始换位表IP:
585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157
2)DES算法第二步
设B(i)=b1(i)b2(i)…b64(i)是第i+1次迭代的64个二进制位输入区组,将B(i)分为左右两个大小相等的部分,每部分为一个32位二进制的数据块
L(i)=l1(i)l2(i)…l32(i)=b1(i)b2(i)…b32(i)
R(i)=r1(i)r2(i)…r32(i)=b33(i)b34(i)…b64(i)
把R(i)视为由8个4位二进制的块组成
r1(i)r2(i)r3(i)r4(i)
r5(i)r6(i)r7(i)r8
...
r29(i)r30(i)r31(i)r32(i)
通过循环抄录相邻块的相邻块,把它们再扩充为8个6位二进制的块
r32(i)r1(i)r2(i)r3(i)r4r5(i)
r4(i)r5(i)r6(i)r7(i)r8(i)r9(i)
…
r28(i)r29(i)r30(i)r31(i)r32r1(i)
用E(R(i))表示这个变换,称为扩充函数。
扩充函数E
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321
3)DES算法第三步:
首先按照一定规则对密钥进行压缩置换,得到48位子密钥(子密钥设计思想见后),再在第i+1次迭代中,用48位二进制的密钥
K(i+1)=k1(i+1)k2(i+1)…k48(i+1)
与E(R(i))按位相加(逻辑异或),得到48位密钥。
4)DES算法第四步:
将以上第j个(1≤j≤6位二进制的块(记为Z=zj1zj2zj3zj4zj5zj6)输入第个j个替代函数Sj(表4-3)。
各替代函数Sj的功能是把6位数变换成4位数,做法是以zj1zj6为行号,zj2zj3zj4zj5为列号,查找Sj,行列交叉处即是要输出4位数。
既S盒置换,将产生的48位密钥进行“S盒”输入其中的8个Si盒中,入6位出4位,即将48位压缩为32位。
S盒置换表:
S1:
0157414213110612119538
4114813621115129731050
1512824917511314100613
1518146113497213120510
S2:
3134715281512011069115
0147111041315812693215
1381013154211671205149
S3….S7(转换表略,见源程序)
S8:
1328461511110931450127
1151381037412561101492
7114191214206101315358
2114741081315129035611
5)DES算法第五步:
八个替代函Sj(1≤j≤8)的输出拼接32位二进制数据区组y1(i)y2(i)…y32(i)把它作为换位函数P(表4-4)的输入,得到输出
X(i)=x1(i)x2(i)…x32(i)=y16(i)y17(i)…y25(i)
换位函数P
1672021
29122817
1152326
5183110
282414
322739
1913306
2211425
若把第二至第五步的变换记为,(X(i)=f(R(i),K(i)+1))。
6)DES算法第六步
把L(i)与X(i)按位相加,形成R(i+1),且令R(i)为L(i+1),即得到经第i+1次迭代加密后的
输出L(i+1)R(i+1),其中
L(i+1)=R(i+1)
R(i+1)=L(i)⊕f(R(i),K(i+1)(2.1式)
可以看出,DES密码体制的每一次迭代都用替代法和换位法和换位法对上一次迭代
的输出进行加密变换。
用硬件实现DES算法时,实际上用替代盒实现替代函数Sj(1≤j≤8),用换位盒实现换位函数P。
为了使最后输出的密码文与原始输入的明码文没有明显的函数关系,DES算法采用16次迭代。
在前15次迭代中,式(2.1式)中的L(i)表示左32位,R(i)表示右32位。
对最后一次迭代,L(16)表示右32位,R(16)表示左32位,即在最后一次迭代时不再左右交换,以保证加密和解密的对称性。
7)DES算法第七步
对R(16)L(16)作逆初始换位IP-1,得到密码文。
2
计算机网络课程设计报告
IP-1
408481656246432
397471555236331
386461454226230
375451352216129
364441252206028
353431151195927
342421050185826
33141949175725
最终得出:
R(i)=L(i+1)
L(i)=R(i+1)⊕f(L(i),K(i+1))
(二)子密钥Ki(48bit)的生成算法
对K使用PC-1(8×
7)
57
4941
33
25
17
9
1
58
50
42
34
26
18
10
259
51
43
35
27
19
11
3
60
52
44
36
63
55
47
39
31
23
15
7
62
54
46
38
30
22
146
61
53
45
37
29
21
13
5
28
20
12
4
从而,由K(64位)=0001001100110100010101110111100110011011101111001101111111110001
得到K+(56位)=11110000110011001010101011110101010101100110011110001111
进而,
C0(28位)=1111000
0110011
0010101
0101111
D0(28位)=0101010
1011001
1001111
0001111
C1和D1分别为C0和D0左移1位。
…C3和D3分别为C2和D2左移2位…具体如下:
轮12345678910111213141516
位数1122222212222221
从而得到C1D1~C16D16:
C1=1110000110011001010101011111
D1=1010101011001100111100011110
C2=1100001100110010101010111111
D2=0101010110011001111000111101
……
Kn(48位)=PC-2(CnDn(56位))
PC-2(8×
6)
14171124
1
5
32815
62110
231912
426
8
16
7272013
415231374755
304051453348
最终得到所有16个子钥,每个48位:
K1
=000110110000001011101111111111000111000001110010
K2
=011110011010111011011001110110111100100111100101
K16=110010110011110110001011000011100001011111110101
(三)解密
DES的解密过程和DES的加密过程完全类似,只不过将16圈的子密钥序列K1,K2„„K16的顺序倒过来。
即第一圈用第16个子密钥K16,第二圈用K15,其余类推。
三.系统功能分析:
本系统主要实现的是DES对字符及字符串的加密,能在一定的范围内进行加密和解密。
从而实现DES算法中通过16次迭代过程和逆置换,以及在迭代过程中,使用56位密钥对64位的数据进行数据块加密等一系列操作