数字签名由数字摘要和对称加密技术组成_为何对称加密不适用于数字签名

数字签名由数字摘要和对称加密技术组成_为何对称加密不适用于数字签名一个小故事让您轻松读懂,信息摘要、数字签名、数字证书、对称非对称加密

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

防盗声明:其他网站发现均为盗版
本文唯一链接:https://blog.csdn.net/weixin_44331765/article/details/124220044

1. 问题描述

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

2. 问题解答

通过一个小例子来说明一下。
三个人物:红军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的证书

总体图
在这里插入图片描述

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181106.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python之数学(math)和随机数(random)

    math包包含了最基本的数学运算函数,如果想要更加高级的数学功能,可以使用标准库外的numpy和scipy库,他们不但支持数组和矩阵运算,还有丰富的数学和物理方程可供使用random包可以用来生成

    2021年12月18日
    62
  • Spring Boot2.0迁移概括

    Spring Boot2.0迁移概括首先,SpringBoot2.0需要Java8或更高版本。不再支持Java6和7了。在SpringBoot2.0中,许多配置属性被重新命名/删除,开发人员需要更新application.properties/application.yml相应的配置。为了帮助你解决这一问题,SpringBoot发布了一个新spring-boot-properties-migr…

    2022年5月27日
    66
  • MPEG-4、MPEG-4/AVC、H.264之间的联系与区别「建议收藏」

    MPEG-4、MPEG-4/AVC、H.264之间的联系与区别「建议收藏」当你在网上下载视频时,经常会看到MPEG-4、h.264等等词汇,它们之间有什么关系吗?  在视频编解码技术定义方面有两大标准机构。一个是国际电信联盟(ITU)致力于电信应用,已经开发了用于低比特率视频电话的H.26x标准,其中包括H.261、H.262、H.263与 H.264;另一个是国际标准化组织(ISO)主要针对消费类应用,已经针对运动图像压缩定义了MPEG

    2022年9月19日
    4
  • 计算机考研调剂大概率,调剂经验分享:调剂成功概率太低了?过来人手把手教你如何调剂…[通俗易懂]

    计算机考研调剂大概率,调剂经验分享:调剂成功概率太低了?过来人手把手教你如何调剂…[通俗易懂]调剂经验分享:调剂成功概率太低了?过来人手把手教你如何调剂摘要:调剂变数太大了,所以聪明的同学一定会提前做点什么让调剂尽可能地和自己有关系,然后自己尽可能的被调剂院校看见,那么,关于调剂有什作者梦成真520次阅读2020-06-08摘要:调剂变数太大了,所以聪明的同学一定会提前做点什么让调剂尽可能地和自己有关系,然后自己尽可能的被调剂院校看见,那么,关于调剂有什么经验呢,下面看看是帮帮为大家搜集…

    2022年6月5日
    31
  • 锐龙cpu天梯图_cpu性能天梯排行图最新

    锐龙cpu天梯图_cpu性能天梯排行图最新近段时间,桌面CPU平台有了比较大的变化,AMD今年的Ryzen全面迎来逆袭,此外还拿出了最高16核的RyzenThreadripper顶级处理器。而为应对AMDRyzen的崛起,Intel近日也正式推出了八代CannonLake(10/14nm),不再挤牙膏,全线都带来了多核升级,性能激增,因而备受关注。而“电脑百事”此次CPU天梯图2017年9月版主要是在8月版的基础上,率先加入Inte…

    2022年9月17日
    2
  • Thread.IsBackground 属性

    Thread.IsBackground 属性net提供了Thread类用于线程的操作。当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的推出而退出。后台线程不妨碍程序的终止,只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。【注意】当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALS…

    2022年8月31日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号