欢迎来到天天文库
浏览记录
ID:57313252
大小:41.50 KB
页数:9页
时间:2020-08-11
《东北大学信息安全作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、作业(一)(1).编程实现双轨加密#include#include开始usingnamespacestd;charch1[30];charch2[30];从键盘读入明文ch1inti;stringshuanggui(char*ch){去除空格ch2intj=0,k=0;i=0;stringstr1="";偶数位字符stringstr2="";while(ch[j]!=' ')否是{if(ch[j]=='');加到str1中加到str2中else{ch2[i]=ch[j];i++;}j++;}while(
2、k#includeusingnamespacestd;读入明文c1,密钥c2intN;intM;intlen(char*ch)计算明文、密钥的实际长度M、N{//计算
3、密钥长度、明文长度inti=0;while(ch[i]!=' ')i++;生成二维字符数组returni;}//快速排序对密钥数组进行一次快速排序ch2voidQsort(char*ch,intlow,inthigh){if(low>=high){c2[n]=ch2[m]return;}intfirst=low;intlast=high;n=n+1charkey=ch[first];//用字表的第一个记录作为枢轴while(first=key){--last;}m=
4、m+1ch[first]=ch[last];//将比第一个小的移到低端n5、while(ch0[j]!=' ')//除去空格{if(ch0[j]=='');else{ch1[i]=ch0[j];i++;}j++;}ch1[i+1]=' ';i=0;j=0;while(ch1[i]!=' ')//生成二维字符数组{ch3[i/N][i%N]=ch1[i];i++;}for(intl=0;l<=N;l++){ch4[l]=ch2[l];}Qsort(ch2,0,N-1);cout<<"钥控加密后:"<6、=ch2[m]){if(i%N==0)for(intj=0;j='a'&&ch3[j][n]<='z')7、8、(ch3[j][n]>='A'&&ch3[j][n]<='Z'))cout<9、入密钥:";gets(c2);N=len(c2);M=len(c1);yuekong(c1,c2);}作业(二)(1)编程实现求乘法逆元;#includeintExtendedEuclid(intf,intd,int*result){intx1,x2,x3,y1,y2,y3,t1,t2,t3,q;x1=y2=1;x2=y1=0;x3=(f>=d)?f:d;y3=(f>=d)?d:f;while(1){if(y3==0){*result=x3;//两个数不互素则result为两个数的最大公约数,此时返回值为零return0;10、}if(y3==1){*result=y2;//两个数互素则resutl为其乘法逆元,此时返回值为1return1;}q=x3/y3;t1=x1-q*y1;t2=x2-q*y2;
5、while(ch0[j]!=' ')//除去空格{if(ch0[j]=='');else{ch1[i]=ch0[j];i++;}j++;}ch1[i+1]=' ';i=0;j=0;while(ch1[i]!=' ')//生成二维字符数组{ch3[i/N][i%N]=ch1[i];i++;}for(intl=0;l<=N;l++){ch4[l]=ch2[l];}Qsort(ch2,0,N-1);cout<<"钥控加密后:"<6、=ch2[m]){if(i%N==0)for(intj=0;j='a'&&ch3[j][n]<='z')7、8、(ch3[j][n]>='A'&&ch3[j][n]<='Z'))cout<9、入密钥:";gets(c2);N=len(c2);M=len(c1);yuekong(c1,c2);}作业(二)(1)编程实现求乘法逆元;#includeintExtendedEuclid(intf,intd,int*result){intx1,x2,x3,y1,y2,y3,t1,t2,t3,q;x1=y2=1;x2=y1=0;x3=(f>=d)?f:d;y3=(f>=d)?d:f;while(1){if(y3==0){*result=x3;//两个数不互素则result为两个数的最大公约数,此时返回值为零return0;10、}if(y3==1){*result=y2;//两个数互素则resutl为其乘法逆元,此时返回值为1return1;}q=x3/y3;t1=x1-q*y1;t2=x2-q*y2;
6、=ch2[m]){if(i%N==0)for(intj=0;j='a'&&ch3[j][n]<='z')
7、
8、(ch3[j][n]>='A'&&ch3[j][n]<='Z'))cout<9、入密钥:";gets(c2);N=len(c2);M=len(c1);yuekong(c1,c2);}作业(二)(1)编程实现求乘法逆元;#includeintExtendedEuclid(intf,intd,int*result){intx1,x2,x3,y1,y2,y3,t1,t2,t3,q;x1=y2=1;x2=y1=0;x3=(f>=d)?f:d;y3=(f>=d)?d:f;while(1){if(y3==0){*result=x3;//两个数不互素则result为两个数的最大公约数,此时返回值为零return0;10、}if(y3==1){*result=y2;//两个数互素则resutl为其乘法逆元,此时返回值为1return1;}q=x3/y3;t1=x1-q*y1;t2=x2-q*y2;
9、入密钥:";gets(c2);N=len(c2);M=len(c1);yuekong(c1,c2);}作业(二)(1)编程实现求乘法逆元;#includeintExtendedEuclid(intf,intd,int*result){intx1,x2,x3,y1,y2,y3,t1,t2,t3,q;x1=y2=1;x2=y1=0;x3=(f>=d)?f:d;y3=(f>=d)?d:f;while(1){if(y3==0){*result=x3;//两个数不互素则result为两个数的最大公约数,此时返回值为零return0;
10、}if(y3==1){*result=y2;//两个数互素则resutl为其乘法逆元,此时返回值为1return1;}q=x3/y3;t1=x1-q*y1;t2=x2-q*y2;
此文档下载收益归作者所有