(1)公钥
选择两个互异大质数p,q,使 n=pq
, phi(n)=(p-1)(q-1)
,phi(n)是欧拉函数,选择一个正整数额,使其满足与phi互质,将 Kp={e,n}
称作公钥。
(2)私钥
求出正数d使其满足 ed=1 mod phi
,将 Kp={d,n}
称作私钥。
(3)加密变换
明文M已知,密文C,C=M^e mod n
(4)解密变换
密文C已知,明文M,M=C^d mod n
#include <stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
for(i=2;i*i<=n;i++)
if(n%i==0)break;
printf("%s\n",n%i==0?"No":"Yes");
return 0;
}
int gcd(int x,int y)
{
int t;
while (y) t=x, x=y, y=t%y;
return x; // 最小公因数
}
好像main.cpp汉字会乱码,源代码存到main.txt里了