文档介绍:#include <>
#include <>
#include <>
unsigned long pow(int x,int y)
{
unsigned long r=1;
int i;
for(i=1;i<=y;i++)
{
r=r*x;
}
return r;
}
void main()
{
int n,a,b,t;
unsigned long x,y,k,l;
printf("请输入n的值:");
scanf("%d",&n);
srand(time(0));
a=(rand() % (n-2))+2;
printf("随机数a的值:%d\n",a);
b=(rand() % (n-2))+2;
printf("随机数b的值:%d\n",b);
t=(rand() % (n-2))+2;
printf("随机数t的值:%d\n",t);
x=pow(t,a)%n;//计算t的a次幂,mod n 的值,并把结果发送给B
printf("经计算得到x值并发送给B:%d\n",x);
y=pow(t,b)%n;//计算t的b次幂,mod n 的值,并把结果发送给A
printf("经计算得到Y值并发送给A:%d\n",y);
k=pow(y,a)%n;
printf("A计算结果k:%d\n",k);
l=pow(x,b)%n;
printf("B计算结果l:%d\n",l);
printf("a=%d,b=%d,t=%d\n",a,b,t);
printf("x=%ld,y=%ld\nk=%ld,l=%ld\n",x,y,k,l);
printf("得出的结果如果k与l相等,密钥分配成功;如果不等,请重新输入计算\n");
}