实验报告模板信息安全综合实验.docx
- 文档编号:2879140
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:24
- 大小:283.46KB
实验报告模板信息安全综合实验.docx
《实验报告模板信息安全综合实验.docx》由会员分享,可在线阅读,更多相关《实验报告模板信息安全综合实验.docx(24页珍藏版)》请在冰点文库上搜索。
实验报告模板信息安全综合实验
信息安全综合实验
实验报告
专业:
信息安全
班级:
信息安全2班
小组成员:
韩非寒(20102033)
指导教师:
唐召东、赵春蕾职称:
讲师
天津理工大学计算机与通信工程学院
2014年5月天津
设计日期
2014年5月11日至2014年5月25日
小组成员
在本次设计中承担的任务
成绩
指导教师签字:
年月日
前言2
实验一网络通信安全3
1.1实验概述3
1.2实验原理3
1.3实验结果以及分析16
1.4实验小结20
刖言
为了提高学生的动手能力,培养同学们的学习兴趣,同时对所学知识进行全面的复习,特在第7学期开设本课程。
《信息安全专业综合实践》是信息安全专业的集中性实践环节课程。
本课程的任务是训练学生综合利用所学理论知识和实践技能解决实际问题,提高学生独立钻研及团队合作能力,为适应今后的工作打下扎实的基础。
通过该课程实践,使学生能够利用密码学知识实现通信系统的机密性、完整性;能够评估系统的安全性,能够利用弱点攻破远程系统,能够有效地防御远程攻击;对Wet服务、Email服务能够熟练地管理和配置,增强系统的安全性;能够综合利用认证、授权、访问控制设计一个安全、高效的信息系统。
实验一网络通信安全
1.1实验概述
本实验应用DESRSAMD5等加密算法,以及Socket套接字实现一个简单的加密解密的聊天工具CryptTalk。
本实验的程序在jdk1.6与
Eclipse开发环境下编写,基本实现了消息加密的聊天工具的功能。
通信的步骤基本如下:
首先,服务器端随机产生一对RSA密钥,将公钥发送给客户端,客户端将自己的对称密钥用公钥加密发送给服务器端,服务器端
接收到加密后的密钥后,用自己的私钥解密得到对称密钥。
然后服务器端和客户端都利用这个对称密钥对发送的消息加密,进行加密后的聊天。
同时把消息经过MD加密生成摘要发送,在接收端解密后进行MD加密比较,检查信息是否被篡改。
1.2实验原理
1.2.1RSA加密算法
RSA加密算法原理
RSA算法它是第一个既能用于数据加密也能用于数字签名的算法。
它
易于理解和操作,也很流行。
算法的名字以发明者的名字命名:
RonRivest,AdiShamir和LeonardAdleman。
但RSA的安全性一直未能得到理论上的证明。
它经历了各种攻击,至今未被完全攻破。
RSA算法的原理以及算法分析如下。
首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q「)互质的数。
p,q,r,这三个数便是privatekey。
接着,找出m,使得rx^=1mod(^1V<(^1),这个m—定存在,因为r与(pTF(qT)互质,用辗转相除法就可以得到。
再来,计算n=pq。
m,n这两个数便
是publickey。
编码过程是,若资料为a,将其看成是一个大整数,假设a:
:
:
n。
如果a-n的话,就将a表成s进位(S乞n,通常取s=2t),则每一位数均小于n,然后分段编码。
接下来,计算b=ammodn,(Q
.n),b就是编码后的资料。
解码的过程是,计算c=bmod(Pq)(°乞c:
:
:
Pq),于是乎,解码完毕。
可以证明c和a是相等的。
如果第三者进行窃听时,他会得到几个数:
m,n(n二pq),b。
他如果要解码的话,必须想办法得到r,所以,他必须先对n作质因数分解。
要防止他分解,最有效的方法是找两个非常的大质数p,q,使第三者作因数分解时发生困难。
RSA算法的安全性
RSA勺安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。
假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。
目前,RSA的一些变种算法已被证明等价于大数分解。
不管怎样,分解n是最显
然的攻击方法。
现在,人们已能分解多个十进制位的大素数。
因此,模数n必须选大一些,因具体适用情况而定。
RSA勺速度以及分析
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上倍,无论是软件还是硬件实现。
速度一直是RSA的缺陷。
一般来说只用于少量数据加密。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。
即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC
问题。
RSA的缺点主要有:
A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
B)分组长度太大,为保证安全性,n至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
目前,SET(SecureElectronicTransaction)协议
中要求CA采用比特长的密钥,其他实体使用比特的密钥。
1.2.2DES加密算法
DES加密算法原理
当今社会是信息化的社会。
为了适应社会对计算机数据安全保密越来越高的要求,美国国家标准局(NBS)于1997年公布了一个由IBM公司研制的一种加密算法,并且确定为非机要部门使用的数据加密标准,简称DES(DataEncryptonStandard)。
自公布之日起,DES算法作为国际上商用保密通信和计算机通信的最常用算法,一直活跃在国际保密通信的舞台上,扮演了十分突出的角色。
现将DES算法简单介绍一下,并给出实现
DES算法的VC源代码。
DES算法由加密、解密和子密钥的生成三部分组成。
DES加密算法过程
DES算法处理的数据对象是一组64比特的明文串。
设该明文串为m=m1m2m64(mi=0或1)。
明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。
其加密过程图示如下:
对DES算法加密过程图示的说明如下:
待加密的64比特明文串m
经过IP置换后,得到的比特串的下标列表如下:
IP
58
42
34
26
13
2
60
52
44
36
28
20
12
4
62
丸
38
30
22
14
6
64
56
48
40
32
24
16
B
57
49
41
33
25
17
9
1
59
51
43
35
27
19
11
3
61
53
45
37
29
21
13
S
63
47
39
31
23
15
7
该比特串被分为32位的L0和32位的R0两部分。
R0子密钥K1(子密钥的生成将在后面讲)经过变换f(R0,K1)(f变换将在下面讲)输出32
位的比特串f1,f1与L0做不进位的二进制加法运算。
运算规则为:
fl与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1oL1与R0又做与以上完全相同的运算,生成L2,R2••…一共经过16次运算。
最后生成R16和L16o其中R16为L15与f(R15,K16)做不进位二进制加法运算的结果,L16是R15的直接赋值。
R16与L16合并成64位的比特串。
值得注意的是R16一定要排在L16前面。
R16与L16合并后成的比特串,经过置换IP-1后所得比特串的下标列表如下:
40
3
4®
16
56
24
64
32
39
7
47
15
5b
23
31
3B
r
46
詁
54
22
62
30
TD_1
37
三
As
13
S3
21
29
Lr"1
36
4
44
12
52
20
so
23
35
3
43
11
51
19
59
27
34
2
42
10
50
18
58
26
33
1
41
9
49
17
57
25
经过置换IP-1后生成的比特串就是密文e。
下面再讲一下变换
f(Ri-1,Ki)o它的功能是将32比特的输入再转化为32比特的输出。
其过程如图所示:
对f变换说明如下:
输入Ri-1(32比特)经过变换E后,膨胀为48比特。
膨胀后的比特串的下标列表如下:
E:
32
1
2
3
4
5
4
5
6
7
3
g
8
9
10
11
12
13
12
13
14
15
16
1.7
16
17
18
19
20
21
20
21
22
23
24
2S
24
25
27
20
29
2S
23
30
31
32
31
膨胀后的比特串分为8组,每组6比特。
各组经过各自的S盒后,又变为4比特(具体过程见后),合并后又成为32比特。
该32比特经过P变换后,其下标列表如下:
p:
16
7
20
21
29
12
28
17
1
15
23
26
5
IS
31
10
2
B
24
14
32
27
3
9
19
13
30
6
22
11
斗
25
经过P变换后输出的比特串才是32比特的f(Ri-1,Ki)。
下面再讲一下S盒的变换过程。
任取一S盒。
见图:
bl锻貞Z
Si
nn
在其输入b1,b2,b3,b4,b5,b6中,计算出x=b1*2+b6,y=b5+b4*2+b3*4+b2*8,再从Si表中查出x行,y列的值Sxy。
将Sxy化为二进制,即得Si盒的输出。
(S表如图所示)
\
0
1
2
3
4
5
6
7
5
9
10
11
12
13
14
15
S1
0
1斗
4
13
1
2
15
11
3
3
10
6
12
5
9
n
7
1
"5
15
7
斗
14
2
13
1
10
6
12
11
9
5
3
8
L
斗
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
?
:
5
n
S
2
4
9
1
7
5
11
3
14
10
0
6
13
S2
[
15
1
g
14
d
11
3
4
g
7
2
13
12
0
5
10
]
3
13
4
7
15
2
E
14
n
0
1
10
6
9
11
5
2
0
14
7
11
10
4
13
1
5
8
12
6
'J
3
2
15
3
13
8
10
1
3
15
4
2
11
d
7
12
D
H
g
S3
Q
:
n
0
9
1斗
6
3
15
5
I
13
12
7
11
4
2
8
1
13
7
0
9
3
斗
6
10
2
呂
5
14
12
11
15
1
2
13
6
4
9
S
15
3
0
11
1
2
12
5
10
14
7
?
1
10
13
0
6
g
g
7
4
15
14
3
11
5
2
12
34
[
7
13
14
3
0
6
g
10
1
2
8
5
11
12
4
15
]
13
&
11
5
百
15
0
3
4
7
2
12
1
10
14
g
2
10
6
9
0
12
11
7
13
15
1
3
14
S
2
8
斗
3
3
15
0
6
10
1
13
3
9
4
5
11
I.'-
7
2
H
0
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
S5
1
14
11
2
J2
4
7
13
1
5
0
15
ID
3
g
G
6
:
4
2
1
11
10
13
7
3
15
g
12
5
6
3
0
14
?
11
S
12
7
1
14
2
13
6
15
0
g
10
4
5
3
S6
[
12
1
10
15
9
2
6
呂
0
13
3
4
14
1
5
10
1
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
3
2
9
14
15
5
2
S
12
3
7
0
斗
IQ
1
13
11
6
3
-
3
2
J2
g
5
15
10
11
14
1
7
6
D
8
13
S7
[
4
11
2
14
15
0
3
13
3
12
g
7
5
10
(5
1
]
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
L
:
4
11
13
12
3
7
14
10
15
6
呂
Q
5
P
2
3
6
11
13
S
1
4
10
7
9
5
0
15
14
2
3
12
0
13
2
8
斗
6
15
11
1
10
9
3
14
5
(]
11
7
L
1
15
13
£
10
3
7
4
12
5
6
11
u
14
P
2
2
7
11
4
1
9
12
14
2
0
e
10
13
15
3
5
8
:
:
1
14
1
斗
10
3
13
15
12
9
0
3
5
6
10
子密钥的生成过程如下。
64比特的密钥生成16个48比特的子密钥
其生成过程见图:
子密钥生成过程具体解释如下:
64比特的密钥K,经过PC-1后,生成56比特的串。
其下标如表所示:
S7
阴
41
33
25
17
9
1
58
50
42
3斗
26
18
10
2
59
51
43
35
27
*-1
19
11
3
60
52
44
36
63
55
47
39
31
23
15
7
62
54
46
38
30
22
14
6
61
S3
45
37
29
21
13
5
2S
20
12
4
该比特串分为长度相等的比特串CO和D0b然后CO和DO分别循环左
移1位,得到C1和D1。
C1和D1合并起来生成C1D1C1D1经过PC-2变
换后即生成48比特的K1。
K1的下标列表为:
PC-2
14
17
11
24
1
5
3
28
1S
6
21
10
23
19
12
4
26
8
16
7
27
20
13
2
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
C1、D1分别循环左移LS2位,再合并,经过PC-2,生成子密钥K2•…依次类推直至生成子密钥K16o注意:
Lsi(I=1,2,….16)的数值是不同
的。
具体见下表:
选代顺厚
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
左移位数
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1
DES的解密过程和DES的加密过程完全类似,只不过将16圈的子密钥序列K1,K2••…K16的顺序倒过来。
即第一圈用第16个子密钥K16,第二圈用K15,其余类推。
第一圈;
L=R15,R=L15®f(R15,K16)®f(R15,K16)=L15同理R15=L14®f(R14,K15),L15=R14同理类推:
得L=R0,R=LQ其程序源代码与加密
相同。
在此就不重写。
1.2.3MD5加密算法
HASH原理
Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定
长度的输出,该输出就是散列值。
这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
数学表述为:
h=H(M),其中H()--单向散列函数,M--任意长度明文,h--固定长度散列值。
在信息安全领域中应用的Hash算法,还需要满足其他关键特性:
第一当然是单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H-1(h)不可行。
这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的Hash又被称为"消息摘要(message
digest)",就是要求能方便的将"消息"进行"摘要",但在"摘要"中无法得到比"摘要"本身更多的关于"消息"的信息。
第二是抗冲突性(collision-resistant),即在统计上无法产生2个
散列值相同的预映射。
给定M计算上无法找到M',满足H(M)=H(M'),此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足
H(M)=H(M'),此谓强抗冲突性。
要求"强抗冲突性"主要是为了防范所谓"生日攻击(birthdayattack)",在一个10人的团体中,你能找到和你生日相同的人的概率是2.4%,而在同一团体中,有2人生日相同的概率是11.7%。
类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到"相同生日"的人。
第三是映射分布均匀性和差分分布均匀性,散列结果中,为0的bit和为1的bit,其总数应该大致相等;输入中一个bit的变化,散列
结果中将有一半以上的bit改变,这又叫做"雪崩效应(avalanche
effect)";要实现使散列结果中出现1bit的变化,则输入中至少有一半以上的bit必须发生变化。
其实质是必须使输入中每一个bit的信息,
尽量均匀的反映到输出的每一个bit上去;输出中的每一个bit,都是
输入中尽可能多bit的信息一起作用的结果。
Damgard和Merkle定义了所谓“压缩函数(compressionfunction)”,就是将一个固定长度输入,变换成较短的固定长度的输出,这对密码学实践上Hash函数的设计产生了很大的影响。
Hash函数就是被设计为基于通过特定压缩函数的不断重复“压缩”输入的分组和前一次压缩处理的结果的过程,直到整个消息都被压缩完毕,最后的输出作为整个消息的散列值。
尽管还缺乏严格的证明,但绝大多数业界的研究者都同意,如果压缩函数是安全的,那么以上述形式散列任意长度的消息也将是安全的。
这就是所谓Damgard/Merkle结构:
在下图中,任意长度的消息被分拆成符合压缩函数输入要求的分组,最后一个分组可能需要在末尾添上特定的填充字节,这些分组将被顺序处理,除了第一个消息分组将与散列初始化值一起作为压缩函数的输入外,当前分组将和前一个分组的压缩函数输出一起被作为这一次压缩的输入,而其输出又将被作为下一个分组压缩函数输入的一部分,直到最后一个压缩函数的输出,将被作为整个消息散列的结果。
MD5和SHA1可以说是目前应用最广泛的Hash算法,而它们都是以MD4为基础设计的。
MD4加密算法原理
MD4(RFO320)是MIT的RonaldL.Rivest在1990年设计的,MD是MessageDigest的缩写。
它适用在32位字长的处理器上用高速软件实现--它是基于32位操作数的位操作来实现的。
它的安全性不像RSA
那样基于数学假设,尽管DenBoer、Bosselaers和Dobbertin很快就用分析和差分成功的攻击了它3轮变换中的2轮,证明了它并不像期望的那样安全,但它的整个算法并没有真正被破解过,Rivest也很快进行了改进。
MD5加密算法原理
MD5(RFC321)是Rivest于1991年对MD4的改进版本。
它对输入仍以512位分组,其输出是4个32位字的级联,与MD4相同。
它较MD4
所做的改进是:
1)加入了第四轮
2)每一步都有唯一的加法常数;
3)第二轮中的G函数从((XAY)V(XAZ)V(YAZ))变为((XAZ)V(YA〜Z))以减小其对称性;
4)每一步都加入了前一步的结果,以加快"雪崩效应";
5)改变了第2轮和第3轮中访问输入子分组的顺序,减小了形式的相似程度;
6)近似优化了每轮的循环左移位移量,以期加快"雪崩效应",各轮的循环左移都不同。
尽管MD5:
匕MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。
消息首先被拆成若干个512位的分组,其中最后512位一个分组是
“消息尾+填充字节(100…0)+64位消息长度”,以确保对于不同长度的消息,该分组不相同。
64位消息长度的限制导致了MD5安全的输入长度必须小于264bit,因为大于64位的长度信息将被忽略。
而4个32位寄存器字初始化为A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x7654321Q它们将始终参与运算并形成最终的散列结果。
接着各个512位消息分组以16个32位字的形式进入算法的主循环,512位消息分组的个数据决定了循环的次数。
主循环有4轮,每轮分别用
到了非线性函数
F(X,Y,Z)=(X
AY)V(〜XAZ)
G(X,Y,Z)=(X
AZ)V(YA〜Z)
H(X,Y,Z)=X
®Y®Z
I(X,Y,Z)=X
®(YV〜Z)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 模板 信息 安全 综合