一,问题描述
仿射密码系统用五元组(P,C,K,E,D)表示,设P=C={计算机学院网络工程信息安全,我们热爱中华人民共和国。大家}.现在截获了一段密文“和院程安我爱计”。请编程分析出明文。
二,实现流程
1,申请三个字符数组Z,C,M
Z={计算机学院网络工程信息安全,我们热爱中华人民共和国。大家};
C={和院程安我爱计};
M,用于保存程序分析得出的明文。
2,密文是通过ek(m)=am+b mod 28得到的,为了解密我们使用dk(c)=a-1(c-b)mod 28。
3,这里有一个函数需要先实现:
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;
}
4,编写程序的主要部分,它是一个多重循环。
import java.util.Arrays;
/**
* @author 86130
*/
public class Demo1 {