RSA介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/82725137

一 什么是RSA

RSA是一种公钥密码算法,它的名字由三位开发者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母组成的。

RSA被用于公钥密码和数字签名。

1983年,RSA公司为RSA算法在美国取得了专利,但现在该专利已经过期。

二 RSA加密

在RSA中,明文、密钥和密文都是数字。RSA的加密过程可以用下面的公式来表达。

RSA的密文是对代表了明文的数字的E次方求mod N的结果。换句话说,就是将明文和自己做E次乘方,然后将其结果除以N求余数,这个余数就是密文。

加密公式中出现了两个数——E和N,到底都是什么数呢?RSA的加密是求明文的E次方mod N,因此只要知道E和N这两个数,任何人都可以完成加密的运算。所以说,E和N是RSA加密的密钥,也就是说,E和N的组合就是公钥。

不过,E和N并不是随便什么数都可以的,它们是经过严密计算得出的。其中E是加密(Encryption)的首字母,N是数字(Number)首字母。

有一个很容易引起误解的地方——E和N这两个数并不是密钥对(公钥和私钥的密钥对)。E和N两个数才组成一个公钥,因此我们一般会写出“公钥是(E,N)”或者“公钥是{E,N}”这样的形式,将E和N用括号括起来。

三 RSA解密

该公式表示对密文的数字的D次方求mod N就可以得到明文。换句话说,将密文自己做D次乘法,再对其结果除以N求余数,就可以得到明文。

这里使用的数字N和加密时使用的数字N是相同的。数D和数N组成起来就是RSA的解密密钥,因此D和N的组合就是私钥。只有知道D和N两个数的人才能够完成解密的运算。由于N是公钥的一部分,是公开的,因此单独将D称为私钥也是可以的。

在RSA中,加密和解密的形式是相同的。加密是求“E次方的modN”,而解密则是求“D次方的modN”。

当然,D也并不是随便什么数都可以的,作为解密密钥的D,和数字E有着相当紧密的联系。否则,用E加密的结果可以用D来解密这样的机制是无法实现的。

D是解密(Decryption)的首字母,N是数字(Number)的首字母。

四 RSA加密和解密小结

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/82725137
RSA