永发信息网

RSA算法中 r 无法满足e*r%t ==1的问题

答案:1  悬赏:0  手机版
解决时间 2021-04-01 23:31
  • 提问者网友:锁深秋
  • 2021-04-01 12:50
RSA算法中 r 无法满足e*r%t ==1的问题
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-04-01 14:26
#include
#include
#include
unsigned __int64 GCD(unsigned __int64 a,unsigned __int64 b)
{
if(b==0)
return a;
return GCD(b,a%b);
}


unsigned __int64 Euclid(unsigned __int64 a, unsigned __int64 b)
{
unsigned __int64 m, e, i, j, x, y;
long xx, yy;
m=b;
e=a;
x=0;
y=1;
xx=1;
yy=1;
while(e)
{
i=m / e;
j=m % e;
m=e;
e=j;
j=y;
y*=i;
if(xx == yy)
{
if(x > y)
{
y=x - y;
}
else
{
y-=x;
yy=0;
}
}
else
{
y+=x;
xx=1 - xx;
yy=1 - yy;
}
x=j;
}
if(xx == 0)
{
x=b - x;
}
return x;
}

unsigned __int64 RandomRelativelyPrime(unsigned __int64 n)
{
unsigned __int64 r;
srand(time(NULL));
do
{
r=rand()%n;
}while(GCD(r,n)!=1);
return r;
}

int main(int argc, char *argv[])
{
unsigned __int64 p=47;
unsigned __int64 q=59;
unsigned __int64 n=p*q;
unsigned __int64 t=(p-1)*(q-1);
unsigned __int64 e1=889;
unsigned __int64 e2=Euclid(e1,t);
printf("p=%I64d q=%I64d p*q=%I64d t=%I64d e1=%I64d e2=%I64d\n",p,q,n,t,e1,e2);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯