IDEA编码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IDEA编码

IDEA编码 #include stdio.h #include math.h #define modl 65536; #define mod2 65537; int chenni(int e) //求乘法逆元算法 { int x1,x2,x3,y1,y2,y3,t1,t2,t3,temp; x1=1; x2=0; x3=65537; y1=0; y2=1; y3=e; while(1) { if(y3==1) { if(y2=0) return y2; else return 65537+y2; break; } temp=x3/y3; t1=x1-temp*y1; t2=x2-temp*y2; t3=x3-temp*y3; x1-y1;x2=y2;x3=y3; y1=t1;y2=t2;y3=t3; } } int jiani(int e)//求加法逆元 { return 65536-e; } void main() { unsigned int i=1,x1=0,x2=0,x3=0,x4=0; unsigned int m[65],KK[129],K[129],X1[17],X2[17],X3[17],X4[17],z[53],y[53]; unsigned int Z[53][17]; for(i=1;i=52;i++) z[i]=0; FILE *f,*ff; f=fopen(mingwen.txt,r); i=1; while(i=64)//从mingwen.txt中读取明文 fscanf(f,%d,m[i++]); fclose(f); for(i=1;i=16;i++) X1[i]=m[i]; for(i=17;i=32;i++) X2[i-16]=m[i]; for(i=33;i=48;i++) X3[i-32]=m[i]; for(i=49;i=64;i++) X4[i-48]=m[i]; ff=fopen(jiamiyao.txt,r); i=1; while(i=128)//从jiamiyao.txt中读取加密密钥 fscanf(ff,%d,KK[i++]); fclose(ff); for(i=1;i=16;i++) Z[1][i]=KK[i]; for(i=17;i=32;i++) Z[2][i-16]=KK[i]; for(i=33;i=48;i++) Z[3][i-32]=KK[i]; for(i=49;i=64;i++) Z[4][i-48]=KK[i]; for(i=65;i=80;i++) Z[5][i-64]=KK[i]; for(i=81;i=96;i++) Z[6][i-80]=KK[i]; for(i=97;i=112;i++) Z[7][i-96]=KK[i]; for(i=113;i=128;i++) Z[8][i-112]=KK[i]; int i=8,u=0; while(t52)//以下代码产生所有的子密钥 { for(i=1;i=128;i++) K[i]=KK[(i+25)%128]; K[103]=KK[128]; u++; for(i=1;i=16;i++) Z[1+u*8][i]=K[i];t++; for(i=17;i=32;i++) Z[2+u*8][i-16]=K[i];t++; for(i=33;i=48;i++) Z[3+u*8][i-32]=K[i];t++; for(i=49;i=64;i++) Z[4+u*8][i-48]=K[i];t++; if(t52) { for(i=65;i80;i++) Z[5+u*8][i-64]=K[i];t++; for(i=81;i96;i++) Z[6+u*8][i-64]=K[i];t++; for(i=97;i112;i++) Z[7+u*8][i-64]=K[i];t++; for(i=113;i128;i++) Z[8+u*8][i-64]=K[i];t++; } for(i=1;i=128;i++) KK[i]=K[i]; }//所有子密钥产生完毕 for(i=1;i=16;i++)//将初始的4子段明文分别转化为十进制数 { x1=x1+X1[i]*pow(2,16-i); x2=x2+X2[i]*pow(2,16-i); x3=x3+X3[i]*pow(2,16-i); x4=x4+X4[i]*pow(2,16-i); } for(int lunci=1;lunci=8;lunci++) //以下代码实现8轮迭代循环 { int j; for(j=1;j=16;j++) //以下为产生子密钥对应的十进制数 { z[1+(lunci-1)*6]=z[1+(

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档