数字签名的主要功能
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
数字签名的过程
发送报文时,发送方用一个HASH从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。
数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。发送方用自己的密钥对报文X进行Encrypt(编码)运算,生成不可读取的密文Esx,然后将Esx传送给接收方,接收方为了核实签名,用发送方的公用密钥进行Decrypt(解码)运算,还原报文。
数字签名的实现及应用
数字签名的实现方法数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。
普通的数字签名算法包括三种算法:
1.密码生成算法2.标记算法3.验证算法
数字签名的应用举例
假如现在 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:
1.Alice 准备好要传送的数字信息(明文);
2.Alice 对数字信息进行哈希运算,得到一个信息摘要;
3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上;
4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;
5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;
6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥;
7.Bob 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃;
8.Bob 用 Alice 的公钥对 Alice 的数字签名进行解密,得到信息摘要;
9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;
10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。

数字签名功能及过程以及实例相关推荐

  1. vue实战记录(二)- vue实现购物车功能之创建vue实例

    vue实战,一步步实现vue购物车功能的过程记录,课程与素材来自慕课网,自己搭建了express本地服务器来请求数据 作者:狐狸家的鱼 本文链接:vue实战-实现购物车功能(二) GitHub:sue ...

  2. PHP中的常见魔术方法功能作用及用法实例

    这篇文章主要介绍了PHP中的常见魔术方法功能作用及用法实例,本文讲解了构造函数和析构函数__construct()和__desctruct()以及属性重载(Property Overloading)_ ...

  3. Excel2000的数字签名功能

    自从Excel引入了宏,让广大Excel用户从许许多多日常繁琐的重复劳动中解脱了出来,但随之而来的问题是用户将面临宏病毒的干扰.现在Microsoft Office 2000 利用MicrosoftA ...

  4. 高频面试题3 类初始化过程与实例初始化

    类初始化过程 1,一个类要创建实例,需要先加载并初始化该类.main方法所在的类需要先加载和初始化 2,一个子类要初始化需要先初始化父类 3,一个类初始化就是执行<clinit>()方法& ...

  5. 热电偶校验仪_热电偶校验方法_南昌手持热工校验仪,杭州全功能热工过程校验仪厂家...

    中创为您详细解读hzzc6手持热工校验仪,全功能热工过程校验仪厂家的详情,磁翻板液位计的优势是其它液位计无法超越的 1.磁翻板液位计指示器安装在桶槽外侧或上面,用以指示和控制桶槽内的液位,封闭形式可根 ...

  6. OBPS开发平台——导入功能整体过程

    OBPS开发平台--导入功能导入功能整体过程: 首先我们来理清思路:web目录下有几个文件夹是我们要记住的 1.bin目录------下面大多是扯淡,就是dll就行了 bin 目录是 Web 应用程序 ...

  7. JVM原理系列--类加载过程(有实例)

    原文网址:JVM原理系列--类加载过程(有实例)_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java的类加载流程,有实例. 类加载过程 流程概述 加载=> 链接(验证+准备+解析)=> ...

  8. 西门子for循环例子_西门子S7-200 SMART PLC功能指令学习及实例分析

    原标题:西门子S7-200 SMART PLC功能指令学习及实例分析 一.定时器 1.S7-200 SMART CPU提供了接通延时定时器.(TON).保持型接通延时定时器(TONR).断开延时定时器 ...

  9. 对图片进行涂鸦并保存的的功能实现过程

    一.功能实现过程难点及解决 1.需求 能够对图片进行圈画,并自动保存 2.技术思路方向: (1)企业微信和微信api(第一反应,现成的api) 结果:目前企业微信api和微信api均无此功能,网上资源 ...

最新文章

  1. Self Ogannizing Maps(SOM)自组织映射
  2. hadoop 2.7.3
  3. amd显卡风扇调节_非公版才是真爱 讯景XFX RX6800 XT海外版显卡评测
  4. ubuntu20.04运行愤怒的小鸟
  5. PyTorch出现错误“RuntimeError: Found dtype Double but expected Float”
  6. java完全自学手册txt下载
  7. 出差沈阳记之初来乍到
  8. 电脑硬件升级完全解决方案
  9. WLAN--什么是信道(Channel)
  10. Odoo + 微信小程序快速搭建商城
  11. 顾客点餐系统(1)-------整体项目目标+用户数据表的操作
  12. centos7限制cpu使用_CentOS7中CPU频率调整问题
  13. 分享一个Maven依赖查询网址
  14. win7一体机分区不见的文件如何恢复
  15. IIS7+PHP安装教程
  16. Windows RT复活无望,Win10桌面系统ARM版“消失”
  17. 论文阅读笔记《Sim-to-real learning for bipedal locomotion under unsensed dynamic loads》
  18. System.setOut()和System.setIn()
  19. Linux more命令:查看文件
  20. java怎么爬网易云_Python爬虫爬取网易云的音乐

热门文章

  1. react--无状态组件和有状态组件
  2. 【花雕动手做】有趣好玩的音乐可视化系列项目(30)--P6 LED单元板
  3. 2019最新爱前端课程全套 初级+中级+高级
  4. 如何让公司变得更美好
  5. (ε,δ)方法与阿基米德公理
  6. 第015封“情书”泥什么意思?houdini Mandelbrot曼德布罗特集合)
  7. Solana 区块链平台疑遭供应链攻击,价值数百万美元的密币遭洗劫
  8. 失业之后,他选择下海经商从事物资回收行业,将生意做到了国外
  9. html+css样式:图片切换-----立体旋转
  10. Python 对象的基石 PyObject