資源簡介
現代密碼學里的仿射密碼,此程序的逆元求法用的是手工算法的原理,不是用的窮舉法!!!!!
代碼片段和文件信息
#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++簡單線程池的實現
評論
共有 條評論