美文网首页逆向安全
RSA加密算法详解

RSA加密算法详解

作者: wopen | 来源:发表于2018-12-22 16:40 被阅读0次

    什么是RSA算法?

    RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

    大数的质因素分解决定RSA算法的可靠性,让合理时间内破解加密数据成为不可能。

    要了解RSA加密算法首先要了解素数

    什么是非对称加密?

    非对称加密需要两个密钥,一个公开密钥一个私有密钥。使用公钥加密的数据只能用私钥解开,
    所以公钥可以公开给他人,而私钥要保护起来。其实公钥就像🔒,私钥就像🔑,把🔒给别人锁住数据,然后传递回来用🔑解开取出数据。这样就算中途被他人截获了没有🔑也没法查看数据内容。

    欧拉函数

    欧拉函数是说,对正整数n,欧拉函数\phi(n)是小于或等于n的正整数中与n互质的数的数目。比如\phi(8) = 4因为81,3,5,7互质。有一种情况\phi(n)很好计算就是当n等于素数时,因为素数和小于它的所有正整数互质,所以当n等于素数时\phi(n) = n-1,且当a,b都是素数时\phi(a×b)=\phi(a)×\phi(b)

    欧拉定理

    欧拉定理(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互素,则 a^{\phi(n)}\equiv1\ (mod\ n)

    RSA加密算法

    RSA加密算法是根据一个容易运算但是如果没有特殊信息逆运算非常困难的函数,m^e\ mod\ n \equiv c,这非常容易计算c,但是给定e,n,c却很困难得到m

    那么怎么让它的逆运算也容易呢?要有一个dc^d\equiv m\ (mod\ n)成立,这公式也可以写成m^{e×d}\equiv\ m\ (mod\ n),这样只要知道d就可以得到m了。

    那么怎么计算d,这时候就要用到欧拉定理m^{\phi(n)}\equiv1\ (mod\ n),也可以写成m^{k×\phi(n)+1}\equiv m\ (mod\ n),就是将原等式的任何数k次方,然后再乘以m

    现在就有了m^{e×d}\equiv m\ (mod\ n)m^{k×\phi(n)+1}\equiv m\ (mod\ n),就可以算出d等于\frac{k×\phi(n)+1}e

    这时e就相当于公钥,d就相当于私钥。

    那么RSA加密算法过程为:

    1)第一步是首先找出两个大质数p1,p2,大质数可以使用两步生成。(具体可以看费马小定理

    1. 随机生成一个大数
    2. 测试是不是素数

    然后将p1,p2相乘得到n,根据欧拉定理可知\phi(n)=(p1-1)×(p2-1)

    2)第二步找到一个奇数e,而且与\phi(n)互质。

    3)根据上面公式计算出一个正整数d,有人证明如果d<\frac{1}3×n^{\frac{1}4}可以根据n,e很有效的推出d,所以d必须足够大。

    4)将en发送给他人加密数据(m),得到c\equiv m^e\ (mod\ n)(消息m是小于n的正整数,如果m太大可以分段)。

    5)取回加密数据cc^d\ mod\ n 就等于消息m

    安全性

    根据上面步骤可以看出要破解加密必须要得到d,而得到d就要找到p1,p2,这就要对n进行质因素分解,然而根据现在计算机的速度对一个大数在一个合理时间内质因素分解非常困难。

    相关文章

      网友评论

        本文标题:RSA加密算法详解

        本文链接:https://www.haomeiwen.com/subject/niaikqtx.html