20181117--RSA算法数学原理分析

非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。
所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。

RSA算法原理
RSA算法的基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。
如:有很大质数p跟q,很容易算出N,使得 N = p * q,
但给出N, 比较难找p q(没有很好的方式, 只有不停的尝试)

这其实也是单向函数的概念

下面来看看数学演算过程:

选取两个大质数p,q,计算N = p q 及 φ ( N ) = φ § φ (q) = (p-1) * (q-1)

三个数学概念:
质数(prime numbe):又称素数,为在大于1的自然数中,除了1和它本身以外不再有其他因数。
互质关系:如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。
φ(N):叫做欧拉函数,是指任意给定正整数N,在小于等于N的正整数之中,有多少个与N构成互质关系。

如果n是质数,则 φ(n)=n-1。
如果n可以分解成两个互质的整数之积, φ(n) = φ(p1p2) = φ(p1)φ(p2)。即积的欧拉函数等于各个因子的欧拉函数之积。

选择一个大于1 小于φ(N)的数e,使得 e 和 φ(N)互质

e其实是1和φ(N)之前的一个质数

计算d,使得de=1 mod φ(N) 等价于方程式 ed-1 = k φ(N) 求一组解。

d 称为e的模反元素,e 和 φ(N)互质就肯定存在d。

模反元素是指如果两个正整数a和n互质,那么一定可以找到整数b,使得ab被n除的余数是1,则b称为a的模反元素。
可根据欧拉定理证明模反元素存在,欧拉定理是指若n,a互质,则:
a^φ(n) ≡ 1(mod n) 及 a^φ(n) = a * a^(φ(n) - 1), 可得a的 φ(n)-1 次方,就是a的模反元素。

(N, e)封装成公钥,(N, d)封装成私钥。
假设m为明文,加密就是算出密文c:
m^e mod N = c (明文m用公钥e加密并和随机数N取余得到密文c)
解密则是:
c^d mod N = m (密文c用密钥解密并和随机数N取余得到明文m)

私钥解密这个是可以证明的,这里不展开了。

猜你喜欢

转载自blog.csdn.net/qq_36344771/article/details/84193058