400-900-6808
登录
当前位置: 首页 > 资讯中心 > 数字签名到底是怎么一回事

数字签名到底是怎么一回事

数字签名到底是怎么一回事

数字签名作为公钥基础结构的基础部分,在了解它的技术原理之前,我们先要明白与之密切相关的算法:Hash 算法。


Hash 算法是一种散列算法,又叫密码杂凑算法。它具有以下几种的特性。


1,容易压缩,能够很容易地将任何长度的数据映射到固定长度的输出。


2,单向密码体制,根据源数据计算一个哈希值不难,难的是要根据计算出的结果得出源数据,这基本不可能。


3,灵敏性高,对输入数据的变化很灵敏,就算是有一点小小的变化,输出来的结果差异性也会较大。


4,抗碰撞,不同的数据块的hash值相同的可能性很小,就算是一个数据块,找到和它 hash 值相同的数据块也较为困难。


因为这些特性,它适合用来做数据完整性和文件完整性的校验,sha1,sha256,sha384 等是目前应用较为广泛的 Hash 算法。


接下来,让我们逐步了解一下数字签名的过程。


1,对要签名的文件进行 Hash 计算。


2,对文件的 Hash 值用私钥进行签名。


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


简而言之就是先对文档进行 Hash 值计算,然后签名者用自己的私钥对该 Hash 值签名,使用的时候是将原文件和签名数据一起发送。在这里大家要注意的是,数字签名并不是对整个文件签名,而是对文件的 Hash 值进行签名,这样既节约了资源又提高了效率。


下面,小编再来跟大家讨论,如何读取和认证签名。


上述文章中我们知道了创建数字签名的过程,接着就是数字签名验证,主要过程大致如下。


1,得到原文件进行 Hash 计算的 Hash 值。


2,从签名数据中用签名的公钥计算出签名数据的 Hash 值。


3,将上述两种 Hash 值进行对比,对比结果一致则验证通过,反之则失败。


在互联网时代,随着互联网技术的日新月异,数字签名的应用越来越广泛,通过数字签名,可以防止伪造和假冒签名,还可以保护签名文件的完整性。另外,数字签名既可以成为身份识别的依据,又是签名者进行签名操作的有效证据,防止签名方对其产生的行为进行抵赖。