首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

仿射密码的算法实现,该如何解决

2012-02-10 
仿射密码的算法实现1.问题描述仿射密码系统用五元组(P,C,K,E,D)表示,设PC{计算机学院网络工程信息安全,

仿射密码的算法实现
1.问题描述
仿射密码系统用五元组(P,C,K,E,D)表示,设P=C={计算机学院网络工程信息安全,我们热爱中华人民共和国。大家…}.现在截获了一段密文“和院程安我爱计”。请编程分析出明文。
2.基本要求
程序要求界面友好,自动分析程度高,能输出加密所用的密钥和明文。
3.实现提示
①申请三个字符数组Z,C,M。
Z={计算机学院网络工程信息安全,我们热爱中华人民共和国。大家},
C=“和院程安我爱计”,
M保存分析所得的明文。
②密文是通过ek(m)=am+b mod 28得到的,为了解密我们使用dk(c)=a-1(c-b)mod 28。这里有一个函数要先实现:
int gcd(int n,int m)
{
int r,temp;
if(n<m)
  {temp=n;
  n=m;
  m=temp;
}
while(m!=0)
  {r=n%m;
  n=m;
  m=r;
  }
return n;
}
③有了以上的准备工作,我们就可以编写程序的主要部分了,它是一个多
重循环:
for(a=2;a<28;a++)
  if (gcd(a,28)==1)  
{/*求a的乘法逆元p */
for(b=2;b<28;b++)
  if ((a*b)%28==1){p=b;break;};
/* 用dk(c)=p(c-b) mod 28 */
for(b=0;b<28;b++)
  {对数组C进行处理,输出k=(a,b)和M,M有意义程序结束,分析完成。}
};
  else continue;


哪位高手可以尝试一下?

[解决办法]
四种加密解密算法的源代码:移位密码、仿射密码、维吉尼亚密码以及置换密码 

http://zhidao.baidu.com/question/3586801.html

热点排行