RSA非对称加密流程说明

说明:图例中,红框:需要保密的文本;绿框:不需要保密的文本。

所谓非对称,指的是:

  • 用PrivateKey加密,就必须用PublicKey解密。
  • 用PublicKey加密,就必须用PrivateKey解密。

1、加密

  • 如果A需要把文件Text,通过不安全的网络 ,发送到B,则需要加密。为了解决对称加密的密码泄露的问题,使用非对称加密。
  • 图中,红色框表示的B模块中的BPrivateKey和Text只有B知道,绿色框代表的BPublicKey网络上任何人都可以知道。
  • A通过BPublicKey和Text利用RSA加密算法,得到 密文CipherText,则可以安全的在网络中传输。
  • 密文CipherText传输到B 模块中,B通过BPrivateKey进行解密,得到文本Text。

2、签名

  •  B需要把文本Text发送至A,但是需要证明文本是由B发送的,则B需要进行数字签名。
  •  B把BPrivateKey和Text,通过RSA的加密算法,得到密文CipherText,但是此密文没有任何的保密作用,因为它是使用B的BPublicKey解的,网络上的任何人都可以解密的。
  •  如果A通过BPublicKey把密文成功解密为文本Text,则证明此文本是B发送的。因为只有用B的PrivateKey加密出来的文本,才能用B的PublicKey解密,任何拿不到B的PrivateKey的第三方生成的密文,是无法通过B的
  • PublicKey解密密文的,是无法进行伪造的。 

因为B生成的CipherText无任何的保密作用,则直接看作为明文,因此此签名流程可以优化为:

  •  因为B生成的密文CipherText在网络上谁都可以解密,因此就没有必须加密整段密文了,只需要加密一个摘要就可以了。
  • 通过密码学中的的Hash算法,得到固定长度的摘要,并且跟原来的文本Text没有任何的关联,但是Hash的过程是公开的,但是此Hash过程是不可逆的。
  • B利用PrivateKey对摘要进行加密,得到了一个签名,把签名附上原来的文本,一起发送给A。
  • 此时A就需要验证B发来的文本,A可以通过公开的过程把文本算出摘要,再通过BPublicKey和接收到的签名计算出一个摘要,如果两个摘要是相等的话,则可以证明文本是B发送过来的。如果摘要不匹配,则是伪造的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamCatcher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值