《信息安全》实验指导书编者:吕林涛胡元义王义铭吴孟斌西安理工大学计算机科学与工程学院2011年《信息安全》课程实验指导书一、制定实验指导书的依据根据本校《2008级本科指导性培养计划》、《信息安全》课程教学大纲、《信息安全》课程实验大纲制定。二、本课程实验目的与要求1.本课程实验目的《信息安全》课程在计算机专业教学计划中,是一门重要的专业技术课。《信息安全》人才需求在我国紧缺,国内能开设《信息安全》课程的高校为数不多。因此《信息安全》实验课程能使学生获得网络安全、密码技术基础、密钥管理技术、数字签名和认证技术、网络入侵检测原理与技术、Internet的基础设施安全、防火墙技术、电子商务的安全技术及应用、包过滤技术原理及应用、代理服务技术原理及应用、信息隐藏技术等方面的知识。实验课是本课程重要的教学环节,其目的是使学生掌握使学生能够对计算机网络网络与信息安全有一个系统的了解,并掌握计算机网络特别是计算机网络网络与信息安全的基本理论和关键技术,掌握设计和维护网络与信息安全的网络体系及其应用系统的基本手段和常用方法接受基本实验技能的训练,提高学生的动手能力和分析、解决问题的能力。总之,本实验目的是:(1)了解和掌握加密/解密和数字签名模型构建方法;(2)在掌握用OutlookExpress发送签名邮件的方法和掌握用OutlookExpress发送加密邮件的方法的基础上,掌握常用的加密/解密和数字签名算法原理及应用。2.本课程实验要求学生预备的知识由于越来越多的人通过电子邮件发送机密信息,因此,确保电子邮件中发送的文档不是伪造的变得日趋重要。同时,保证所发送的邮件不被除收件人以外的其他人截取和偷阅也同样重要。通过使用OutlookExpress的“数字标识”,您可以在电子事务中证明您的身份,就像兑付支票时要出示有效证件一样。您也可以使用数字标识来加密邮件以保护个人隐私。数字标识结合了S/MIME规范来确保电子邮件的安全。由于Internet电子商务系统技术使在网上购物的顾客能够及其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被盗用的风险。买方和卖方都必须保证在因特网上进行的一切金融交易运作都是真实可靠的,并且要使顾客、商家和企业等交易各方都具有绝对的信心,因而,因特网电子商务系统必须保证具有十分可靠的安全保密技术,也就是说,必须保证网络安全的四大要素,即信息传输的保密性、交易者身份的确定性、发送信息的不可否认性、数据交换的完整性。(1)信息传输的保密性。交易中的商务信息均有保密的要求,如信用卡的帐号和用户名被人知悉,就可能被盗用;订货和付款的信息被竞争对手获悉,就可能丧失商机。因此,在电子商务的信息传播中,一般均有加密的要求。(2)交易者身份的确定性。网上交易的双方很可能素昧平生,相隔千里。要使交易成功,首先要能确认对方的身份,商家要考虑客户端是不是骗子,而客户也会担心网上的商店不是一个玩弄欺诈的黑店。因此,能方便可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店来说,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法,确认顾客的身份是否合法,同时,还要防止发生拒付款问题以及确认订货和订货收据信息等。(3)发送信息的不可否认性。由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此,电子交易通信过程的各个环节都必须是不可否认的。(4)数据交换的完整性。交易的文件是不可被修改的,如上述订购黄金,供货单位在收到订单后,发现金价大幅上涨了,如其能改动文件内容,将价格提高,则可大幅收益,而订货单位就会因此而蒙受损失。数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采用了公开密钥体制,其他还包括对称密钥加密、数字签名、数字信封等技术。我们可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:①信息在传输过程中不被篡改;②双方能够通过数字证书来确认对方的身份;③发送方对于自己的信息不能抵赖。3.本课程实验的内容及要求3.1本课程实验的内容(1)熟悉数据加密/解密方法(任选下面一个实验题目):1)熟悉OutlookExpress发送签名邮件方法和发送加密邮件方法;2)RSA算法实现;3)DES算法实现。(2)置换密码技术实现程序开发3.2本课程实验要求3.2.1实验1:熟悉OutlookExpress发送签名邮件方法和发送加密邮件方法;通过熟悉OutlookExpress发送签名邮件的方法和OutlookExpress发送加密邮件的方法的基础上,掌握本课程实验的内容的加密/解密和数字签名算法原理及应用。(一)OutLookExpress发送签名邮件方法(1)发送签名邮件前必须正确安装了自己的“电子邮件保护证书”。如果要申请或者导入证书请到站点上申请一个电子邮件保护证书。(2)启动OutLookExpress,从“工具”菜单中选择“帐号”。如果还没添加过帐号,请参阅其他章内容,添加一个自己的邮件地址帐号,如图3-1所示。图3-1(3)选择帐号,单击右边“属性”按钮,弹出“属性”对话框,选择“安全”标签,出现如图3-2所示对话框。图3-2(4)单击签署证书中的“选择”按钮,弹出你所申请的“电子邮件安全证书”选择对话框,如图3-3所示。图3-3(5)选择所申请的安全电子邮件证书,单击“确定”按钮。(6)单击“确定”,关闭OutlookExpress帐户窗口,返回到OutlookExpress界面,单击“创建邮件”,从“工具”菜单中选择“签名”,收件人地址栏后面出现“签名”标志,如图3-4所示。图3-4(7)输入对方邮件地址及其他内容,单击“发送“就可以发送数字签名电子邮件了。(8)用上面的方法给自己发一封带有自己数字签名的电子邮件,然后用OutlookExpress接受,接受到的电子邮件就会出现在右边的列表中。(9)双击所接收到的带数字签名的电子邮件。(10)单击窗口中的数字签名标识,会弹出一个以你所接受到邮件主题命名的窗口,可以看到所接受到的邮件的详细安全信息,包括证书信息、常规信息等。(二)OutlookExpress发送加密邮件方法(1)发送加密邮件前必须正确安装了对方的“电子邮件保护证书”(只含有共有密钥,可以向对方索取)。向对方索取后,再正确的安装。(2)单击OutlookExpress“工具”菜单中选择“选项”,弹出“选项”对话框,选择“安全”标签,如图3-5所示。图3-5(3)单击“数字标识”按钮,弹出“证书”,选项窗口,单击“其他人”标签,如图3-6所示。图3-6(4)单击“导入”按钮,通过浏览方式选择对方数字证书,如图3-7所示。图3-7(5)单击“下一步”按钮,选择“将所有的证书放入下列存储区”,单击“浏览”按钮,选择“其他人”。(6)单击“下一步”按钮,安装对方数字证书。(7)单击“关闭”,再单击“确定”,返回到OutlookExpress主界面,创建新邮件,从“工具”菜单中选择“加密”,收件人地址栏后面出现“加密”标志。(8)输入对方邮件地址及其他相关内容,就可以发送邮件了。(9)用上面的方法给自己发一封加密电子邮件,然后用OutlookExpress接收,接收到的电子邮件就会显示出来。(10)双击所接收到的加密电子邮件,会弹出加密提示。(11)单击“确定”,就可以看到所收到的加密邮件了。(12)单击“继续”就可以看到邮件正文了,同样,单击窗口右边的加密标识,会弹出一个“加密邮件”窗口,可以看到你所接收到的邮件的详细安全信息,包括证书信息、常规信息和加密信息等。(三)报告要求:本次实验不提交实验报告。(四)思考题:1.OutlookExpress的基本功能是什么?2.OutlookExpress中的证书内容是什么?(五)参考文献:[1]吕林涛,李军怀.网络信息安全技术概论(第二版).北京:科学出版社,2010.6[2]吕林涛等.《网络与信息安全》实验指导书.校编,2011[3]梁亚声等.计算机网络安全技术教程.北京:机械工业出版社,2005.23.2.2实验2:RSA算法实现1.实验题目:RSA加密算法的实现2.实验目的通过RSA加密算法的实现,进一步掌握RSA算法的原理,为今后的工程应用打下坚实的基础。3.实验原理(1)找出三个数p,q,r.其中p,q是两个相异的质数,r是与(p-1)×(q-1)互质的数,p,q,r这三个数便是私钥;(2)找到m,使得r×m==1mod(p-1)×(q-1),这个m一定存在,因为r与(p-1)×(q-1)互质,用辗转相除法就可以得到;(3)计算n=p×q(其中:m,n这两个数便是公钥)。加密过程是,(1)若待加密的明文信息流定义为a,并将其看成是一个大整数,如果a=n的话,就将a表乘s进位(s=n,通常取s=2t,则每位数均小于n;(2)分段加密;(3)计算c==ammodn(0=bn),b是加密后的密文信息流。解密过程是,计算c==brmod(p×q)(0=cpq),解密完成。4.实验环境运行windows操作系统的PC机,具有VC、C、VB等语言编译环境。5.实验内容(1)准备实验加密数据文件;(2)计算p、q、r、n等参数的值;(3)通过实验程序验证RSA算法(4)分析实验结果;(5)撰写实验报告。6.实验报告要求1〉要求上述密码算法最后的实现程序提供加密和解密两个接口,要求由数据测试。2〉程序部分必须加注释,增强可读性;使用结构化编程模式。3实验心得必须针对本实验写出自己的认识,本算法的优缺点等等。4〉实验必须独立完成,实验报告不能雷同,否则按零分计。7.实验程序及实验数据:(1)实验程序#includestdio.h#includemath.h#includestring.hIntgetd(intp,intq,inte){Intqn,d=1;qn=(p-1)*(q-1);while(d){If(d*e%qn=1)Return(d);Elsed++;}}//getdIntpower(inta,intb){Intmut=1;While(b!=0){Mut*=a;b--;}Returnmut;}//powerIntjiemi(inte,intn,intp){Intq;q=power(p,e)%n;returnq;}//jiemiIntjiami(inte,intn,intp){Intq;q=power(p,e)%n;returnq;}//jiamiVoidmain(){Intprime1,prime2,p;Intd,e,n,miwen,minwen;Intgetd(intp,intq,inte);Printf(“请输入两个大的素数和公钥,e\\n”);Scanf(“%d%d%d”,&prime1,&prime2,&e);n=prime1*prime2;printf(“n为%d\\n”,n);d=getd(prime1,prime2,e);printf(“私有密钥是%d”,d);//其中e和n为共钥,d为私钥printf(“请输入要加密的数字串\\n”);scanf(“%d”,&p);while(p!=0){miwen=jiami(e,n,p);printf(“加密的数值是%d”,miwen);minwen=jiemi(d,n,miwen);printf(“解密后的数值为;%d\\n”,minwen);}scanf(“%d”,&p);}(2)实验输入数据P=43,q=59e=13n=2537d=937=(e=13,n=2537)为公钥,(d=937)为私钥取明文publicencryptions