资源简介
现代密码学里的仿射密码,此程序的逆元求法用的是手工算法的原理,不是用的穷举法!!!!!
代码片段和文件信息
#include
using namespace std;
//#define m 26
//求逆元
int niyuan(int mint a)
{
int n=0t=1qpbc;
c=m;
while(a!=1)
{
q=m/a;
p=a;
a=m-q*a;
m=p;
b=t;
t=n-q*t;
n=b;
// cout<<“1“< }
while(t<0)
{
t=t+c;
}
return t;
}
//加密
int jiami(int k1int k2int mint g)
{
int f=k1*g+k2;
int h=f/m;
f=f-m*h;
return f;
}
//解密
int jiemi(int k1int k2int mint n)
{
int f=niyuan(mk1)*(n-k2);
int h=f/m;
f=f-m*h;
return f;
}
void display()
{
cout<<“输入你要执行的功能:“< cout<<“1 加密功能“< cout<<“2 解密功能“< cout<<“输入对应的编号执行相应的功能“< }
//主函数
void main()
{
int k1k2m;
cout<<“输入模m:“;
cin>>m;
cout<<“输入密钥k1(质数)和k2:“;
cin>>k1>>k2;
char a[100]b[100];
display();
while(1)
{
- 上一篇:矩阵QR分解的C语言
- 下一篇:c++简单线程池的实现
评论
共有 条评论