1.前言

最近无意中看到了阮一峰大佬的关于数字签名的一个翻译(数字签名是什么?,该篇文章的精髓在于评论内容),觉得对数字签名突然没有那么迷茫了,所以决定做一个学习笔记,以便以后回来查阅。

为了让自己对数字签名有一个深刻的理解,博主觉得以哆啦A梦的人物故事线(很多90后的青春回忆)来帮助自己理解。

2.哆啦A梦的一个小插曲

在讲解数字摘要和签名之前,我们先明确一下故事主线:

在未来的日子里,大雄和静香在一起了,并且两人时常会写信交流。

故事重要角色:

  • 大雄

  • 静香

  • 胖虎

  • 叮当猫

  • 书信

2.1 大雄静香面对面交换书信

一开始,大雄和静香之间是直接面对面交换书信。

书信内容:静香,我昨天吃了一个不错的美食,下次带你去吧…(省略好几千字)

这个时候的书信内容还是明文(所谓明文就是别人一看就知道写了什么内容),任何人都可以看到内容写了什么。这个时候因为是面对面交换书信,所以不会存在有人会改动内容,安全级别高。

2.2 大雄要出远门,通过信箱传递书信

有一天,大雄要出一趟远门,需要在外面进修三个月。这个时候只能通过邮箱给静香发书信。

两人的通信方式如下:

书信的传递方向:

大雄 ——> 邮箱 ——> 静香

大雄写的书信先寄到静香家里的邮箱,静香再从家里邮箱去拿到书信内容。

2.3 胖虎出现,恶作剧修改书信内容

某一天,胖虎知道了两人的书信交流方式,想恶作剧一下两人。
恶作剧方式:

修改大雄的书信内容

此时,通信方式变成:

书信A内容

大雄:静香,我最近很想你…(省略好几千字)

胖虎截获了书信A之后,把书信A改成了书信B,恶搞内容变成:

大雄:静香,我最近有点讨厌你…(省略好几千字)

在这里,大雄和静香并不知道胖虎恶作剧的事情,我们暂且把胖虎定义为“中间人攻击”。

于是,静香大发雷霆,对着哆啦A梦说着大雄的信件内容。哆啦A梦去跟大雄求证信件内容,大雄表示完全不是这篇内容。

至此,哆啦A梦得出了一个结论:有人在两人不知道的情况下修改了信件内容

2.4 叮当猫百宝箱,书信摘要手电筒,书信摘要扫描仪


哆啦A梦从百宝箱中拿出两个神器。

  • 书信摘要手电筒,这个神器给到大雄

    摘要手电筒的功能就是:大雄写完书信内容之后,用手电筒照一下书信内容,手电筒会把书信内容经过某种特殊处理之后生成一份摘要信息,再把摘要内容附在书信内容的最后面
    并且,不能通过摘要去反推原文内容


    书信摘要手电筒在这里就充当了特殊算法,对应我们技术上的Hash算法
    什么叫做摘要呢?

小学上课,语文老师总喜欢叫我们在看完一篇课文之后写出文章的中心思想,这个中心思想就可以理解为文章摘要,我们可以通过文章内容来推出文章摘要,而不能反过来通过文章摘要推出整篇文章具体写了什么内容。

  • 书信摘要扫描仪,这个神器给到静香

    书信摘要扫描仪工作原理:静香扫描书信内容,扫描仪会按照书信摘要手电筒的方式生成一份书信摘要B,再把生成的摘要B和原来信件里面自带的摘要A进行对比,如果一样,证明这份摘要就是由信件内容生成的

    这个时候,通信模型变成:

胖虎就算恶搞了书信内容或或者随意修改摘要。恶搞后的信件在扫描仪这一关无法通过。

以上两种恶搞情况均无法骗过扫描检测仪。

2.5 胖虎再次出现,获得另一个书信摘要手电筒

没错,我胖虎又来了,胖虎得知了书信摘要手电筒这个秘密之后,又获得了另一个书信摘要手电筒(当然不要问我怎么得知怎么获得)。他通过 书信摘要手电筒 再次恶搞(两个书信摘要手电筒生成的摘要信息都可以通过扫描仪检测)。


以上情况可以欺骗扫描检测仪。
没错,于是,静香大发雷霆,对着哆啦A梦说着大雄的信件内容。哆啦A梦去跟大雄求证信件内容,大雄表示完全不是这篇内容。

至此,哆啦A梦得出了一个结论:有人在两人不知道的情况下修改了信件内容和摘要

2.6 叮当猫百宝箱,书信摘要加密手电筒,书信摘要解密扫描仪


哆啦A梦从百宝箱中拿出两个神器。

  • 书信摘要加密手电筒,这个神器给到大雄

    摘要加密手电筒的功能就是:大雄写完书信内容之后,用手电筒照一下书信内容,手电筒会把书信内容经过某种特殊处理之后生成一份摘要信息,再把摘要内容经过加密附在书信内容的最后面。加密的关键在于密钥,而且这个密钥只有大雄自己知道(这里技术上叫做私钥私钥加密就只能公钥解密,公钥加密就只能私钥解密,不存在公钥加密公钥解密)。

    这里我们引入了一个概念:数字签名
    什么叫做数字签名呢?

数字签名就是在数字摘要的基础上经过加密得到的一串密文。
这里会涉及到三大元素:数字摘要密钥加密算法

  • 书信摘要解密扫描仪,这个神器给到静香

    书信摘要扫描仪工作原理:静香扫描书信内容,扫描仪会按照书信摘要手电筒的方式生成一份书信摘要B,再把原来信件里面自带的签名A进行解密得到A1,再对比B和A1,如果一样,证明这份书信内容并没有被人动过手脚

这个时候,通信模型变成:

这里需要注意几个东西:

  • 大雄写完信件生成摘要之后会通过只有他自己知道的密钥(私钥,其他人无法得知)去加密生成数字签名。
  • 静香拿到书信之后可以通过公钥去解密数字签名得到数字摘要。
  • 胖虎拿到书信之后也可以通过公钥去解密数字签名得到数字摘要。
  • 胖虎在恶搞内容时,就算通过公钥去加密数字摘要得到数字签名再附在书信上,静香拿到之后也无法通过公钥去解密出来。扫描仪会判断到信件被人改动过了。

胖虎就算恶搞了书信内容或或者修改数字签名。恶搞后的信件在解密扫描仪这一关无法通过。

至此,整个通信过程就变成安全多了。

3. 总结

本文博主只是通过哆啦A梦的一个想象故事去理解数字摘要、数字签名的概念。如有错误请指正。另外,读者需要了解几个概念:

  • 数字摘要
  • 数字签名
  • Hash算法
  • 公钥私钥、加密算法

以上几个概念都是SSL时需要提到的概念,希望不要混淆。

TCP/IP协议——一文读懂数字摘要、数字签名,哆啦A梦特别版1.0(个人收藏学习笔记)相关推荐

  1. 网络协议:TCP/IP协议,你看懂了吗?

    这样的TCP/IP协议,你看懂了吗? 本文章转载自https://blog.csdn.net/yulyu/article/details/69062288 精通 TCP/IP,熟练使用 Socket ...

  2. 一文读懂数字治理的要素与灵魂

    一.数字治理基本概念 数字治理是数字技术.数字经济发展而产生的新型治理. 一方面,数字经济发展持续对传统治理产生影响和冲击,另一方面新型数字经济形态的持续产生新型治理问题. 随着数字技术与数字经济基础 ...

  3. 一文读懂数字孪生的应用及意义

    本文转自:https://baijiahao.baidu.com/s?id=1612730768875518690&wfr=spider&for=pc 今天的数字化技术正在不断地改变每 ...

  4. 一文读懂数字人民币的发行原因与特性 |链捕手

    在数字人民币的发行细节接连被披露后,数字人民币在公众群体中的影响力已经大幅提升,还多次登上了微博热搜榜第一名.距离数字人民币正式发行的时间越来越近,但公众对数字人民币的认知仍然存在许多疑惑与误区,链捕 ...

  5. 一文读懂——全局注意力机制(global attention)详解与代码实现

    废话不多说,直接先上全局注意力机制的模型结构图. 如何通过Global Attention获得每个单词的上下文向量,从而获得子句向量呢?如下几步: 代码如下所示: x = Embedding(inpu ...

  6. 一文带你看懂TCP/IP协议 (更新中 现更新至网络层部分)

    相信大家在编程的学习或应用中,对网络编程都有一定的需求.我们都知道http/https属于TCP/IP协议,也都用到过get,post等方法,但是想要真正的了解这些东西的原理.我认为TCP/IP协议还 ...

  7. tcp协议的主要功能是什么_计算机网络 | 一文搞懂什么是TCP/IP协议

    什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件, ...

  8. 计算机网络 | 一文搞懂什么是TCP/IP协议

    什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件, ...

  9. 一文读懂TCP/IP四层模型

    4.应用层:和程序相关的一层 3.传输层:负责数据从发送端到接收端 3.1 端口号分类 知名端口号:0-1023 ftp:21 SSH:22 Telnet:23 DNS:53 http:80 HTTP ...

最新文章

  1. Puppy Linux U盘 Linux
  2. 如何构建ASP.NET MVC4JQueryAJaxJSon示例
  3. 详解:设计模式之-适配器模式
  4. 向Docker容器中导入sql文件
  5. ASP.NET连接SQL、Access、Excel数据库(三)——工厂模式
  6. C#强化系列文章七:序列化和反序列化
  7. Android插件GsonFormat
  8. 前端中常用的PS操作
  9. 【视频】CCNA——小凡模拟器的简单介绍和使用
  10. java并发编程-CAS算法
  11. office2010 错误1706 解决办法
  12. Matlab更改工作路径的方法及思考
  13. [读书笔记]组件设计:补白[深入剖析ASP.NET组件设计]一书中HttpApplication对象创建的细节...
  14. js对金额数据添加最大金额单位【千、万、十万...】
  15. 【投屏】Scrcpy源码分析四(最终章 - Server篇)
  16. Unity API通读 CustomEditor
  17. 【BZOJ5020】【THUWC2017】在美妙的数学王国中畅游(Link-Cut Tree,组合数学)
  18. Server SQL 2008 练习
  19. 配置文件中连接数据库
  20. wifi路由器中的WPS功能

热门文章

  1. META-INF/MANIFEST.MF介绍 _
  2. 2022年PMI-ACP考试大纲是什么?快来看
  3. 算法笔记4.5.2二分扩展:凸多边形的外接圆之最大半径
  4. 最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)
  5. 科大星云诗社动态20210126
  6. 信必优荣膺 “中国*具影响力服务外包企业五十强(2019-2020)”
  7. Java 实现对象空属性转null
  8. 实现:您必须使用微信内置浏览器访问本页面! 的功能
  9. 蒙德里安森林算法_DP没入门就入土
  10. 单片机故障排除篇--如何判定是硬件问题还是软件问题?