非对称加密技术- RSA算法数学原理分析

Posted 区块链兄弟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非对称加密技术- RSA算法数学原理分析相关的知识,希望对你有一定的参考价值。

点击蓝字,轻松关注

非对称加密技术- RSA算法数学原理分析来源:汇新云

原文链接:http://t.cn/Rgob4A9

本文约1900字+,阅读(观看)需要11分钟



对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。


所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。


但是对于其原理大部分同学应该都是一知半解,今天就来分析下经典的非对称加密算法 - RSA算法。


通过本文的分析,可以更好的理解非对称加密原理,可以让我们更好的使用非对称加密技术。

RSA算法原理


RSA算法的基于这样的数学事实:两个大质数相乘得到的大数难以被因式分解。


如:有很大质数p跟q,很容易算出N,使得 N = p * q,

但给出N, 比较难找p q(没有很好的方式, 只有不停的尝试)


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


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


选取两个大质数p,q,计算N = p q 及 φ ( N ) = φ (p) φ (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互质,则:


非对称加密技术- RSA算法数学原理分析


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)

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

加解密步骤


具体还是来看看步骤,举个例子,假设Alice和Bob又要相互通信。

Alice 随机取大质数P1=53,P2=59,那N=53*59=3127,φ(N)=3016


取一个e=3,计算出d=2011。


只将N=3127,e=3 作为公钥传给Bob(公钥公开)


假设Bob需要加密的明文m=89,c = 89^3 mod 3127=1394,于是Bob传回c=1394。 (公钥加密过程)


Alice使用c^d mod N = 1394^2011 mod 3127,就能得到明文m=89。 (私钥解密过程)


假如攻击者能截取到公钥n=3127,e=3及密文c=1394,是仍然无法不通过d来进行密文解密的。

安全性分析


那么,有无可能在已知n和e的情况下,推导出d?


非对称加密技术- RSA算法数学原理分析


如果n可以被因数分解,d就可以算出,因此RSA安全性建立在N的因式分解上。大整数的因数分解,是一件非常困难的事情。


只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。

补充模运算规则


模运算加减法:


(a + b) mod p = (a mod p + b mod p) mod p

(a - b) mod p = (a mod p - b mod p) mod p


模运算乘法:


(a b) mod p = (a mod p b mod p) mod p


模运算幂:


a ^ b mod p = ((a mod p)^b) mod p


文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。



猜猜你喜欢


一份加密经济学的终极学习指南

区块链的技术简史与未来前景


点击“阅读原文”参与区块链问题讨论

以上是关于非对称加密技术- RSA算法数学原理分析的主要内容,如果未能解决你的问题,请参考以下文章

非对称加密技术- RSA算法数学原理分析

非对称加密算法——RSA加密原理及数学推导

RSA算法详解

原创 | 信息安全传递的战争—浅析从对称加密到RSA非对称加密的数学原理

非对称加密及RSA加密算法

非对称加密算法-RSA算法