RSA的使用方式

一小部分人在学习RSA原理之后仍不清楚其使用的方式,在使用时将其理论讲错。本文厘清其使用方式,避免大家的误解。

加密方式

非对称加密的使用是非常环境下传输安全信息。换句话来说,加密方式的使用场景就是我想给你说句话,但别人不知道内容。

经常举例Alice和Bob的通信息过程,如果是Alice想通知Bob一个信息,那么必须使用Bob的公钥对信息加密,此时由于只有私钥能解,也就意味着只有Bob能拿到这个信息的真正明文。

但是,这里很多人都以为Bob知道Alice的身份,或者说知道是Alice发送的。根据这种理解是错误的,Bob只有知道有人给他了一段信息,是谁根据不知道。任何人都可以说自己是Alice的。本身公钥是公开的,每个人都可以得到Bob的公钥。

一部分人错误的理解就是因为这个例子中使用了Alice这个明确的发送方。其实这个Alice匿名也是可以的。这个例子只能说明Bob收到了一段发给自己的密文。其他的任何信息都是错误的。

比如Alex也使用Bob的公钥发送一段信息给Bob,Bob同时接收到可以解码,如果Alex说自己是Alice,那么Bob是根本无法分辨的。

所以加密过程其实一句话可以概括,在非安全网络下,有人给私钥持有者发送了信息

解密方式

解密方式就是密钥持有者将发送给自己的密文进行解密,得到相应的明文。

解密方式其实只有一个问题要说明。除了私钥持有者,其他人都无法解密,解密的过程也没有确定是谁发送的信息。并不是有些人说解密时,先得到Alice的公钥什么什么的。这个与签名与验证混淆了!

解密只是解密而已,就是私钥持有者将密文计算出正确的明文

签名方式

严格来说签名方式常用于通知,表明言论的出处或发行者这类似的场景。

仍然以Alice和Bob发送信息为主,Alice使用自己的私钥签名了发送信息的内容。Bob接收到后,验证这个签名确实是来源于Alice。但是这里要说明的是,Alice只是向Bob表明了身份,以搏得Bob的信任。但是这里教科书式的举例同时让人产生了一个误解,其实任何人都可以验证是Alice发布的信息,因为所有人都有Alice的公钥都可以进行验证。并不仅仅是Bob。

所以签名方式只是向所有人表明自己的身份,并不是只有Bob能验证身份的。验证身份使用的也不是Bob的公钥,而是表明身份人的公钥。

验签(检验签名)

验签只是使用表明身份人的公钥来验证是否为该人所发送/发布而已。其他任何人因为没有表明身份人的私钥,所以无法发送出相同的签名的。

所以此时,Bob只是验证发送/发布者的身份而已。

总结

关于加解密与签名验签的过程

方式发送者接收者备注
加密Alice
使用Bob的公钥加密
Bob所有人都能接到密文信息
解密AliceBob
使用自己(Bob)的私钥解密
只有Bob能将接收到密文转换成正确的明文
以上只是Alice发信息发给Bob
签名Alice
使用自己(alice)私钥摘要内容
同时发送的内容进行发送
Bob所有人都能接到Alice发送的内容与签名数据
验签AliceBob
看到Alice信息的内容
使用Alice的公钥验证内容
所有人都可以看到信息内容
所有人都可以使用Alice的公钥验证内容

模拟的双方可信通信过程中的流程:

  1. 用户A跟另一个用户B建立连接
  2. 用户A向用户B发送信息"我是Alice“,并使用Alice的私钥对内容签名。
  3. 用户B使用Alice的公钥进行验签,确认Alice的身份。
  4. 用户B向用户A发送信息"我是Bob",并使用Bob的私钥对内容签名。
  5. 用户A使用Bob的公钥进行验签,确认Bob的身份。
  6. 用户A(Alice)向用户B发送一个对称密码,使用Bob的公钥加密。
  7. 用户B(Bob)使用自己(Bob)的私钥进行解密,保存解密后的密码。
  8. 用户A(Alice)和用户B(Bob)所有通信均使用对称密码进行加密和解密。

说明

在通信双方有一个问题,用户A公开了自己的公钥,有一个不怀好意的用户B也公开发自己的公钥,但它却是B的身份?其他人如何确定哪个公钥是正确的?也就是说我们无法确定谁才是真正的公钥。

这就用到一个能给你证明谁才是真正用户的机构CA。严格来说它是一个证书服务器,这个证书服务器会向你保证谁是真的用户。

有这么一个证书机构是必须的重要的。它保证了所有用户的公钥,用户B说明自己是A时,我们通过证书机构拿出A的公钥来验证B的信息肯定是不对的。

可能你还在想,谁又能证明这个证书机构不是假冒的呢?答案非常简单,是另一个更有权威的证书机构。那么谁又能证明你这个更有权威的机构是真实的呢?当然是还有一个权威机构…最后的那个叫根机构。根机构不需要证明,它把自己的证书直接安装在你的系统中。因此你的计算机中的证书根机构被更改你就完了。否则这所有的验证都可以最终验证到根机构上来,而根机构的证书可以验证你的根机构是否正确。而这个验证的链条叫做证书链。

为了防止链书链过长,所以有些不是根证书,但在证书链上被验证过的CA可以直接添加到可信机构中。那么证书链验证到可信机构就可以了。除非可信机构的证书过期或被吊销。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值