加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证...

1.参考

  http://www.youdzone.com/signature.html

  图示:

  

 

2.常见名词简介

 

客户端:通常为请求方,要验证服务器的身份。

服务器:通常为响应方,有时也要验证客户端的身份。

C     A :全拼为Certificate Authority,就是第三方验证机构。  

加   密:客户端或服务器把数据放在箱子里,然后用钥匙(公钥或私钥)将箱子锁上,再放到网络上传输,只有有用钥匙的人才能打开箱子。

密  钥: 用来解锁箱子的钥匙。非对称加密算法里分:公钥、私钥。它们成对出现,只有它们能解开对方加密过的数据。

解   密:用钥匙箱子解锁,得到里面数据。 

 

私    钥: 私有,只能解开本公钥加密的数据,用它加密的数据只能被本公钥解密。只有自己知道。

公    钥: 公有,只能解开本私钥加密的数据,用它加密的数据只能被本私钥解密。给所有接收方。

签    名: 发送方用摘要算法(md5,sha等),得到摘要A,然后用私钥对摘要A进行加密,这个过程就叫签名。正文数据加密后再追加签名发给接收方。

验    证: 主要有两个验证工作。

  • 验证对方身份合法性:公钥是否能成功解密数据。能:对方合法。反之:不合法。
  • 验证数据否被篡改:
    1. 接收方对数据解密,得到签名信息+原数据,用公钥对签名解密,取出摘要A,
    2. 采用与签名相同的摘要算法对原数据求摘要B。将摘要A、B进行对比。可验证本次传输过程中数据是否被篡改。

证    书: 证明公钥的合法性。

  如果某个人(X)用自己的公钥偷换了接收方的公钥,这个时候它给接收方发数据+签名,那么X可以通过接收方的验证。接收方误以为X就是原来的发送方,这时就不安全了。

       为了解决这个问题,出现了第3方权威认证机构(CA),发送方把自己的公钥和相关信息白提交给CA认证,CA用自己的私钥对申请人信息以及公钥进行签名。生成数字证书信息,通常是文件方式。这时接收方不再使用发送方的公钥了,而是使用权威机构的公钥。同时要求发送方先把数字证书信息发送过来。然后用权威机构的公钥解密数据字证书得到发送方的公钥。

  

3.举例 

  服务器为S,它有1把私钥,4把公钥(因为公开,别人可以获取)

  客户端为C1,C2,C3,C4,它们各有一把S的公钥。

  C1 用S的公钥加密数据后,若对方能解开,说明通它是S。这样可验证服务器身份(原理2,6)

  如果C2想冒充S,它给C1发数据,C1用公钥无法解开,因为C2没有S的私钥,说明C2不合法。(原理4,5)

3.1 公钥加密举例

  假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。

  我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
  数字2,就是我的私钥,来解密。这样我就可以保护数据了。

  我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
  只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。

3.2 私钥签名举例

  如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知
道我的公钥是1,那么这种加密有什么用处呢?防止冒充,如下

  我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他
解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。 

4.总结

  • 公钥私钥成对出现
  • 私钥只有我知道
  • 大家可以用我的公钥给我发加密的信了
  • 大家用我的公钥解密信的内容,看看能不能解开,能解开,说明是经过我的私钥加密了,就可以确认确实是我发的了。
  • 用公钥加密数据,用私钥来解密数据
  • 用私钥加密数据+数字签名,用公钥来解密及验证数字签名。

  在实际的使用中,公钥不会单独出现,总是以数字证书的方式出现,这样是为了公钥的安全性和有效性。 

 

转载于:https://www.cnblogs.com/sjjg/p/4699836.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值