网络安全课程设计.docx

上传人:b****5 文档编号:11543870 上传时间:2023-03-19 格式:DOCX 页数:16 大小:228.35KB
下载 相关 举报
网络安全课程设计.docx_第1页
第1页 / 共16页
网络安全课程设计.docx_第2页
第2页 / 共16页
网络安全课程设计.docx_第3页
第3页 / 共16页
网络安全课程设计.docx_第4页
第4页 / 共16页
网络安全课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

网络安全课程设计.docx

《网络安全课程设计.docx》由会员分享,可在线阅读,更多相关《网络安全课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

网络安全课程设计.docx

网络安全课程设计

 

网络安全课程设计

 

实验名称:

网络安全管理设计

 

班级:

网络****

学号:

***

姓名:

****

指导老师:

****

 

2012年9月26日

 

《网络安全》实验指导书

对称加密算法

一、实验目的

1、熟悉和掌握对称加密算法的原理及其一般过程;

2、掌握对称加密算法的基本方法:

替代(substitute)与置换(transposition);

3、掌握使用一定的编码开发工具(对具体的开发平台和工具不作要求)。

二、实验内容

1、替代加密法

1)编程实现课本习题2.1的线形替代加密方法的破解(提示:

可使用穷举法);

(已知替代变换函数f(a)=akmod26,且9kmod26=15,试计算k)

2)破解后,实现该方法的加密运算(输入明文,输出密文)和解密运算(输入密文,输出明文)(解密运算提示:

设密钥为k,密文为c,明文为m,则有m*kmod26=c,因为m<26且唯一,同样可使用穷举法搜索出m);

3)加密字符串“substitute”,输出密文;

4)(可选)推导解密密码本,即明文与密文字母的一一对应关系。

2、置换加密法

1)给定置换表“86427531”,编程实现基于该表的加密运算;

2)加密字符串“transposition”,输出密文(提示:

如字符串长度不是8的倍数,则需在字符串结尾后填充空格,使得其总长度为8的倍数);

3)参照课本表2-1和表2-8的关系,推导逆置换表,并编程实现相应的解密运算。

三、程序清单

1、初始并定义程序所用的主要的参数

boolfound=false;//标记k是否被求出

boolff=false;//标记密码本是否被求出

staticintCodeBook[26];//替代加密法的明文本

staticcharCodeBookStr[26];//替代解密法的密码本

inttrsp[8]={7,5,3,1,6,4,2,0};//置换加密所用的数组

intrev_trsp[8]={7,3,6,2,5,1,4,0};//置换解密所用的数组

staticcharc[26];//由明文转的密文

stringcc;//输入的密文

intk;

stringaa;//输入的明文

2、替代加/解密算法

1)计算k

void_mod_k()//求出K

{

inti=1;

while(!

found)

{

if(9*i%26==15)

{

found=true;

k=i;

}

i++;

}

cout<<"k="<

}

2)计算解密密码本

void_find_ma()//求出解密密码本

{

if(!

found)

{

cout<

cout<

";

cout<<"请先执行上层的步骤1求出k"<

return;

}

ff=true;

inti=1;

boolf=false;

while(!

f)

{

if(15*i%26==9)

f=true;

i++;

}

intkd=i-1;//Des:

x=y*kdmod26

cout<

cout<<"1/k="<

intt;

cout<<"解密密码本为:

";

charc;

for(i=0;i<26;i++)

{

t=i*kd%26;

CodeBook[i]=t;

c=i+97;

cout<

}

cout<

for(i=0;i<26;i++)

{

t=i*kd%26;

CodeBook[i]=t;

c=t+97;

cout<

CodeBookStr[i]=c;

}

cout<

}

3)替代加密算法

void_subst(stringaa,intlen)//替代加密

{

inti;

for(i=0;i

{

if(aa.at(i)>='1'||aa.at(i)<='9')

{

cout<

";

cout<<"此加密法只能对字母进行加密!

"<

return;

}

}

if(!

found)

{

cout<

cout<

";

cout<<"请先执行上层的步骤1求出k"<

return;

}

cout<

";

for(i=0;i

{

c[i]=aa.at(i);

intm=c[i]-97;

m=m*k%26;//Encrypt

m+=97;

c[i]=m;

cout<

}

cout<

}

4)替代穷举解密算法

void_oneto_one(intlen)//穷举法解码

{

if(!

found)

{

cout<

cout<

";

cout<<"请先执行上层的步骤1求出k"<

return;

}

inti;

for(i=0;i

{

if(cc.at(i)>='1'||cc.at(i)<='9')

{

cout<

";

cout<<"此解密法只能对字母进行解密!

"<

return;

}

}

cout<

";

for(i=0;i

{

c[i]=cc.at(i);

intm=c[i]-97;

boolf=false;

inta=0;

while(!

f)

{

if(m==a*k%26)

f=true;

a++;

}

a+=96;//97-1

c[i]=a;

cout<

}

cout<

}

5)替代密码本解密算法

void_ben(intlen)//密码本解密

{

inti;

for(i=0;i

{

if(cc.at(i)>='1'||cc.at(i)<='9')

{

cout<

";

cout<<"此解密法只能对字母进行解密!

"<

return;

}

}

if(!

found)

{

cout<

cout<

";

cout<<"请先执行上层的步骤1求出k"<

return;

}

if(!

ff)

{

cout<

cout<

";

cout<<"请先执行上层的步骤2求出密码本"<

return;

}

cout<

";

for(i=0;i

{

intidx=cc.at(i)-97;

cout<

}

cout<

}

3、置换加/解密算法

1)置换加密算法

void_trans_a(stringaa,intlen)//置换加密

{

intl=8-len%8;

strings=aa;

while(l)

{

s+="";l--;

}

l=s.length()/8;

cout<

";

strings1,s2;

intj,k,n;

for(j=0;j

{

s1=s.substr(j*8,8);

s2="";

for(k=0;k<8;k++)

{

n=trsp[k];

s2+=s1.substr(n,1);

}

cout<

}

}

2)置换解密算法

void_trans_j(intlen)//置换解密

{

if(len%8)

{

cout<

";

cout<<"请输入长度为8的倍数的字符串解密"<

return;

}

cout<

";

strings=cc;

strings1,s2;

intj,k,n,l=len/8;

for(j=0;j

{

s1=s.substr(j*8,8);

s2="";

for(k=0;k<8;k++)

{

n=rev_trsp[k];

s2+=s1.substr(n,1);

}

cout<

}

}

4、程序处理流程

四、运行结果

1、计算k

2、计算替代解密密码本

3、加密

4、解密

《网络安全》实验指导书

基于iptables的Linux防火墙

一、实验目的

1、熟悉和掌握TCP/IP协议的基础概念和方法;

2、掌握防火墙的概念、功能分类及实现方法;

3、掌握Linux系统防火墙和基于iptables的防火墙的配置方法。

二、实验内容

1、准备工作

●同一局域网内的2台PC

a)A的操作系统为Linux,在A安装网络服务及配置iptables;

b)B对A的配置进行验证,主要使用基于icmp协议的ping命令和基于tcp协议的ftp相关命令或软件,假定其ip为10.10.96.123。

●在A:

1)安装vsftpd

2)增加1个一般用户,如abc

3)添加新增用户为ftp用户

gedit/etc/vsftpd/vsftpd.conf,加入

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/ulis

gedit/etc/vsftpd/ulis,加入

abc

4)验证系统已打开iptables(默认)

systemsetting->serversetting->serviceconfig->iptables

●熟悉使用netstat命令分析当前的网络连接状态

2、配置Linux的系统防火墙

1)A:

start->systemsetting->securitylevel->enableftp(only),允许系统建立ftp连接

2)B:

ftp测试之(使用userpswlslcdget等命令)

3)A:

start->systemsetting->securitylevel->disableftp,禁止系统建立ftp连接

4)B测试之

3、使用iptables命令配置防火墙,熟悉几类基本过滤原则的配置方法(有关ftp的操作,必须确认系统允许建立ftp连接,因其优先级高于iptables的过滤)

0>备份/etc/sysconfig/iptables

1>阻塞某IP的连接

A:

阻塞

#iptables-AINPUT-s192.168.3.42-jDROP

B:

ping,测试之

A:

取消阻塞

#iptables-DINPUT-s192.168.3.42-jDROP

B:

ping,测试之

(以下只列出实验过程的关键步骤,其他命令与测试请在实验过程中补足)

2>阻塞某网段的连接

A:

#iptables-AINPUT-s192.168.3.1/24-jDROP

A:

#iptables-DINPUT-s192.168.3.1/24-jDROP

3>阻塞某协议的连接,如icmp

A:

#iptables-AINPUT-picmp-jDROP

B:

ping,测试之

A:

#iptables-DINPUT-picmp-jDROP

4>阻塞某端口的连接,如ftpcmd使用的21端口

A:

#iptables-AINPUT-ptcp--dport21-jDROP

B:

ftp,测试之

A:

#iptables-DINPUT-ptcp--dport21-jDROP

5>阻塞连接请求(选做,须较熟悉ftp模式;因系统已允许ftp的命令连接,iptables只能控制数据连接,即非21端口的建立)

5.1阻塞本机到外部的连接

A:

#iptables-AOUTPUT-ptcp--syn-jDROP

B:

ftp,使用port模式get文件(port模式:

服务器发起数据连接)

A:

#iptables-DOUTPUT-ptcp--syn-jDROP

5.2阻塞本机到外部的连接-2

A:

#iptables-AOUTPUT-ptcp--syn-jDROP

A:

尝试使用其他方法主动连接B的服务

A:

#iptables-DOUTPUT-ptcp--syn-jDROP

5.3阻塞外部主机到本机的连接

A:

#iptables-AINPUT-ptcp--syn-jDROP

B:

ftp,使用pasv模式get文件(pasv模式:

客户端发起数据连接)

A:

#iptables-DINPUT-ptcp--syn-jDROP

6>选择以上若干实验步骤,使用iptables动作REJECT代替DROP,比较它们的区别,思考使用DROP的优点。

7>(选学)从‘iptables参考手册’选学-mstate、-mlimit、-mmac、-mowner等配置选项。

8>结束iptables命令实验,恢复/etc/sysconfig/iptables

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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