数字签名技术的基本原理,数字签名技术的实现步骤

首页 > 教育 > 作者:YD1662024-05-02 12:59:33

上期我们了解了数字签名的三个等级类型以及数字签名在商业、教育、医疗和政府等众多领域的应用,所以这期我们要接着深入了解,数字证书的技术原理。


数字签名是公钥基础结构的基础部分。当我们说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、除了签名外,还可以添加时间戳以指示签名时间。

数字签名技术的基本原理,数字签名技术的实现步骤(1)

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

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

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

工作原理:验证数字签名

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

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

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

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

数字签名技术的基本原理,数字签名技术的实现步骤(2)

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

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


本文技术文案指导:探花郎

高级软件工程师,从事PKI相关技术研发工作多年,熟悉Linux网络编程,擅长C/C 语言。现任职沃通CA,负责国密ssl相关库的开发工作。

本文为沃通原创,转载请注明。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.