龙空技术网

RSA 加密算法——号称地球上最安全的加密算法,没有之一!

罗哥软件开发 1867

前言:

而今朋友们对“rsa非对称加密有什么优点”大致比较珍视,咱们都需要学习一些“rsa非对称加密有什么优点”的相关文章。那么小编在网上汇集了一些有关“rsa非对称加密有什么优点””的相关资讯,希望咱们能喜欢,朋友们快快来学习一下吧!

RSA算法由来

RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。

RSA算法公式

根据密钥的使用方法,可以将密码分为对称密码和公钥密码

对称密码:加密和解密使用同一种密钥的方式

公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码。

RSA的加密过程可以使用一个通式来表达

也就是说RSA加密是对明文的E次方后除以N后求余数的过程。

从通式可知,只要知道E和N任何人都可以进行RSA加密了,所以说E、N是RSA加密的密钥,也就是说E和N的组合就是公钥,我们用(E,N)来表示公钥

不过E和N不并不是随便什么数都可以的,它们都是经过严格的数学计算得出的。这里需要注意的是:E是加密(Encryption)的首字母,N是数字(Number)的首字母。

RSA算法定理

设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:

C1 = P^e1mod n

C2 = P^e2 mod n

一、任何大于1的整数a能被因式分解为如下唯一形式:

a=p1p2…pl(p1,p2,…,pl为素数)

二、模运算

①{[a(mod n)]×[b(mod n)]}modn≡(a×b)(mod n)

②如果(a×b)=(a×c)(mod n),a与n互素,则

b=c(mod n)

三、费马定理

若p是素数,a与p互素,则

a^(p-1)≡1 (mod p)

四、欧拉定理

欧拉函数φ(n)表示不大于n且与n互素的正整数的个数。

当n是素数,φ(n)=n-1。n=pq,p,q均为素数时,则φ(n)= φ(p)φ(q)=(p-1)(q-1)。

对于互素的a和n,有a^φ(n)≡1(mod n)

RSA算法应用

数据传输

RSA的非对称特性用于数据传输很合适,这里生成了公钥给客户端,私钥放在服务器端用于解密传输过来的信息。

openssl genrsa -out rsa_private_key.pem 1024openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

生成公钥私钥,公钥给客户端,JS调用去加密,加密后的数据是乱码没有办法直接输出,因此需要base64进行编码。

Web登录密码加密传输

使用了RSA非对称加密算法,加密所用的密钥和解密所用的密钥是不相同的。简单来说就是:你使用我的公钥加密,我使用我的私钥来解密;如果你不使用我的公钥加密,那我无法解密;如果我没有私钥,我也没法解密。

RSA算法安全性

RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。

RSA算法缺点

当然,作为一个加密算法,不管它有多强大,总还是有缺点的,下面小编就罗列了一些它的缺点,仅供参考哦!

产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

安全性,RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NP问题。

速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

不断接触之后,我们就会发现数学真的是一个很美妙的东西,只要我们足够了解它,就可以利用它来完成许多无法想象的事情;其实研究算法也好,编写代码也罢,不过都是我们为完成自己的美好想象不断探索的过程,因为有了这个过程才有了不断完善进步的创新,你说是吗?

标签: #rsa非对称加密有什么优点 #rsa算法中d的解唯一吗 #rsa算法的密钥长度至少1024位才能保证其安全性 #rsa公钥密码体制的安全性基于 #证明rsa解密的正确性