RSA算法基本原理(RSA加密和RSA数字签名)

引言
RSA算法是一种很经典的非对称性算法,所谓的非对称性加密即指的是任何一个人都有两个密钥,一个公钥(别人可以知道),一个私钥(只有自己知道),非对称性加密在能保证信息安全的前提下,相比于对称性加密能极大地缩小信息加密的成本,同时在快捷和实用性上有着极大的便利
RSA算法
RSA算法中有两对密钥,公钥常记为(e,N),私钥常记为(d,N),根据用法不同,RSA可以被用来对信息进行加密或者用来做数字签名,两种用法具有一定的对称性

1:利用RSA算法加密信息
原理:当B想要给A发送信息的时候,这时B只需要用A的公钥对要发送的信息进行加密处理,就可以得到加密后的密文,而A拿到密文之后,再用自己手上的私钥对密文进行解密,就可以还原得到B发送给A的真实信息(也就是明文)

RSA加密算法的数学支撑就是欧拉函数的单向性和大素数的分解在数学上是一个无解的问题。具体的数学基础我们在下一篇博客再来谈

这里我们不关注RSA算法底层的数学原理,可以从应用的角度简单理解如下,利用RSA算法进行信息的加密看重的是信息传递的安全性,即别人即使得到了密文和信息接收者的公钥,没有信息接收者的密钥也是很难很难从密文中破解出真实的明文信息,但是要是有私钥,从密文到真实的明文信息就变得很简单。

2:利用RSA算法数字签名
原理:当A想要给B发送数据,并想进行数字签名的时候,A只需要利用自己的私钥,对数据进行数字签名算法,就可以得到一个新的签名数据,这时A需要把自己原来的数据,以及新得到的签名数据都发送给B,B接受到签名数据之后,用A的公钥对签名数据进行验证算法,看得出来的数据与A发送过来的数据是不是完全一样的即可。

这里我们同样先从应用的角度简单理解一下RSA算法进行数字签名,与利用RSA进行信息加密是为了保证信息在互联网上安全传输不一样,利用RSA进行数字签名看重的是如下三点:
1:防止信息被篡改
注释:当A发送的数据在互联网上传递的时候要是被别人篡改了,这时候B利用A的公钥对A的签名数据进行验证算法,得出来的数据肯定就跟网络上A发送过来的数据不一样了,这样就可以起到防止信息被篡改的作用

2:验证信息是某人发送的
注释:这个是由RSA的数学理论决定的,RSA中公钥数据和私钥数据之间有一定的数学关系,当你用自己的私钥对信息进行数据签名的时候,别人只有用你的公钥对签名进行验证算法,才能得出与你发送的信息完全一样的数据,由此来验证该信息是谁发送的

3:防止信息发送方抵赖发送过该信息

猜你喜欢

转载自blog.csdn.net/jiyishizhe/article/details/105124918