网络与信息安全第一次试验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京工程学院
实验报告
课程名称网络应用与开发
实验名称文件安全传输
院(系、部、中心)计算机工程学院
专业网络工程
班级网络工程121
姓名孙雅
学号202120505
起止日期 15.03.19~15.03.25 指导教师毛云贵
实验一文件安全传输
一、实验目的
1、掌握安全通信中常用的加密算法。
2、掌握数字签名过程。
3、掌握安全文件传输基本步骤。
二、实验原理
1、数字签名:传统的签名在商业和生活中广泛使用,它主要作为身份的证明手段。
在现代的网络活动中,人们希望把签名制度引入到网络商业和网络通信的领域,用以实现身份证明。
密码学的发展,为数字签名这项技术的实现提供了基础,PKI(公钥基础设施)体系也正是利用数字签名技术来保证信息传输过程中的数据完整性以及提供对信息发送者的认证和不可抵赖性。
数字签名的过程如图所示:
想要理解数字签名的签名过程就必须先理解两个知识点,那就是文件摘要和公钥私钥。
什么是文件摘要?简单的来说,文件摘要就是用户将明文输入进去之后,通过固定的算法得到明文分组,明文分组包括原始明文,填充位和长度。
将明文分组继续分组成16个子明文分组。
然后将80个子明文分组进行扩充,进行80步的运算和求和运算即得到的结果就是我们所要的文件摘要,这一计算过程称之为SHA算法,也叫做安全散列算法。
文件摘要算法是密码学算法中一个非常重要的分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。
什么是公钥和私钥?公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。
公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
通过这种算法得到的密钥对能保证在世界范围内是唯一的。
使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。
比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用
公钥解密,否则解密将不会成功。
每支钥匙产生一个被使用来改变属性的功能。
私有的钥匙产生一个私有改变属性的功能,而公开的钥匙产生一个公开改变属性的功能。
这些功能是反向相关的,例如,如果一个功能是用来加密消息,另外一个功能则被用来解密消息。
不论此改变属性功能的次序为何皆不重要。
公开的钥匙系统的优势是两个用户能够安全的沟通而不需交换秘密钥匙。
例如,假设一个送信者需要传送一个信息给一个收信者,而信息的秘密性是必要的,送信者以收信者的公开的钥匙来加密,而仅有收信者的私有的钥匙能够对此信息解密。
公开的钥匙密码学是非常适合于提供认证,完整和不能否认的服务,所有的这些服务即是我们所知的数字签名。
本次实验采用的是RSA公私钥系统。
这样一来数字签名的过程就很明了了,发送者事先填好想要发送的明文,通过散列函数得到相应的文件摘要,将所得到的文件摘要与自己的私钥结合通过RSA 算法,得到数字签名,签名成功,生成不可读取的DSK密文。
数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。
二是数字签名能确定消息的完整性。
因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。
不同的文件将得到不同的数字摘要。
一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。
”
数字签名的解密过程如下图所示:
在上文中了解了文件摘要和公私钥的概念之后,就不难理解数字签名的解密过程了。
发送方将文件摘要和签名一起发送给发送方。
接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。
就通过验证,如果这两个摘要不相同,则该签名不是发送方的。
对称加密算法:DES算法是密码体制中的对称密码体制,又被称为美国数据加密标准。
明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES 运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
其入口参数有三个:key、data、mode。
key为加密解密使用的密钥,data 为加密解密的数据,mode为其工作模式。
当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于
对数据解密。
实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。
DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。
然而,这并不等于说DES 是不可破解的。
而实际上,随着硬件技术和Intemet的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
但是由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。
速度一直是RSA的缺陷。
一般来说只用于少量数据加密。
RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。
比起DES和其它对称算法来说,RSA要慢得多。
实际上Bob一般使用一种对称算法来加密他的信息,然后用RSA来加密他的比较短的对称密码,然后将用RSA加密的对称密码和用对称算法加密的消息送给Alice。
这样一来对随机数的要求就更高了,尤其对产生对称密码的要求非常高,因为否则的话可以越过RSA来直接攻击对称密码。
RSA加密解密过程:
3、安全通信的要求
我们假设一个要进行网络通信的两个终端(A和B)所处的环境;
终端A和终端B相距很远,彼此间很难见面(但可以通过Internet通信)。
终端A有很重要的信息必须要发送给终端B。
这个过程中,终端A不能使用除计算机网络之外其他的通信方式,比如电
话,传真等。
安全通信的要求中;
保密要求:终端A的信息(明文)要加密通信给终端B。
认证要求:终端B能认证发送人的身份是终端A,而不是其他人。
数据完整性要求:终端B能认证收到的密文没有被篡改。
不可否认要求:终端A事后不能否认曾经把信息传递给终端B。
以上这些要求也是真实世界中安全通信的基本要求,只能较好的提供安全性,但是不能达到绝对的安全通信。
实验步骤
1、实验由终端A和终端B组成,分别扮演发送方和接收方的角色。
首先,终端A采用对称加密算法对传输信息进行加密。
A端的明文为:采用对称算法对传输信息进行加密通过加密算法加密后的会话密钥为:hello~
2、终端A和终端B分别使用RSA算法输入两个素数,计算得到自己的公钥和私钥。
这里A端的公钥为(e,n)(1001,1387)私钥为(d,n)(905,1387)B 端的公钥为(e,n)(101,143)私钥为(d,n)(101,143)。
使用终端B的公钥将会话密钥进行加密,这样就能够保证传输信息的保密性以及信息接收方的不可否认性。
3、采用哈希函数对自己的文件产生文件摘要,并且使用自己的私钥对文件摘要进行数字签名,这里的过程已经在上文中讲述过,这里就不细致讲述了,这样可以保证传输信息的完整性和发送方的不可否认性。
明文为:hello~ 摘要为8F7D88E901A5AD3A05D8CC0DE93313FD76028F8C
4、将密文、加密后的会话密钥和数字签名打包在一起后,通过网络传输给终端B。
5、使用自己的私钥对终端A加密的会话密钥进行解密,因为在终端A中是用终端B的公钥对会话密钥进行加密的,这样的话就只有终端B用自己的私钥
能解密了。
得到准会话密钥;
6、使用准会话密钥对得到的密文进行解密,得到准明文;
7、使用终端A的公钥对得到的数字签名进行签名验证,得到准明文摘要;
8、使用哈希函数计算得到准明文摘要,将计算得到的准明文摘要和解密得到
的准明文摘要进行比较,如果相同表示传输成功。
实验心得
这次的实验虽然时间很短,只有两节课的时间,因为有认真做实验,所以收获还是颇丰的。
本次实验是在WINDOWS NNS的操作系统下的一个虚拟机上面完成的。
一开始,我们只是单纯的在课上听来是讲解了一些加密算法的内容,原理以及实现过程。
只是在脑子里有一个大概的印象,但是具体操作实现我们并没有感觉。
所以刚刚拿到虚拟机进行操作的时候很是生疏。
特别是在导出密文的时候,我们居然到真机的电脑磁盘里面去找了很久,结果什么也没找到,还以为是电脑出了问题呢,后来通过询问其他同学才发现原来在虚拟环境下面的磁盘里面。
说实话,一开始做这个实验的时候特别混乱,虽然给了详细的四眼步骤还是很混乱,脑子里没有概念,不知道怎么将这几种加密算法结合到一起去,通过一步步认真的实验,分析实验原理,做了两遍才渐渐明了实验的精髓。
通过本次实验,我熟练的掌握了文件传输过程中经常使用的加密算法:例如DES 算法、非对称算法、RSA算法以及哈希算法等。
掌握了它们的原理,优缺点,以及相互之间关系的比较等。
同时也掌握了数字签名的过程是怎样实现的。
其实数字签名的过程就是数据密码交换的过程,通过接收到对方的私钥生成签名之后,对方再通过你的公钥对签名进行解密过程。
我和本组的同学成功的进行了这个过程的实现和验证。
同时我也掌握了很多无形的知识,例如同学之间坦诚相待的合作关系,交流学习等。
浙江促进我以后更加认真的学习网络信息安全这门课
程。
多多参加实际操作,让我对这门课有更多更深的了解,不止于书本。
教师评阅:
90-95分:
实验课前做了充足的准备工作,与专业相关知识能紧密联
系。
实验报告条理清晰,书写规范,图文并茂,报告内容全面,主要内容阐述详细。
认识体会深刻,起到了实验的目的。
80-85分:
实验课前做了充足的准备工作,与专业相关知识能较紧密联
系。
实验报告条理清晰,书写规范,图文并茂,报告内容较全面,主要内容阐述较详细。
认识体会较深刻,达到了实验的作用。
70-75分:
实验课前准备较充足,与专业相关知识能基本能联系,实验报告条理清晰,书写较规范,报告内容较全面,能用部分图片展示相关内容,主要内容阐述较详细。
认识体会较深刻,达到了实验的目的。
60-65分:
实验课前准备不够充足,与专业相关知识不能紧密联系。
实
验报告条理基本清晰,书写基本规范,报告内容基本全面,主要内容阐述基本详细。
认识体会不太深刻,基本达到实验的目的。