信息摘要、数字签名

基于上篇文章,我们介绍了的非对称密钥算法:

http://blog.csdn.net/u014419512/article/details/26290821

现在我们可以继续我们的场景:

假设有一天,Alice收到了一份署名为Bob的文件。Alice希望能够确认这份文件一定是来自Bob;另外Alice希望能够确信,这份文件在传输过程中并没有被它人篡改。那么基于非对称密钥算法我们应该怎么做?

确认文件一定来自于Bob,其实就是Bob无法否认自己发送过这份文件。信息安全中称作不可抵赖性;另一方面,确信文件并没有中途被篡改,则称作不可篡改性

在非对称密钥算法中提到,公钥加密的内容使用私钥可以解密。同样的,基于私钥加密的内容使用公钥也可以解密,两者一一对应。因此我们可以很容易想到。如果Bob利用自己手里的私钥对文件进行加密后,传输给Alice。Alice再通过公钥库中Bob的公钥进行解密,则可以证明文件一定是由Bob发出(由于只有Bob持有私钥)。另外,因为传输的是密文,如果能够使用公钥解密,同时也证明了文件并没有中途被篡改。这样的做法其实已经同时满足了不可抵赖性和不可篡改性。

然而,由于传输的文件可能很大,为了证明文件的不可抵赖性和不可篡改性,需要对整个文件进行加密,由于非对称算法效率较低,这样做的代价太大。因此常规的做法是用到信息摘要和数字签名的方式。

所谓信息摘要,其实就是某种HASH算法。将信息明文转化为固定长度的字符,它具有如下特点:

①无论输入的消息有多长,计算出来的消息摘要的长度总是固定的;

②用相同的摘要算法对相同的消息求两次摘要,其结果必然相同;

③一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也几乎不可能相同;

④消息摘要函数是单向函数,即只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息;

⑤好的摘要算法,没有人能从中找到“碰撞”,虽然“碰撞”是肯定存在的。即对于给定的一个摘要,不可能找到一条信息使其摘要正好是给定的。或者说,无法找到两条消息,是它们的摘要相同。

一般的,我们将信息的摘要也称作信息的指纹。如同指纹的含义,相同的信息一定会得相同的指纹,而仅通过指纹又无法还原出原始信息。目前主要的摘要算法有MD5SHA1

当有了信息摘要技术以后,基于Bob向Alice发送文件的场景,我们可以进行如下的操作:

第一步:

① Bob将原始的信息进行一次信息摘要算法,得到原始信息的摘要值;

② Bob使用自己的私钥,对该摘要值进行加密。得到信息摘要的密文;

③ Bob将原始文件和摘要值的密文一起发送给Alice。

④ 一般的,我们将原始文件和摘要密文称作Bob对原始文件的签名结果。

第二步:

① 当Alice接收到Bob传输的信息(原始文件,信息摘要密文)后,使用Bob的公钥将摘要密文解密,得到信息摘要明文;

② 使用信息摘要算法,取原文的摘要信息,获取原始文件摘要信息;

③ Alice比较解密后的摘要信息和取得的摘要信息。如果相同,则可以证明文件一定由Bob发送,并且中途并没有经过任何篡改。一般将这个过程称作验签。

所谓数字签名,就是对原始文件的“指纹”进行了私钥加密。这样,即可保证文件的特征(摘要值)一定经过了私钥的加密。同时由于信息摘要的长度普遍不长(MD5为128位,SHA1主要为256位),也并没有带来太大的开销。

如同对称密钥算法,在大部分开发语言中,基于非对称算法的数字签名,数字加密算法。也都进行了一定的封装。如下链接就比较详细的描述了基于JCE如何实现数字签名、加密、验证等:http://blog.csdn.net/centralperk/article/details/8538697

数字签名与数字证书技术简介(二)相关推荐

  1. 数字签名与数字证书技术简介(一)

    数字签名.数字证书等技术,是现代信息安全的核心技术,可谓使用面十分广泛.其基本理论本身并不复杂,本文希望通过深入浅出的介绍,能够让大家有一些基本了解. 对称加密.非对称加密 让我们通过一个例子开始:我 ...

  2. 数字签名与数字证书技术简介(三)

    数字证书 前两篇文章,分别介绍了非对称加密算法和数字签名技术: http://blog.csdn.net/u014419512/article/details/26290821 http://blog ...

  3. 对称加密、非对称加密、RSA、消息摘要、数字签名、数字证书与 HTTPS 简介

    文章目录 1.加密算法简介 1.1 对称加密(Symmetric Key Algorithms) 1.2 非对称加密(Asymmetric Key Algorithms) 1.3 非对称加密 RSA ...

  4. PKI(公、私钥加密,数字签名、数字证书)技术理解

    PKI(公.私钥加密,数字签名.数字证书) 1.PKI概述 名称:Public Key Infrastructure  公钥基础设施 作用:通过加密技术和数字签名保证信息的安全 组成:公钥加密技术.数 ...

  5. 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

    网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...

  6. 一文了解数字签名、数字证书、自签证书

    参考 关于自签SSL证书的一些小知识汇总 对于ssl中的pem文件和key 文件的理解 openssl 生成证书 ca.pem client.pem server.pem SSL:证书文件 数字证书原 ...

  7. 非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他

    本文原文连接:http://blog.csdn.net/bluishglc/article/details/7585965 转载请注明出处! 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行 ...

  8. 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)

    本文原文连接:http://blog.csdn.net/bluishglc/article/details/7585965 转载请注明出处! 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行 ...

  9. 网络安全技术——数字证书技术原理

    点击上方"蓝字"关注我们吧 在上节<网络安全技术--加密技术.数字签名技术>中研究了数据通信中的加密和签名技术,在非对称加密体系中,A用户拿到B用户的公钥后便可以用这个 ...

最新文章

  1. 一文读懂神经网络(附解读案例)
  2. 如何不停机迁移一个mysql INNODB 数据库?
  3. cmake使用教程(一)-起步
  4. [我的1024开源程序]100元写的单词本说明书
  5. iOS中XML解析 (一) TBXML (实例:打印xml内容及存储到数组)
  6. 以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
  7. 杭州市政府数据容灾集中备份业务整体外包(2009)项目招标公告
  8. cisco路由器 三层交换机简单环境配置实例(图)
  9. 关于web应用程序的安全验证
  10. mysql 5.7多层级json查询_MySql5.7 json查询
  11. SQL教程(从入门到精通)
  12. Fatal error: Class 'GearmanClient' not found解决方法
  13. iostream和stdafx.h
  14. 零基础入门学习汇编语言~基础知识~机器语言与汇编语言的产生及组成
  15. html中title属性和alt属性的区别
  16. ps怎么加底部阴影_ps物体底部阴影怎么做阴影有立体感
  17. 5学工坊整理|关于大数据发展趋势
  18. vue中detele删除对象属性时视图不能响应更新 - 解决办法
  19. CRM 客户管理系统(SpringBoot+MyBatis)
  20. 我们的征途是星辰大海

热门文章

  1. Activity onDestroy() 回调缓慢问题分析及完美解决方案
  2. Mybatis的bind标签
  3. 最新H5游戏小游戏集成系统400多款趣味游戏
  4. linux fping命令使用
  5. js常用效果代码封装
  6. node.js卸载与重装
  7. poi对excel添加批注
  8. ikbc机械键盘打字出现重复_机械键盘按键 按一次触发多次
  9. edge浏览器如何把网页放到桌面_win10系统怎么把Edge浏览器放到桌面?Edge怎么创建桌面快捷方式...
  10. 查询起止时间为同一天,需要查到当天数据