vlambda博客
学习文章列表

【读懂原理】信息摘要、数字签名、数字证书、对称加密与非对称加密详解


给点知识

读完需要

6
分钟

速读仅需 2 分钟

/ 信息摘要、数字签名、数字证书、对称加密与非对称加密详解 /

👀

   

问题描述

  1. 信息摘要、数字证书、对称加密与非对称加密详解有什么用,为什么需要这些。

👀

   

问题解答

通过一个小例子来说明一下。

三个人物:红军 1、红军 2、蓝军

情景描述:红军 1 要给红军 2 发送消息说发起进攻,有了以下发送场景。

场景 1:明文传输信息

刚开始,红军没认识到信息安全的重要性,所以直接明文传输信息。于是,很快就被蓝军获取了,然后红军屡战屡败。可以看到图中的蓝军如果截获情报,就可以立马看到内容是什么,因为红军使用明文传输。

场景 2:对称加密

对称加密:使用密钥 A 加密,解密时还使用 A 密钥就是对称加密。具体细节可自行搜索。接着说故事,红军发现被蓝军截获情报后,准备使用对称加密。于是使用了密钥 A。结果密钥在传输过程中被监听了。蓝军获取了密钥 A。

【读懂原理】信息摘要、数字签名、数字证书、对称加密与非对称加密详解场景 3:使用非对称加密

非对称加密:使用公钥加密(其实这里不叫加密,因为是公钥,所以是公开的秘密,所以这里叫签名,也即是数字签名),只有私钥能解密,同理使用私钥加密的,只能使用公钥解密。实现原理:红军 1: 私钥 a1 公钥 a2 红军 2: 私钥 b1 公钥 b2 红军想的本来是:就算蓝军获取了使用公钥加密的信息,也无法破解,因为它没有私钥。但是蓝军不这么做,它可以这么做:蓝军知道了也制作了自己的 私钥 w1 公钥 w2。于是有了一下情况。蓝军成为中间人了,就会有这么发消息的过程

 红军1:使用w2加密消息 蓝军:接收消息后使用w1解密 使用b2加密消息发送给红军2 红军2:收到使用b1解密 中间红军12发现不了问题,蓝军也可以获取到情报。 

场景 4:使用数字证书


红军发现了蓝军的中间人,所以需要再改进加密方式,为了让对方知道那个公钥是自己的,公钥不被篡改,所以使用了数字证书。红军 1 使用了证书,证书信息主要包括以下内容:
数字证书版本:1.0名称:红军1所属:第二战区唯一id:xxxxa1公钥:a1详细介绍:该军队是xxxx此处省略1万字证书大小:100M

      但是这么给红军 2,还是不行,因为这个万一证书中间的某部分尤其是公钥被篡改了,被蓝军伪造了怎么办。还是无法证明。那么就需要使用加密来保证数据不被篡改。使用 md5 进行加密,如果有一个内容改了,那么 md5 值也会变。

数字证书版本:1.0名称:红军1所属:第二战区唯一id:xxxxa1公钥:a1详细介绍:该军队是xxxx此处省略1万证书大小:100M对100M数据加密后:xjajaksd89as7df89asdf67asd78a7ds
对于以上加密,红军 1 发现,这个加密内容太长了,一个证书 1 万多字,需要半个小时才加密完成。太慢了,能不能提出一些重要的,进行加密,提高加密速度。于是就有了 信息摘要,我们提出其中的几百个字使用私钥进行签名也即是数字签名,就好比论文中的摘要,只要读几百字的摘要我们就知道这个论文讲的什么了。于是这个也需要信息摘要提取的算法(有兴趣自行搜索)加密的内容变小了,加密速度也快了。也能够保证数据完整性
数字证书版本:1.0名称:红军1所属:第二战区唯一id:xxxxa1公钥:a2详细介绍:该军队是xxxx此处省略1万证书大小:100M信息摘要:1kb红军1使用私钥对1kb数据签名:xjajaksd89as7df89asdf67asd78a7ds
但是要想证明这个证书就是红军 1 的还是不行,因为中间如果被蓝军修改了,红军 2 也发现不了。
数字证书版本:1.0名称:红军1所属:第二战区唯一id:xxxxa1蓝军修改公钥:w2 <----------------蓝军动手脚详细介绍:该军队是xxxx此处省略1万证书大小:100M信息摘要:1kb蓝军重新对摘要使用私钥签名:xwwwwksd8wwdf89asdf67asd78a7ds <----------------蓝军动手脚
传递给红军 2,红军 2 也发现不了。这个时候,红军准备找总部。总部的公钥每个人都有,都可以从红军总部获取。也即是红军 2 提前知道了总部的公钥 z2 那么红军 1 把证书给总部,总部使用自己的私钥进行签名
 数字证书版本:1.0 名称:红军1 所属:第二战区 唯一id:xxxxa1 红军1公钥:a2 详细介绍:该军队是xxxx此处省略1万 证书大小:100M 信息摘要:1kb 总部私钥签名:xwwwwksd8wwdf89asdf67asd78a7ds  

这个时候,就算蓝军获取了也不能修改了,因为红军 2 有总部的公钥,如果信息修改了,蓝军因为没有总部私钥,所以无法签名,就算签名了,公钥 z2 也无法解密签名,那么红军 2 就可以说这不是红军 1 的证书

总体图:

👀

   

温馨提示,有问题评论区见