RSA加密算法的意义

公钥和私钥

在HTTPS协议中,使用了RSA加密算法,RSA提出了公钥和私钥的概念,在两端相互发送消息的时候,可以一端用私钥把信息加密之后发送,另一端用公钥解密,也可以一端用公钥加密之后,另一端用私钥解密,但其实简单来看,这两种加密方式是无意义的。

私钥加密公钥解密:
对一个信息进行私钥加密后,因为公钥是公开的,每个人都可以获取这个公钥,相当于这个被私钥加密的信息谁都可以用公钥进行解密,信息相当于公开的,这样来看这次加密是没有意义的。

公钥加密私钥解密:
对信息进行公钥加密之后,发送给拥有私钥的人,当拥有私钥的人想回应信息的时候,必然要用自己的私钥加密,发送给别人让别人用公钥解密,但这又属于第一种情况,回应的数据并不能保证安全。

RSA加密的实际用处:确定身份

在实际互相发送消息的过程中,某一端无法确定对方真的是自己想要说话的那个人,还是别人伪装成的那个人。
但是在有RSA加密算法的情况下,这样的情况可以一端向另一端发送一个指定字符串,另外一端用私钥进行加密后再返还给发送端。因为私钥是唯一的,另一端用公钥解密后,如果发现和原来的字符串相同,就可以确定对方就是那个唯一拥有私钥的人。

RSA加密算法的意义

所以我觉得RSA加密算法的意义就在于确定私钥拥有者的身份。

拓展:签名的实现

可是在HTTPS协议中,服务端公布自己的公钥的时候,其实别人是不信的,因为如果一个黑客,自己搞了一对公钥私钥,先伪装成服务器,然后发送给客户端自己的公钥(假的公钥),然后客户端在用RSA算法确定身份的时候,会把他当成服务器,这样是明显不行的。
所以服务端发送的公钥并不是普通的公钥,而是经过CA认证的,这个公钥是写在一张“证书”里面的,上面还有着CA的“专属签名”,来确定这个证书的正确性和权威性。
而我们平时生活中,给别人签一个名,是通过自己的笔迹来确定这个名确实是自己签的,而这个CA证书颁发机构是如何给别人“签名”的呢,正是运用了RSA算法,把证书上面的内容用CA自己的唯一私钥加密,别人拿到证书,发现可以用CA的公钥解密,则说明这个证书确实是CA写的。
那可能你就又要问了:怎么确认自己用的公钥真的是CA证书颁发机构的公钥呢?
这个公钥应该是在安装操作系统的时候,就已经被微软(或者其他的操作系统开发者)安装在自己的电脑上了。


以上是我个人对HTTPS和RSA的个人理解了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值