选取质数p=37,q=29
n=p*q=1073
使用以下程序找出所有符合要求的e和d
#include<iostream>
#include<string>
#include<cmath>
#include<cstdio>
using namespace std;
bool isprime(int x)
{
double l=sqrt((double)x);
for(int i=2;i<=l;i++)
{
if(x%i==0) return false;
}
return true;
}
int main()
{
int f;
cin>>f;
for(int e=2;e<f;e++)
{
if(!isprime(e)) continue;
for(int d=0;d<=f;d++) if(d*e%f==1) cout<<e<<' '<<d<<endl;
}
return 0;
}
选择e=11
由ed mod φ(n)=1解出d=275
由此得公钥n=1073、e=11,私钥n=1073、d=275。p=37,q=29, φ(n)=1008,d=275是陷门。
明文32,加密得32^11 mod 1073 =479;解密得479^275 mod 1073 =32