网络安全课程设计Word文件下载.docx

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

网络安全课程设计Word文件下载.docx

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

网络安全课程设计Word文件下载.docx

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="

k<

endl;

}

2)计算解密密码本

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

if(!

{

cout<

endl<

notfindk"

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

k;

1/k="

kd<

intt;

解密密码本为:

charc;

for(i=0;

i<

26;

i++)

t=i*kd%26;

CodeBook[i]=t;

c=i+97;

c<

"

c=t+97;

CodeBookStr[i]=c;

3)替代加密算法

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

inti;

len;

if(aa.at(i)>

='

1'

||aa.at(i)<

9'

{

cout<

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

return;

}

if(!

密码为:

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

intm=c[i]-97;

m=m*k%26;

//Encrypt

m+=97;

c[i]=m;

c[i];

4)替代穷举解密算法

void_oneto_one(intlen)//穷举法解码

inti;

if(cc.at(i)>

||cc.at(i)<

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

明文为:

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

inta=0;

if(m==a*k%26)

f=true;

a++;

a+=96;

//97-1

c[i]=a;

5)替代密码本解密算法

void_ben(intlen)//密码本解密

ff)

notfind密码本"

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

intidx=cc.at(i)-97;

CodeBookStr[idx];

3、置换加/解密算法

1)置换加密算法

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

intl=8-len%8;

strings=aa;

while(l)

s+="

l--;

l=s.length()/8;

strings1,s2;

intj,k,n;

for(j=0;

j<

l;

j++)

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

s2="

for(k=0;

k<

8;

k++)

n=trsp[k];

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

s2;

2)置换解密算法

void_trans_j(intlen)//置换解密

if(len%8)

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

return;

strings=cc;

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

n=rev_trsp[k];

4、程序处理流程

四、运行结果

1、计算k

2、计算替代解密密码本

3、加密

4、解密

基于iptables的Linux防火墙

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

2、掌握防火墙的概念、功能分类

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

当前位置:首页 > 工程科技 > 能源化工

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

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