网络安全防御技术实验报告.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络安全防御技术实验报告

网络安全防御技术 实验报告 姓 名:秦映林 学 号:0903070103 班 级:信息0701班 指导老师:杨振宇 实验地点:综合实验楼 实验时间:2010年11月 实验一:只使用XOR的加密及其分析 实验要求: 编写程序分别实现如下功能: a)用户输入明文PlainText和密钥Key(都可以从文件读取),用分组异或XOR生成相应密文,并输出到文件( “学号#1.dat“ )。 b)获得(交换)其他同学的密文文件(“学号#1.dat“ ),在明文、密钥(甚至”密钥长度”)未知的情况下,用穷举法获得明文和密钥。 c)改进加密算法以提高安全性。(自己发挥) 实验过程: 设计上要注意两点的内容,第一是对不同长度的密钥处理,以得到最后相同长度的最终密钥,第二是对明文的分组处理,并且在特定情况下要进行补白. 鉴于本次实验的目的是了解分组异或的原理及简单实现,因此这里避开特殊的繁琐之处,对密钥的要求不高,只需要8个比特位的密钥.如此设计是为了不管用户输入多长的密钥,都能很方便得得到最后的八位密钥. 另外,由于密钥是8位,因此降低了分组难度.相当于明文中每8个比特位为一组,这样只需将明文与密钥进行简单的异或. 对用户输入的常见字符进行处理,得到密钥,再由密钥对明文加密,整体逻辑简单,编程容易.这里用C语言来实现. #includestdio.h #includestring.h #includestdlib.h typedef unsigned char UC; UC getKey( const char *k ){ //得到八位密钥 UC ans = 0; int i = 0; while( k[i] ){ ans ^= (UC)k[i++]; } return ans; } char *work_code( const char *t, const char *k ){ int lent = strlen(t), lenk = strlen(k), i = 0; char *v = (char*)malloc(sizeof(char)*lent); UC key = getKey(k); while( t[i] ){ v[i] = key^t[i++]; } v[i] = 0; return v; } void work_encode( const char *v, const char *k ){ int i = 0; UC key = getKey(k); while( v[i] ){ printf(%c, key^v[i++]); } } int main ( void ){ freopen(in.txt,r,stdin); freopen(out.txt,w,stdout); char t[1000],k[1000]; while( scanf(%s%s,t,k) != EOF ){ char *v = work_code( t,k ); printf(%s\n,v); //work_encode(v,k); } return 0; } 实验结果: 加密前: 加密后: 实验总结: 从上面的数据可以看出解密后的两份数据如果以ASCII解析的话,看上去好像是差不多的,两份数据之间的差异是大小写字母倒转过来,从标准的ASCII表中可以得知,大写英文字母和小写英文字母之间相差32字节,即上面两份解密后的数据中每个字节都相差32字节,如果从ASCII解析角度考虑的话,的确难以分辨哪份数据才是正确,因为不知道解密后的文件数据中除了包含用于ASCII编码显示的数据外还有没有包括别的有用的二进制解析的数据。要知道解密后的数据中有没有包含二进制解析的数据,那么不妨用Windows的记事本打开这两份解密后的文件,因为Windows的记事本是以ASCII解析数据的,浏览ASCII解析的文件比较直观,虽然Winhex中也可以直接以ASCII解析观察数据,但不如Windows的记事本方便。 实验二:用 Feistel结构构造加密算法 实验要求: 应用Feistel结构,构造 加解密算法。并编写2个程序分别实现对文件进行加密和解密,加密后的文件命名为“学号#2.dat“ 。要求采用分组链接模式(CBC)。 实验过程: Feistel结构: 加密: Li = Ri-1; Ri = Li-1(F(Ri-1,Ki) 解密: Ri-1 = Li Li-1 = Ri(F(Ri-1,Ki) = Ri(F(Li,Ki) Feistel加密过程: 输入: 长为2

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档