在上一篇博文【什么是信息摘要】结尾我给出了一个结论:“看来单纯的信息摘要技术还不能保证信息的完整性,即不能确定信息是否被篡改”,由此并引出了“数字签名”的概念。上一篇博文的地址在下面,没看的小伙伴可以看一下(大概耗时4分钟)。

什么是信息摘要?_韦_恩的博客-CSDN博客信息摘要就是原数据通过某个算法生成的一个固定长度的单向Hash散列值(PS:常用来生成信息摘要的算法有MD5与SHA算法)。固定长度得意思就是不论原文内容多大,其生成的信息摘要都是固定长度的。单向的意思是过程不可逆,即只能通过原始数据生成Hash散列值,而Hash散列值无法生成原始数据。这是因为Hash生成过程会对原始数据造成破坏。因此信息摘要不能用来做加密。但是他是不是就一无是处了呢?并不是! 相信看过我本专题【RSA原理1】的同学都不会陌生上面的图片,该图片就体现了信息摘要的作用,即用来https://blog.csdn.net/qq_42539194/article/details/128212173

目录

1.数字签名为什么能有效的证明信息没有被篡改?

2.什么是数字签名?

3.数字签名还有什么用?

4.关于数字签名的奇怪问题


1.数字签名为什么能有效的证明信息没有被篡改?

在上一篇博文中讲到一个例子:

当甲向乙发送一个数据A的同时也发送这个数据生成的信息摘要a,当乙收到甲发送的数据A时,利用这个数据A自己再生成一个信息摘要b,随后将自己生成的信息摘要b与甲发送过来的信息摘要a进行对比,利用信息摘要的特点可知,若a=b完全一致就代表信息没有被篡改。

但是若丙在中间截获数据A的时候也截获到了信息摘要a,并将他俩一起篡改后(改为信息C与信息摘要c)发送给乙,乙拿着C自己生成信息摘要d,很明显c一定等于d。那么乙就无法判断甲发送的数据是否被篡改了。

那么数字签名是如何保证的呢?很简单,用到了 非对称加密思想。甲用自己的私钥对数据的A的信息摘要a进行加密得到a1(这个过程叫做数字签名),随后将数据A与a1发送给乙;乙收到后先对数据A进行hash计算得到信息摘要b,随后用甲的公钥对a1进行解密得到了原信息摘要a,此时a与b相等与否就准确的证明了信息是否被篡改(这个过程叫数字签名验证)。完美的解决了此前说的问题。

试想一下,中间出现了丙截获了信息A与加密后的信息摘要a1,同时也获得了甲的公钥。于是乎丙把信息A改成了信息C,也生成了新的信息摘要c,但是因为丙没有甲的私钥,无法对自己生成的信息摘要c模拟甲进行数字签名。假设丙用自己的私钥对c进行数字签名。那由于公钥私钥的严格对应关系,乙收到信息后是无法用甲的公钥解密的,很明显就知道了信息被篡改了!

2.什么是数字签名?

通过1的例子我想大家已经知道了,所谓“数字签名”就是用信息发送者自己的私钥对信息摘要进行加密,对应的也就衍生出了“数字签名验证”,即接收者用发送者的公钥对加密数字签名的解密并得到原始信息摘要的过程。如图所示:

3.数字签名还有什么用?

身份认证:在数字签名中,用户的公钥是其身份的标志,当使用私钥签名时,如果接收方或验证方用其公钥进行验证并获通过,那么可以肯定,签名人就是拥有私钥的那个人,因为私钥只有签名人知道。

防止抵赖:数字签名即可以作为身份认证的依据,也可以作为签名者签名操作的证据。要防止接收者抵赖,可以在数字签名系统中要求接收者返回一个自己签名的表示收到的报文,给发送者或受信任第三方。如果接收者不返回任何消息,此次通信可终止或重新开始,签名方也没有任何损失,由此双方均不可抵赖。

防重放攻击:重放攻击(Replay Attacks),是计算机世界黑客常用的攻击方式,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。在数字签名中,如果采用了对签名报文加盖时戳等或添加流水号等技术,就可以有效防止重放攻击。

多重加密:手写签字的文件一旦丢失,文件信息就极可能泄露,但数字签名可以加密要签名的消息,只是要稍加改动。即用接收方的公钥加密,即可保证信息机密性。(数字信封)

4.关于数字签名的奇怪问题

问1:A向B发送消息,B如何知道消息是谁发送的?B知道了是A发送的消息,但是A抵赖怎么办?

为了防止这个问题的发生,A发送信息给B之前,会先用自己的私钥对信息加密,之后发送给B,B拿到消息后,使用A的公钥即可解密,这就证明了消息是A发送的。换句话说,B用谁的公钥解密成功了,就证明了消息是谁发送的。

问2:既然用的还是非对称加密技术,那为什么加密解密要改个名字叫数字签名与数字验证呢?

因为数字签名的发送的东西并不是保密的,网络中任何人都可以利用公钥进行解密。他只是确定身份用的。而传统的非对称加密往往传输的是保密的东西,所以叫加密解密更贴切。

问3:为什么是对信息摘要进行非对称加密解密,而不是对原始数据进行加密解密呢?

因为非对称加密解密技术并不适合对大量信息使用,因为其密钥太长、加密效率太低。而常用的信息摘要生成算法如MD5、SHA生成的散列值分别是128与160位的信息摘要,其体量较小,故对信息摘要进行非对称加密是合理的。

什么是数字签名?(数字签名与信息摘要又有什么关系?)相关推荐

  1. 密码学专题 信息摘要和数字签名指令

    信息摘要 区别于对称加密和非对称加密,信息摘要算数是一种不可逆的操作,无论输入数据的大小输出的数据长度是固定的 信息摘要算数对输入很敏感,即使数据变化很细微,输出的结果会出现很大的差异 从不同输入得到 ...

  2. 加密相关(对称加密、非对称加密、信息摘要、数字签名、CA数字证书)

    1.对称加密: 说明:加密的密钥和解密的密钥相同:效率快:适合加密大信息量 常见算法:DES.3DES.AES.RC-5 块加密: 流加密:数据量大时效率高 2.非对称加密: 说明:加密的密钥和解密的 ...

  3. 解决win10 文件属性没有数字签名及详细信息等选项卡

    今天某位网友电脑上遇到了这个问题,exe文件属性只有常规.兼容.以前版本三个选项卡,数字签名和详细信息选项卡都没有了.网上搜索了下,暂时没找到解决方法. 用Procmon软件监控打开exe文件属性过程 ...

  4. 网络安全-安全散列函数,信息摘要SHA-1,MD5原理

    -----------------------------------------------欢迎查看网络安全连载博客----------------------------------- [网络安全 ...

  5. 信息摘要技术及算法介绍

    数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名.数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密. 数据摘要算法也被称为哈希(Hash)算法 ...

  6. STM32F1做RSA,AES数据加解密,MD5信息摘要处理

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_31878855/article/ ...

  7. 加密解密、信息摘要常用算法收集~~

    MD5算法研究  综述 md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rs ...

  8. MD5信息摘要-文件的独一无二的“数字指纹”

    一致性验证 MD5的 典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改.比如,在UNⅨ下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的 ...

  9. 信息安全实验:信息摘要函数的设计与验证

    一.实验目的 信息摘要函数(Hash函数)的设计与性质验证 二.实验步骤 1.设计符合原理要求的信息摘要函数H(m). 2.对于如下明文信息m: Once upon a time, there liv ...

最新文章

  1. CentOS下编译安装python包管理安装工具pip教程
  2. shell命令之(一) 初探grep
  3. MySQL如何修改密码
  4. 一款基于jquery的下拉点击改变背景图片
  5. NSPredicate的用法、数组去重、比较...
  6. 杜教筛模板(P4213 【模板】杜教筛(Sum))
  7. stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)
  8. 2018 ios开发者账号同意新协议加联系电话教程
  9. CVPR2021 双图层实例分割,大幅提升遮挡处理性能
  10. Docker图形化工具Portainer
  11. TCP协议的部分解析(2)
  12. 7. Linux 环境
  13. 有了这4款工具,再也不怕写SQL了,让你写出一手优雅的SQL
  14. java 读写acr122u_使用ACR122U NFC读卡器对M1卡进行读写操作(可以读写中文)
  15. 超低成本的2.4G超远距离无线遥控、无线传输方案随笔
  16. 企业微信机器人python脚本执行报错-‘errcode‘: 40008, ‘errmsg‘: ‘Warning: wrong json format. invalid message type
  17. win7本地登录计算机,win7系统绑定微软账户到本地电脑上的具体办法
  18. aspx 微型_如何使用微型可编程机器人向孩子介绍编码
  19. 消息重放攻击以及预防方法
  20. pycharm中关于python虚拟环境的配置

热门文章

  1. html5 menu下拉,jquery下拉菜单插件SelectMenu
  2. VS编写代码的四种注释(C#),让编程轻而易举
  3. 精雕细琢——全方位解析单例模式
  4. 通过嘀咕同步Twitter信息
  5. 如何在 Ubuntu 上安装 Docker Desktop ?
  6. 【多线程-线程状态、优先级、守护线程】
  7. 井松智能通过注册:年营收5.39亿 姚志坚夫妇为实控人
  8. 数据报片分片和片偏移
  9. android+文件大小格式化,android 获取本地缓存文件大小,删除功能
  10. 腾讯视频嵌入网页的方法