• 99.56 KB
  • 2022-08-13 发布

基于计算机信息安全学的几种算法实验

  • 14页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
基于计算机信息安全学的几种算法实验一、天书加密的应用要求:自己准备一圆形棒(比如笔简),直径自定,在其上缠绕一张长条形白色纸条,按天书加密的算法思路,将下面的英文字母依次写上去,然后打开纸条,按纸条从上到下依次写出密文。actuallyyouareisbutadogasadog,blackeyeswhitecolourandthebeijingandlineagestoyouwillhaveagooddog.程序设计如下:#include<iostream>usingnamespacestd;#defineM1000#defineN100intmain(){chara[M],b[N][5];intij,kJ,m,n,t,f=O;cout<<"请输入要加密的明文,以#符号为结束标志:"<<endl;for(i=0;i<M;i++){}m=i/5;for(t=0;t<m;t++)cin>>a[i];if(a[i]=='#')break;}{}cout<<"经过天书加密后的密为:"<<endl;for(k=0;k<5;k++)for(l=0;l<m;l++)cout<<b[l][k];cout<<endl;return0;\nfor(n=0;n<5&&f<i;n++){b[t][n]=a[f];f++;}二、单表代换密码的应用设a—z的编号是1-26,采用Kaesar密码方案,明文P=“Pekinguniversity”,计算出密文C。方法一:程序设计如下:#include<iostream>usingnamespacestd;#defineM100//定义最大值intmain(){chara[27]=,,abcdefghijklmnopqrstuvwxyz'\b[M];inti丄k;cout<<"请输入要加密的明文:"<<endl;for(i=0;i<M;i++){cin>>b[i];if(b[i]=='#')break;//以#为输入的终止条件elsecontinue;}cout<<endl;cout<<"经过kaesar力口密后到密文为:"<<endl;\nfor(k=0;k<i;k++){for(j=0;j<26;j++)if(b[k]=='#')break;elseif(b[k]==a[j]){cout<<char(a[(j+3)]-32);//这里的char不能省略,否则输出错误}}}cout<<endl;return0;}方法二:程序设计如下:#include<iostream>usingnamespacestd;intmain(){charc;while((c=getchar())!='\0'){if((c>='a'&&c<='z')11(c>='A\n9;&&c<='Z')){c=c+3;if((c>'Z'&&c<'Z'+3)11c>'z')c=c-26;}cout<<c;}cout<<endl;return0;}三、多字母代换密码的应用HHI加密算法实验,设a-z的编号为0-25,明文P=”Hill”。密码k=(l2)(34法求出密文C。),用Hill加密算程序设计如下:#include<iostream>usingnamespacestd;#defineM100//定义最大值intmain(){intkey[2][2],i,j,k;charword[M];intwordl[M];\ncharword2[M];intnum;chars[26]={'A'/'B'/'C','D','E'/'F'?'G'/'H'/'I','J','K','L'/'M'/'N','O','P'/'Q'/'R','S'/'T','U','V'Z'W','X','丫','Z'};cout<</•输入需要加密的明文(偶数位):"<<endl;cin>>word;num=strlen(word);//确定输入字母的总长度while(num%2!=0){}cout<<n输入冇误,请重新输入需要加密的明文:"<<endl;cin>>word;num=strlen(word);cout<<"请输入需要加密的密钥矩阵(0-25):"<<endl;cin>>key[0][0];cin>>key[0][l];cin>>key[l][0];cin>>key[l][l];//输入一个两行两列的密钥距阵while(key[2][2]>25){cout<<n输入有误,请输入需耍加密的密钥矩阵:n<<endl;\ncin>>key[2][2];cin>>key[0][0];cin>>key[0][l];}cin>>key[l][0];cin>>key[l][l];for(i=0;i<num;i++){for(j=0;j<26;j++)if((word[i]==s[j])||(word[i]==(s[j]+32)))"将输入的值的下标与s数组中的字母或对应的小写字母的下标比较}for(i=0;i<num;i=i+2)//i=i+2可写成(l+i)+j++{}for(j=0;j<num;j++){}cout<<"经过Hill力口密后的值为:"<<endl;for(i=0;i<num;i++)cout<<word2[i];for(k=0;k<26;k++)if(word2[j]==k)word2[j]=s[k];word2[i]=(key[0][0]*wordl[i]+key[0][l]*wordl[i+l])%26;//矩阵算法word2[i+l]=(key[l][0]*wordl[i]+key[l][l]*wordl[i+l])%26;//同上}wordl[i]=j;//将输入的字母所对应的下标赋给wordl数组cout<<endl;return0;四、用RSA算法进行数字签名设用户A和用户B的代号分別为2和3,并设用户A:P=3,q=7.用户B:P=7,q=ll.计算出A,B双方的公开密匙和私密密钥。发送方A:用户其自身的用户代号“2”作为身份向B发送一数字签名消息,再用B得公开密匙进行加密。接收方B,对该数字签名进行解密和身份验证。程序设计如下:#include<iostream>usingnamespacestd;\nintmain(){intmod(intx,intyJntz);intf(intx,inty);intpl=3,ql=7,p2=7,q2=ll,dl,d2,m,ml,m2,n,nl,n2,el,e2,M=2,C;m=f(pl,ql);ml=f(p2/q2);cout<<"输入一个随机整数el,它小于f(pl,ql)且与f(pl,ql)互为素氣则el=";cin>>el;cout<<"输入一个随机整数e2,它小于f(p2,q2)且与f(p2,q2)互为素数,则e2=";cin>>e2;nl=pl*ql;n2=p2*q2;for(dl=l;dl<m;dl++){if(el*dl%m==l){n=dl;}}for(d2=l;d2<ml;d2++)}}cout<<"A的公开密钥("<<el<<","<<nl<<"},私有密钥("<<pl<<","<<ql<<"/<<n<<")"<<endl;\ncout<<"B的公开密钥("<<e2<<","<<n2<<"},私有密钥(•'<<p2<<","<<q2<<","<<m2<<T<<endl;C0Ut<<”发送方A:用其自身的用户代号“2”作为明文向B发出一数字签名,再用B的公开密钥进{if(e2*d2%ml==l){m2=d2;行加密:"<<endl;}f(intx,inty){}mod(intxjntyJntz){intmj;m=l;for(i=l;i<=x;i++){intm;m=(x-l)*(y-l);returnm;C=mod(e2,M,n2);cout<<"输出密文C="<<C<<endl;cout<<"接收方B:对该数字签名进行解密和身份验证。"<<endl;M=mod(m2,C,n2);cout<<"得到明文:,,<<M<<endl;return0;}}m=y*m;if(m>z)m=m%z;if(m%z==0)m=l;returnm;\n五、ELGamal密码算法的应用:设P=7,a=2,a=3.计算出M勺值假设A要发送X=8给B,选择一个随机数r=5.计算出密文yl,y2.B收到密文yl,y2后,解密计算出明文X。程序设计如下:#include<iostream>usingnamespacestd;voidmain(){inta,b,f,yl=l,y2=lj,x,i,p;unsignedlongj,k,g;cout<<"输入一个大素数:p=";cin>>p;cout<<"请输入本元范围在0彡a彡p-2的值:a—/}}cin>>a;cout<<"请输入随机整数范围在(Xa彡p-2的值:a=";cin>>b;cout<<"加密:"<<endl;cout<<"请输入明文:x=";cin>>x;cout<<"通过计算得P的值为:P=";f=x%p;cout<<f<<endl;cout<<"请输入随机数:r=";cin>>r;for(i=0;i<(a*r);i++){y2=b*y2;y2=y2%p;}for(i=0;i<r;i++){yl=yl*b;yl=yl%p;y2=((x%p)*(y2%p))%p;cout<<"经过加密计算后得:"<<endl<<"密文\nyl="<<yl<<endl<<"密文y2="<<y2<<endl<<endl;六、RSA算法的计算技巧:计算:手工计算12mod25的值。要求写出计算步骤:程序设计如下:#include<iostream>usingnamespacestd;intmain()\nlongt=l;cout<<"请输入底数m:,指数n:,模数d:"<<endl;cin>>m>>n>>d;for(i=0;i<n;i++)//幂循环//每进行一次循环就接着进行模运算cout<<t<<endl;return0;}38七、防火墙:1、防火墙的定义:防火墙一般是指在两个网络之间执行访问控制策略的一个或者一组系统,它用来控制两个不同安全策略的网络之间的互访,从而防止不同安全域之间的相互危害。2、防火墙的功能:(1)防火墙对内部网实现丫集中的安全管理,可以强化网络安全策略,比分散的主机管理更为经济。(2)防火墙能防止非授权用户进入内部网络。(3)防火墙可以更方便的监视网络的安全并及时报警。(4)使用防火墙,可以网络地址的转换,即NAT,利用NAT技术,可以缓解地址资源的短缺,隐藏内部网的结构。\n(1)利用防火墙对内部网络的划分,可以实现重点网段的分离,从而限制安全问题的扩散。(2)所有的访问都经过防火墙,因此它是市计和记录网络的访问和使用的理想位置。3、防火墙配置的基本规则:(1)一切未被允许的就是禁止的:在该规则下,防火墙封锁所有的信息流,只允许符合开放规则的信息进出。这种方法可以形成一种比较安全的网络环境,但这是以牺牲用户使用的方便性为代价的。(2)—切未被禁止的就是允许的:在该规则下,防火墙只禁止符合屏蔽规则的信息进行出,而转发所有其他信息流。这种方法提供了一种更为灵活的应用环境,但很难提供可靠的安全防护。4、防火墙的配置具体步骤如下:1.将防火墙的Console端口用一条防火墙自带的申行电缆连接到笔记本电脑的一个空余串口上,参见图1。2.打开PIX防火电源,让系统加电初始化,然后开启与防火墙连接的主机。3.运行笔记本电脑Windows系统中的超级终端(HyperTerminal)程序(通常在1拊件"程序组中)。对超级终端的配置与交换机或路由器的配置一样,参见本教程前面有关介绍。4.当FIX防火墙进入系统后即显示"pixfirewall>11的提示符,这就证明防火墙己启动成功,所进\n入的是防火墙用户模式。可以进行进一步的配置了。1.输入命令:enable,进入特权用户模式,此时系统提示为:pixfirewall#。2.输入命令:configureterminal,进入全局配置模式,对系统进行初始化设置。360木马防火墙正在运行时的界㈤八、木马克星:木马克星是专门针对国产木马的软件,该软件是动态监视网络与静态特征字扫描的完美结合,可以查杀3759种国际木马。本软件与lockdown和TheClean相比较:它们调用系统int21中断,只要它运行在内存中,就要不停的令cpu执行它的指令,无论任何情况下,均占用一个cpu进程,木马克星采用监视硬盘技术,不占用cpu负荷,lockdown和TheClean误报不断,任何写启动程序运行后,它仍然会提示木马,相反对国产的文件关联木马查杀率为0本软件操作更智能,占用系统资源更少,查杀木马更多!可以在线升级木马库,每天升级!木马克星对于木马病毒有较强的査杀效果,但是实时防护能力比较一般,因此,不适宜用作主杀工具,只可用作辅杀工具,建议用户在安装一款强大的专业反病毒软件的基础上安装和使用木马克星,偶尔调出来扫扫木马,防止有被主杀工具遗漏的漏网之鱼危害系统数据安全。木马克星正在进行扫描病毒査看病毒円志木马克星运行时的界面\n九、网路端门扫描:软件名称:ScanPortV1.2,一个小巧的网络端口扫描工具,绿色软件。软件功能1.精简并优化了部分关键代码,提高运行效率2.增加线程数设置,大大提高了扫描速度:输入正在使用的IP地址即可扫描。ScanPort端口扫描工具

相关文档