数字签名的工作原理

article/2025/10/30 11:58:46

数字签名是公钥基础结构的基础部分。当我们说PKI时,一般想到的是数字证书,证书颁发机构(CA),银行使用的Key,以及SSL通信等等。

数字证书,一般都是成对存在的,包含证书的公钥,和证书对应的私钥,公钥本身有一定的身份标识功能(如ssl证书中的域名信息,邮件客户端证书的邮箱地址等),对于数字证书的应用比较广泛,但其基本原理简单来说就是公钥用来加密,私钥用来解密。私钥用来签名,公钥用来验证签名。

那么,在我们了解数字签名的技术原理之前,我们先要明白一个和数字签名密切相关的算法:Hash算法。

hash算法是一种散列(密码杂凑)算法。简单来说这个算法有几个很显著的特性:

1.易压缩性,可以很容易的将任何长度的数据映射到固定长度的输出。

2.单向性,它是一种单向密码体制,根据源数据计算一个哈希值很容易,但是要根据计算出的结果得出源数据是不可能的。

3.高灵敏性,就是对于输入数据的变化非常灵敏,即使很小的变化都会输出差异性很大的结果。

4.抗碰撞性,对于不同的数据块,其hash值相同的可能性极小;对于一个指定的数据块,找到和它hash值相同的数据块极为困难。

由于具有这些特性,所以它非常适合用来做数据完整性和文件完整性的校验。目前应用较为广泛的哈希算法主要有sha1,sha256,sha384等,而我们国密与之相对应的是SM3算法,其安全性也是递增的。几年前Google就对SHA-1碰撞实验,就是为了验证其安全性。现在随着科技的飞速的发展和计算能力的提升,sha1也即将要退出历史舞台。

一、工作原理:创建数字签名

现在,让我们逐步了解一下数字签名的过程:

1、将要签名的文件进行hash计算。

2、用私钥将文件的hash值进行签名。

3、除了签名外,还可以添加时间戳以指示签名时间。

这个就是数字签名的主要过程,总的来说就是先对文档进行哈希处理,然后签名者用自己的私钥对文件生成的哈希值进行签名,使用时将原文件和签名数据一起发送。

值得注意的是,数字签名并没有对整个文件进行签名,而是对文件的hash值进行了签名。这样的不仅节约了资源而且提高了效率。

好的,接下来我们讨论一下如何读取和认证签名。

二、工作原理:阅读数字签名

我们已经知道了创建数字签名的过程,随着要来进行数字签名验证。主要过程有以下步骤:

1、将原文件进行hash计算得到hash值。

2、将签名的公钥从签名数据中计算出签名数据中的hash值。

3、将步骤1中得到的hash值和步骤2得到的hash值进行对比,如果对比结果一致则验证通过,反之验证失败。

三、为什么我们要对所有内容进行数字签名?(数字签名的优势)

防伪造:数字签名中的私钥具有唯一性,除签名者之外都不能伪造签名,并防止被假冒。

完整性:由于数字签名中包含hash算法,对签名文档的任何未经授权的修改将立即被显见。

身份标识:证书颁发机构可以对证书的持有者的身份进行识别和验证,可信的CA机构签发的证书可以用于做身份标识。

时间戳:知道文档签署的时间是非常重要的,数字签名可以盖上指示创建签名时间的时间戳。

防抵赖:数字签名不仅可以成为身份识别的依据,同时它也是签名者进行签名操作的有效证据,防止签名方对其产生的行为进行抵赖。

除了要点之外,数字签名的应用会越来越广泛,如今连电子发票和电子合同都加入了数字签名的应用行列,所以它的重要性可以预见。


http://chatgpt.dhexx.cn/article/Wd9qvgUr.shtml

相关文章

网络安全之数据加密和数字签名技术

一、计算机网络面临的安全性威胁和解决办法 1、计算机网络上的通信面临以下两大类威胁:被动攻击和主动攻击,如下图所示: 2、解决办法,由上图可知: 对于主动攻击,可以采取适当措施加以检测。 对于被动攻击…

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

参考 关于自签SSL证书的一些小知识汇总 对于ssl中的pem文件和key 文件的理解 openssl 生成证书 ca.pem client.pem server.pem SSL:证书文件 数字证书原理 数字签名是什么? 数字签名和数字证书的原理解读(图文) 数字签名和数字证书有哪些区别与联…

数字签名算法实现

一、实验目的   掌握利用Hash算法对要传送信息提取消息摘要的方法,理解数字签名的作用及数字签名算法的工作原理,了解多种非对称加密算法都可以用来设计数字签名算法。综合运用前面实验掌握的知识和技术,利用C语言或Java语言设计并实现数字…

数字签名——

数字签名和公钥加密的区别 公钥加密: Alice采用Bob的公钥对消息加密,传给Bob,Bob用自己的私钥解密 数字签名: Alice采用自己的私钥对消息m签名,Alice将消息m和签名发送给Bob收到m和签名后,Bob用Alice的公钥来验证签名的有效性 数…

安全技术 数字签名

(一)介绍 数字签名是一种将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。 通过消息认证码,我们可以识别消息是否被篡改或者发送者身份是否被伪装&#xf…

数字签名技术简介

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名是非对称密钥加密技术与数字摘要技术的应用数字签名机制作为保障网络信息安全的…

数字签名技术

目录 一、数字签名 二、数字签名技术 2.1、基于哈希算法的数字签名与验证 2.2、基于非对称密钥加密体制的数字签名与验证 三、数字签名的作用 一、数字签名 数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串&…

kettle spoon双击打开无反应

环境 windows 10、kettle 8.2、JDK 1.8 、CPU:I7-8565U、内存:16GB kettle的启动文件spoon双击之后(也试过以管理员身份运行)无反应 一、注册表修复 这个问题在网上各种搜索,查到的资料都是修改spoon里的Xms、Xmx、…

spoon工具的一些小细节问题

version7.1 1.输出乱码问题 (1)转换中的字段选择可对字段的编码做选择(此方法输出到excel可用) (2)数据库输出设置编码——>编辑——>选项,然后添加characterEncoding参数,值…

Kettle工具——Spoon、Kitchen、Pan、Carte

目录 1. Spoon 2. Kitchen和Pan (1)命令行参数 (2)例子 3. Carte Kettle里有不同的工具,用于ETL的不同阶段。主要工具如下: Spoon:图形化工具,用于快速设计和维护复杂的ETL工作…

kettle Spoon.bat启动问题

问题 启动Spoon.bat报错 解决方法 一、首先查看本机安装的jdk版本 在cmd命令窗口输入:java -version 能得到版本即为安装成功(需要配置环境) 一般为1.8,如果版本过高也会导致运行kettle出错 二、尝试修改Spoon.bat中的内存设…

kettle打开spoon.bat后无反应

主要两点 1.配置环境变量 、 2.修改spoon.bat 3.删掉 kettle根目录下E:\pdi-ce-7.1.0.0-12\data-integration\.kettle\db.cache-7.1.0-stable , 删掉db.cache-7.1.0-stable 文件 ; 以及 C:\Users\Administrator\.kettle\db.cache-7.1.0-stable , …

spoon.bat打不开或者打开闪退 | 解决办法

1.查看jdk版本,这里jdk必须为1.8及以上,强烈推荐使用jdk1.8,因为jdk1.9和jdk10对于spoon来说都不太稳定,因此最好使用jdk1.8; 查看jdk版本方法:winR再输入cmd然后按回车进入终端界面。 然后在终端输入&…

kettle的图形工具(Spoon)简单介绍

kettle(ETL)的简单使用 最近刚接手一个新项目,接触了一个叫kettle的工具,这玩意可以用在数据同步,数据清洗,跨数据源等问题,而且不需要写代码,简单易懂。 以下来源百度百科&#xf…

Spoon系列-概要

Spoon系列-概要 概要相关资源主要功能可构建 AST(Abstract Syntax Tree)静态代码分析(Static Code Analysis) 代码重写转换(Transform) 概要 可对Java 源代码进行分析,重写,转换的开源工具。支持Java13。 相关资源 Source&…

Spoon图形操作

Spoon图形操作 一、 Kettle的导入导出1.1 csv、txt(02、03)1.2 xlsx(Excel)(04)1.3 XML(05)1.4 json(06)1.5 SQL1.5.1 MySQL基础语法1.5.2 Spoon中的数据库操作(08) 1.6 CDC操作(Change Data Capture)(09、10)1.6.1 基于时间戳的CDC1.6.2 基于自增序列的CDC数据导入1.6.3 基于触…

kettle Spoon 的简单使用

Spoon分享 Kettle Spoon简介 ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,了解并掌握一种e…

基于kettle部署图形化界面(spoon)

最近使用kettle部署windows,mac、linux服务遇到的坑做一个总结。 1、mac、linux部署: 1⃣️拉取docker镜像 docker pull hiromuhota/webspoon 2⃣️创建并运行docker容器 docker run -d -p 8080:8080 hiromuhota/webspoon --name webspoon --restar…

数据导入与预处理——1.初步熟悉kettle-Spoon

文章目录 数据文件1.导入2.导出3.分发与复制 提示:以下是本篇文章正文内容,为初步使用spoon软件进行数据的导入导出步骤。 数据文件 1.导入 数据文件的导入 首先建立csv文件格式如下: 打开kettle新建转换: 从输入中找到对应的…

kettle运行spoon.sh启动图形化界面报错处理

一、问题描述: 安装kettle成功后运行spoon.sh显示如下报错: 二、原因分析: 没有安装Xmanager 三、解决方案: 1.下载Xmanager软件,安装教程参考 Xmanager 6标准版详细安装教程_小祥V5的博客-CSDN博客_xmanager安装教程…