一、RSA算法简介
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
二、RSA算法加解密用到的函数
1、RSA基本结构
struct
{
int pad;
long version;
const RSA_METHOD *meth;
ENGINE *engine;
BIGNUM *n;
n=p*q
BIGNUM *e;
公开的加密指数,经常为65537(ox10001)
BIGNUM *d;
私钥
BIGNUM *p;
大素数p
BIGNUM *q;
大素数q
BIGNUM *dmp1;
d mod (p-1)
BIGNUM *dmq1;
d mod (q-1)
BIGNUM *iqmp;
struct