ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:402.11KB ,
资源ID:8446337      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8446337.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《计算机信息安全》实验指导书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《计算机信息安全》实验指导书.docx

1、计算机信息安全实验指导书实验一 对称密钥密码加密解密实验实验学时:2学时实验类型:设计实验要求:必修一 实验目的 1、掌握对称密钥密码体制的基本概念; 2、掌握对称密钥密码体制加密/解密的工作原理; 3、重点掌握DES密码算法加密/解密的基本原理; 4、通过用DES算法对实际的数据进行加密/解密运算来深刻了解DES的运行原理。二 实验内容 1、根据DES密码算法原理,用Turbo C2.0或Visual C+6.0设计编写符合DES密码算法思想的加密/解密程序。三 实验环境 1、操作系统:Windows9x/NT/2000/XP 2、编程软件:Turbo C2.0或Visual C+6.0四

2、实验原理1、DES算法工作的基本原理:DES是基于Feistel密码结构的分组密码,其 入口参数有三个:key、data、mode。 其中,key为加密/解密时使用的 密钥;data为加密/解密的数据;mode为其工作模式:当模式为加密模 式时,明文按照64位进行分组,形成明文分组,此时key用于对数据 加密;当模式为解密模式时,key用于对64位的密文分组进行解密,以 恢复明文。2、DES算法共进行16轮迭代操作,每轮中都使用相同的轮函数F,如下: F(Ri1,Ki)=p_box(S_boxes(Expand(Ri1) Ki)整个算法的流程如图所示: DES加密算法流程图(一)、密钥生成1、

3、生成种子密钥K 使用密钥流生成器生成64位(8个字节)的种子密钥K,每个字节的第8位作为奇偶校验位,不参与实际运算中子密钥的生成过程。 2、生成每一轮迭代中使用的子密钥ki。 (1) 根据PC-1置换进行种子密钥K的变换,舍弃64位种子密钥K中的8个奇偶校验位,得到56位的密钥。 (2) 将变换后的密钥分为左右两部分各28位,分别称为C0和D0,即PC-1(K)= C0D0。 (3) 生成16个子密钥ki,1i16。 (i) 将Ci、Di循环左移1位或2位,根据i值由“循环左移表”决定循环左移的位数,即计算Ci=LSi(Ci-1)和Di=LSi(Di-1),其中,LS表示循环左移。(ii) 将

4、循环左移后的Ci和Di作为一个56位的整体按置换表PC-2进行变换,得到本轮所使用的48位子密钥ki,即ki=PC-2(CiDi)(1i16)。(二)、处理64位数据 1、取得64位明文分组数据m,如果数据长度不足64位,应该将其扩展为64 位(例如补零) 。2、将64位明文分组数据m按初始置换表IP进行变换,获得64位的m0,并将 m0分为左右两部分,前面32位记为L0,后面32位记为R0,即 m0=IP(m)=L0R0 。3、用16个子密钥ki(1i16)加密数据。所用变换公式为: F(Ri1,Ki)=p_box(S_boxes(Expand(Ri1) Ki) (1) 将32位的Ri-1按

5、扩展置换E扩展成48位; (2) 异或Ri-1和ki; (3) 将异或后的结果分为8个6位长的部分,第1位到第6位称为S1,第7位到第12位称为S2,依此类推,第43位到第48位称为S8; (4) 按S盒的变换原理变换所有的Sj,1j8。每一个S盒都是将输入的6位数据经过处理后转换成4位数据输出。 (5) 将S1到S8的输出组合成32位数据,按P置换进行变换,变换的结果就是轮函数F。 (6) 异或轮函数F和Li-1,结果就是Ri,即Ri=Li1 F(Ri1,Ki) (7) Li=Ri1 (8) 循环执行轮函数F,直到K16被变换完成。 4、第16轮迭代结束后左、右部分各是L16和R16,将左右

6、部分交换,作为64位 的预输出,即L17=R16,R17=L16。5、将变换后的R16L16按逆初始置换IP-1进行变换得到最后的结果,即为密文,即 c=IP-1(R16L16)。五 实验步骤 本实验为设计型实验,要求学生自己根据实验原理,自行设计实验步骤,利用Turbo C2.0或Visual C+6.0编程语言,实现对一个文件进行加密和解密。六 实验结果七 思考题1、DES算法中大量的置换运算的作用是什么?2、DES算法中S盒变换的作用是什么?3、通过查阅相关资料了解目前破解DES算法的基本原理或方法。实验二 公钥密码加密解密实验实验学时:2学时实验类型:设计实验要求:必修一 实验目的 1

7、、掌握公钥密码体制的基本概念; 2、掌握公钥密码体制加密/解密的工作原理; 3、重点掌握RSA密码算法加密/解密的基本原理; 4、通过用RSA算法对实际的数据进行加密/解密运算来深刻了解RSA的运行原理。二 实验内容 1、根据RSA密码算法原理,用Turbo C2.0或Visual C+6.0设计编写符合RSA密码算法思想的加密/解密程序。三 实验环境 1、操作系统:Windows9x/NT/2000/XP 2、编程软件:Turbo C2.0或Visual C+6.0四 实验原理RSA算法基于数论构造,是迄今理论上最为完善的非对称密钥密码算法,它的安全性是建立在“大整数的质因子分解和素性检测”

8、这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量则相当大。1、RSA的密钥产生过程如下:选择两个保密的大素数p和q;计算n=pq(公开);(n)=(p-1)(q-1)(保密);随机选取一个整数e,满足1e(n)且gcd(n),e)=1(公开);计算d,满足ed1(mod (n)(保密);说明:d是e在模(n)下的乘法逆元。因为e与(n)互素,所以其乘法逆元一 定存在。得到一对密钥:公钥e,n,私钥p,q,d。2、RSA的加密过程如下:明文数字化,即将明文转换成数字串。将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于等 于log2

9、n+1。设第i个明文分组对应的数字为mi,对mi作加密运算。即将消息mi以加密指 数e做乘方,并取模n,即:ci=mie mod n (0min)最后得到的密文C由所有长度相同的密文分组ci组成。3、RSA的解密过程如下:将密文转换成数字串。将以上数字串分段,使得每一段数字均小于n。设第i个密文分组对应的数字为ci,对ci作解密运算。即将明文分组ci以解 密指数d做乘方,并取模n,即: mi=cid mod n最后得到的明文M由所有长度相同的明文分组mi组成。五 实验步骤 本实验为设计型实验,要求学生自己根据实验原理,自行设计实验步骤,利用Turbo C2.0或Visual C+6.0编程语言

10、,编程实现RSA算法。编程内容包括:1、用函数求出165535之间的全部素数。2、用函数生成一对RSA密钥。3、并利用该程序实现对一个文件进行加密和解密处理。六 实验结果1、加密运行2、解密运行说明:由于int型变量长度为16位,因此n最大只能小于65536。此程序只是 对RSA算法进行验证,无法实现达到安全要求的数据位数。七 思考题1、分析影响RSA密码体制安全的因素。2、分析比较RSA密钥的长度对加密、解密性能的影响。实验三 Hash函数加密解密实验实验学时:2学时实验类型:设计实验要求:必修一 实验目的 1、了解MD5算法的基本原理; 2、熟悉MD5消息摘要算法的编程实现方法; 3、通过

11、用MD5算法对随机产生的数据进行哈希来深刻了解MD5的运行原理。二 实验内容 1、根据MD5算法原理,用Turbo C2.0或Visual C+6.0设计编写符合MD5算法思想的消息摘要生成程序。三 实验环境 1、操作系统:Windows9x/NT/2000/XP 2、编程软件:Turbo C2.0或Visual C+6.0四 实验原理1、MD5算法的作用是把一个任意长度的消息进行变化产生一个128bit的消息摘 要。2、MD5算法除了要能够满足完成完整性验证必需的要求外,还要求运算效率要 高。因此,MD5将消息分成若干个512bit的分组(大块)来处理输入的消息, 且每一个分组又被划分成16

12、个32bit的子分组(子块),经过一系列变换后, 算法的输出由4个32bit分组构成,将这4个32bit分组连接后生成一个 128bit的消息摘要。3、MD5算法以32位字运算为基础,加密算法有4轮,每一轮要进行16次迭代 运算。整个算法分为五个步骤。步骤1: 增加填充位在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448,即信息的字节长度扩展至N512+448,N为一个正整数。填充的方法是:第一位为1,后面各位全为0。步骤2: 附加消息长度值然后,再在填充后的报文后面附加一个64位的长度值,该长度值来源于填充前的原始报文长度。经过上述两步处理,当前报文的比特长度=

13、N512+448+64=(N+1)512,即长度恰好是512的整数倍。按照512的长度为单位,将报文分割成Y0,Y1,YN-1,每一个分组又可以表示成16个32位的字。步骤3: 初始化MD缓冲区MD5有A,B,C,D四个32位的寄存器用作缓冲区,它们的初始值分别为 A=01 23 45 67,B=89 ab cd ef,C=fe dc ba 98,D=76 54 32 10。步骤4: 以512位的分组为单位处理消息从分组Y0开始,到最后一个分组YN-1,依次进行HMD5压缩运算。每个HMD5有两个输入(一个是128位的CV0,另一个是512位的分组Yi)和一个128位的输出。最开始的128位输

14、入为4个32位寄存器的初始值,以后每个HMD5的输出作为下一个128位的输入。步骤5: 输出最后一次进行HMD5后输出的128位值,即为所求的消息摘要MD。如图所示。D5压缩函数HMD5的处理过程HMD5算法 HMD5算法是MD5的关键函数,它是一个4轮循环,如图所示。 HMD5算法(1)运算一开始,先将4个寄存器的初始值复制到另外4个变量中, A=a,B=b,C=c,D=d。(2)注循环右4轮,每一轮结构都很相似。在每一轮中进行16次迭代操作。每次 操作对a,b,c,d中的3个做一次非线性函数运算。然后将所得结果加上第4 个变量以及报文的一个子分组和一个常数Ti。再将所得结果循环左移一个 不

15、定的数,并加上a,b,c,d中之一。即a=b+(a+g(b,c,d)+Xk+Ti)S)。(3)以下是每次操作中用到的4个非线性函数(每轮一个)。(4)下面为每一轮16次操作中的4次操作,16次操作按照一定顺序进行。FF(a,b,c,d,Mj,S,Ti)表示a=b+(a+(F(b,c,d)+Mj+Ti)S)GG(a,b,c,d,Mj,S,Ti)表示a=b+(a+(G(b,c,d)+Mj+Ti)S)HH(a,b,c,d,Mj,S,Ti)表示a=b+(a+(H(b,c,d)+Mj+Ti)S)II(a,b,c,d,Mj,S,Ti)表示a=b+(a+(I(b,c,d)+Mj+Ti)count0 = co

16、ntext-count1 = 0; context-state0 = 0x67452301; context-state1 = 0xefcdab89; context-state2 = 0x98badcfe; context-state3 = 0x10325476;void MD5Update(MD5_CTX *context,unsigned char *input,unsigned int inputLen)/MD5块处理函数 unsigned int i,index,partLen; index = (unsigned int)(context-count0 3) & 0x3F); if

17、 (context-count0 += (UINT4)inputLen 3) (UINT4)inputLen count1+; context-count1 += (UINT4)inputLen 29); partLen = 64 - index; if (inputLen = partLen) MD5_memcpy(POINTER)&context-bufferindex, (POINTER)input, partLen); MD5Transform (context-state, context-buffer); for (i = partLen; i + 63 state, &input

18、i); index = 0; else i = 0; MD5_memcpy(POINTER)&context-bufferindex, (POINTER)&inputi,inputLen-i);void MD5Final(unsigned char digest16,MD5_CTX *context)/*完成函数,context指向上面处理过的结构体,digest16是用来存储结果的缓冲区 这个函数对未完成的信息先进行填充,然后处理,并把最终结果存储在digest16中*/ unsigned char bits8; unsigned int index, padLen; Encode (bit

19、s, context-count, 8); index = (unsigned int)(context-count0 3) & 0x3f); padLen = (index state, 16); MD5_memset (POINTER)context, 0, sizeof (*context);3、主函数#include md5.c#include #include #include #define RAND_MAX 0x7fffvoid main(void) unsigned char *inputData; char *inp = (char *)malloc(sizeof(char)

20、*1024); inputData=(unsigned char*)inp; unsigned char* hashstr; int i,x; time_t t; /这两行保证每次产生的随机数不同 int len; srand( (unsigned) time( &t ) ); len = rand()*200/RAND_MAX; inplen=0; for(i=0;ilen;i+) x = rand()*16/RAND_MAX; if(x9 & x16) inpi = 65 + x -10; printf(明文字符串是: %snn,inp);if (hashstr = (unsigned c

21、har *) malloc(17) = NULL) printf(Not enough memory to allocate buffern); exit(1); / terminate program if out of memory MD5String(inputData,hashstr); /调用MD5算法实现函数 printf(明文经过MD5得到的消息摘要是:%sn,hashstr); 七 实验结果由于在程序中使用了语句int i,x;和time_t t;,保证了每次产生的明文信息均不同,故经过MD5算法运算,得到的消息摘要MD(x)也是不相同的。八 思考题1、简述消息认证码MAC的基

22、本原理。2、分析MAC与消息摘要的区别。实验四 软件安全实验实验学时:2学时实验类型:设计实验要求:必修一 实验目的计算机系统漏洞扫描器是一种自动检测远程或本地主机安全性弱点的程序。通过使用漏洞扫描器,系统管理员能够发现所维护的Web服务器的各种TCP端口的分配、提供的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞,从而及时修补漏洞,保障计算机系统的安全。1、了解目前系统存在的典型漏洞。2、学会使用网络扫描和漏洞扫描工具。3、掌握涉及网络安全所采取的防范措施。二 实验内容本次试验所选择的流光漏洞扫描软件不仅仅是操作系统漏洞扫描工具,还是一个功能强大的渗透测试工具。流

23、光自带了猜解器和入侵工具,可以方便地利用扫描出的漏洞进行入侵。通过试验,需要掌握流光漏洞扫描软件的使用。三 实验环境 1、操作系统:Windows9x/NT/2000/XP 2、两台预装Windows2000/XP的计算机,通过网络相连,其中一台计算机安装Fluxzy5(流光5)。四 实验原理计算机系统漏洞扫描技术的工作原理是:首先,要获得计算机系统在网络服务、版本信息、Web应用等相关信息,采用模拟攻击的方法,对目标主机系统进行攻击性的安全漏洞扫描。如:弱口令测试等。如果模拟攻击成功,则视为系统存在漏洞。其次,也可以根据系统事先定义的系统安全漏洞库对可能存在的、已知的安全漏洞进行逐项检查,按

24、照规则匹配的原则将扫描结果与安全漏洞库进行比对,如果满足匹配条件,则视为系统存在漏洞。最后,根据检测结果向系统管理员提供安全性分析报告,作为系统和网络安全整体水平的评估依据。五 实验步骤1、安装流光软件 在安装流光时,需要关闭本地的病毒防火墙。启动流光工具后可以看到主界 面如图4-1所示。 图4-1 流光工具启动界面2、选择【文件】【高级扫描向导】命令,打开【设置】对话框,图4-2所示。 图4-2 高级扫描向导设置3、在该对话框中的【起始地址】和【结束地址】文本框中填写本地IP地址,【目 标系统】下拉列表框可以选择ALL/Windows/Linux/UNIX,【检测项目】列表 框选择对目标主机

25、的哪些服务进行漏洞扫描,单击【下一步】按钮,打开 【PORTS】对话框,如图4-3所示。 图4-3 端口设置4、通过图4-3所示对话框可以对扫描的端口进行设置,其中自定义端口扫描范 围为065535。对于本次试验,选中【标准端口扫描】复选框,并单击【下 一步】按钮,将打开尝试获取POP3的版本信息和用户密码的对话框以及获取 FTP的Banner、尝试匿名登录、尝试用简单字典对FTP账号进行暴力破解的 对话框。选择这3项后单击【下一步】按钮,将弹出询问获取SMTP、IMAP 和操作系统版本信息以及用户信息的提示,并询问是否扫描Sun OS/bin/login远程溢出的对话框。5、之后,将出现扫描Web漏洞的信息,对按照事先定义的CGI漏洞列

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1