RSA 算法的C 语言实现
一、RSA 算法的描述
1、选取长度相等的两个大素数p 和q,计算其乘积:
n = pq
然后随机选取加密密钥e,使e 和(p–1)(q–1)互素。
最后用欧几里德扩展算法计算解密密钥d,以满足
ed = 1(mod(p–1) ( q–1))
即d = e–1 mod((p–1)(q–1))
e 和n 是公钥,d 是私钥
2、加密公式如下:
ci = mi^e(mod n)
3、解密时,取每一密文分组ci 并计算:
mi = ci^d(mod n)
Ci^d =(mi^e)^d = mi^(ed) = mi^[k(p–1)(q–
1)+1 ]
= mi mi^[k(p–1)(q–1)] = mi *1 = mi
4、消息也可以用d 加密用e 解密
二、C 源程序
//RSA 算法的C 程序实现
#include <stdio.h>
int candp(int a,int b,int c) //数据处理函数,实现幂的取余
运算
{ int r=1;
b=b+1;
while(b!=1)
{
r=r*a;
r=r%c;
b--;
}
printf("%d",r);
评论5
最新资源