网络安全课程设计报告书.doc_第1页
网络安全课程设计报告书.doc_第2页
网络安全课程设计报告书.doc_第3页
网络安全课程设计报告书.doc_第4页
网络安全课程设计报告书.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. . . . .网络安全课程设计实验名称: 网络安全管理设计 班 级: 网络* 学 号: * 姓 名: * 指导老师: * 2012 年 9 月 26 日网络安全实验指导书 对称加密算法一、实验目的1、熟悉和掌握对称加密算法的原理及其一般过程;2、掌握对称加密算法的基本方法:替代(substitute)与置换(transposition);3、掌握使用一定的编码开发工具(对具体的开发平台和工具不作要求)。二、实验内容1、 替代加密法1) 编程实现课本习题2.1的线形替代加密方法的破解(提示:可使用穷举法);(已知替代变换函数f(a)=ak mod 26,且9k mod 26=15,试计算k)2) 破解后,实现该方法的加密运算(输入明文,输出密文)和解密运算(输入密文,输出明文)(解密运算提示:设密钥为k,密文为c,明文为m,则有m*k mod 26=c,因为m26且唯一,同样可使用穷举法搜索出m);3) 加密字符串“substitute”,输出密文;4) (可选) 推导解密密码本,即明文与密文字母的一一对应关系。2、 置换加密法1) 给定置换表“86427531”,编程实现基于该表的加密运算;2) 加密字符串“transposition”,输出密文(提示:如字符串长度不是8的倍数,则需在字符串结尾后填充空格,使得其总长度为8的倍数);3) 参照课本表2-1和表2-8的关系,推导逆置换表,并编程实现相应的解密运算。三、程序清单1、 初始并定义程序所用的主要的参数 bool found = false;/标记k是否被求出bool ff = false;/标记密码本是否被求出static int CodeBook26;/替代加密法的明文本static char CodeBookStr26;/替代解密法的密码本int trsp8=7,5,3,1,6,4,2,0;/置换加密所用的数组int rev_trsp8=7,3,6,2,5,1,4,0;/置换解密所用的数组static char c26;/由明文转的密文string cc;/输入的密文int k;string aa;/输入的明文2、 替代加/解密算法1) 计算k void _mod_k()/求出Kint i = 1;while (!found) if ( 9*i % 26 = 15 ) found = true; k = i; i+; cout k = kendl;2) 计算解密密码本 void _find_ma()/求出解密密码本 if (!found) coutendl not find kendl;coutendl 小提示:;cout请先执行上层的步骤1求出kendl;return; ff = true; int i = 1; bool f = false; while (!f) if ( 15*i % 26 = 9 ) f = true; i+; int kd = i-1; /Des: x = y*kd mod 26 coutendl k = k;cout 1/k = kdendlendl; int t; cout 解密密码本为:; char c; for (i=0; i26; i+) t = i*kd % 26; CodeBooki = t; c = i + 97; coutc ; coutendl ; for (i=0; i26; i+) t = i*kd % 26; CodeBooki = t; c = t + 97; coutc ; CodeBookStri = c; coutendl;3) 替代加密算法 void _subst(string aa,int len)/替代加密 int i;for (i=0; i=1 | aa.at(i)=9)coutendl 小提示:;cout此加密法只能对字母进行加密!endl;return; if (!found) coutendl not find kendl;coutendl 小提示:;cout请先执行上层的步骤1求出kendl;return; coutendl 密码为:; for (i=0; ilen; i+) ci = aa.at(i) ; int m = ci - 97; m = m*k % 26; /Encrypt m += 97; ci = m; coutci; coutendl;4) 替代穷举解密算法 void _oneto_one(int len)/穷举法解码 if (!found) coutendl not find kendl;coutendl 小提示:;cout请先执行上层的步骤1求出kendl;return; int i;for (i=0; i=1 | cc.at(i)=9)coutendl 小提示:;cout此解密法只能对字母进行解密!endl;return; coutendl 明文为:; for (i=0; ilen; i+) ci = cc.at(i); int m = ci - 97; bool f = false; int a = 0; while (!f) if( m = a*k % 26 ) f = true; a+; a += 96; /97-1 ci = a; coutci; coutendl;5) 替代密码本解密算法 void _ben(int len)/密码本解密int i;for (i=0; i=1 | cc.at(i)=9)coutendl 小提示:;cout此解密法只能对字母进行解密!endl;return;if (!found) coutendl not find kendl;coutendl 小提示:;cout请先执行上层的步骤1求出kendl;return; if (!ff)coutendl not find 密码本endl;coutendl 小提示:;cout请先执行上层的步骤2求出密码本endl;return;coutendl 明文为:; for (i=0; ilen; i+) int idx = cc.at(i) - 97; coutCodeBookStridx; coutendl;3、 置换加/解密算法1) 置换加密算法 void _trans_a(string aa,int len)/置换加密 int l = 8 - len%8; string s = aa; while (l) s += ; l-; l = s.length()/8;coutendl 密码为:; string s1, s2; int j,k,n; for(j=0; jl; j+) s1 = s.substr(j*8,8); s2 = ; for(k=0; k8; k+) n = trspk; s2 += s1.substr(n,1); couts2; 2) 置换解密算法 void _trans_j(int len)/置换解密 if (len%8) coutendl 小提示:;cout请输入长度为8的倍数的字符串解密endl; return; coutendl 明文为:; string s = cc; string s1, s2; int j,k,n,l=len/8; for(j=0; jl; j+) s1 = s.substr(j*8,8); s2 = ; for(k=0; k8; k+) n = rev_trspk; s2 += s1.substr(n,1); cout server setting - service config - iptablesl 熟悉使用netstat命令分析当前的网络连接状态2、 配置Linux的系统防火墙1) A: start - system setting - security level - enable ftp(only),允许系统建立ftp连接2) B: ftp测试之 (使用user psw ls lcd get等命令)3) A: start - system setting - security level - disable ftp,禁止系统建立ftp连接4) B测试之3、 使用iptables命令配置防火墙,熟悉几类基本过滤原则的配置方法(有关ftp的操作,必须确认系统允许建立ftp连接,因其优先级高于iptables的过滤)0 备份 /etc/sysconfig/iptables1 阻塞某IP的连接A: 阻塞# iptables -A INPUT -s 2 -j DROPB: ping,测试之A: 取消阻塞# iptables -D INPUT -s 2 -j DROPB: ping,测试之(以下只列出实验过程的关键步骤,其他命令与测试请在实验过程中补足)2阻塞某网段的连接A: # iptables -A INPUT -s /24 -j DROPA: # iptables -D INPUT -s /24 -j DROP3阻塞某协议的连接,如icmpA:# iptables -A INPUT -p icmp -j DROPB: ping,测试之A:# iptables -D INPUT -p icmp -j DROP4 阻塞某端口的连接,如ftpcmd使用的21端口A:# iptables -A INPUT -p tcp -dport 21 -j DROPB: ftp,测试之A:# iptables -D INPUT -p tcp -dport 21 -j DROP5阻塞连接请求(选做,须较熟悉ftp模式;因系统已允许ftp的命令连接,iptables只能控制数据连接,即非21端口的建立)5.1 阻塞本机到外部的连接A:# iptables -A OUTPUT -p tcp -syn -j DROPB: ftp,使用port模式get文件(port模式:服务器发起数据连接)A:# iptables -D OUTPUT -p tcp -syn -j DROP5.2阻塞本机到外部的连接-2A:# iptables -A OUTPUT -p tcp -syn -j DROPA: 尝试使用其他方法主动连接B的服务A:# iptables -D OUTPUT -p tcp -syn -j DROP5.3 阻塞外部主机到本机的连接A:# iptables -A INPUT -p tcp -syn -j DROPB: ftp,使用pasv模式get文件(pasv模式:客户端发起数据连接)A:# iptables -D INPUT -p tcp -syn -j DROP 6选择以上若干实验步骤,使用iptables动作REJECT代替DROP,比较它们的区别,思考使用DROP的优点。7(选学)从iptables参考手册 选学-m state、-m l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论