非对称加密、数字签名、数字证书

非对称加密:每人包含一个公钥和私钥。注意:公钥可以解开私钥,私钥可以解开公钥。公钥不能解开公钥,私钥不能解开私钥。

A与B用非对称加密的方式通信:A首先把要发送的内容用B的公钥加密,那么只有B的私钥能解密,保证了数据的保密性(A在向B发送内容的途中,别人看不到A发的是啥)

上面看似安全,实则有问题,A可也给B发消息,C也可以假装是A给B发消息,因为C也有B的公钥。B很难去辨别谁发的消息。

数字签名:A向B发送消息,首先用A的私钥加密,B收到以后用A的公钥验证一下,就知道是不是A发送的了。数字签名和非对称加密可以看作一个相反的过程。数字签名是没办法保证保密性的,因为用A私钥加密的数据任何人都能用A的公钥解开。所以我们要将数字签名和非对称加密一起使用。可以先加密再签名,也可以先签名再加密。

所以就由一个相对安全的方式:A向B发消息,A先用自己的私钥签名,再用B的公钥加密。B收到以后用B的私钥解密,再用A的公钥解签名得到正文。

但是还是存在问题,前面在签名的时候,我们认为用谁的私钥能解开这个信息就代表这个信息是谁写的,但是人人都有A的私钥,那么我们怎么能确认这个私钥就是A的呢?就是说每个私钥要和一个人对应,这个对应关系谁来保证。

数字证书:互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。

A将自己的私钥发送给具有权威公正的机构CA,CA帮他生成一个数字证书,数字证书中包含了A的私钥和身份信息,也就证明了这个公钥的生成者是A。证书一般包含:公钥(记住证书中是带有公钥的),公钥的数字签名,公钥拥有者的信息,若证书验证成功,这表示该公钥是合法,可信的。下图是https某网址的数字证书。

 

所以A向B发消息,需要把A的证书也发过去,但是这个证书可能被篡改是吧,怎么办?这个证书实际上是用CA机构的私钥加密的,也就是进行过签名,进行签名后的文件也是具有机密性的。那么怎么解开这个文件呢,是不是要用到CA的公钥,又要保证CA的公钥是CA的,怎么办??无限循环了,实际上我们电脑中有根证书,安装了我们信任的机构的公钥,那么就能保证数字证书是信任的CA机构发来的。

主要难理解的地方是有了数字签名为什么还有有数字证书,CA的数字证书是怎么来保证的。

数字签名只能保证是用哪一个公钥可以解签名,但并不知道这个公钥属于谁。数字证书可以知道这个公钥属于谁。因为人人都有A的公钥,签名解开我怎么知道这个公钥是谁的。

CA的公钥是计算机中自带的,我们认为能被计算机中自带的公钥解开的签名就是合法的。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值