数字签名机制
数字签名是公钥基础设施的基础部分。 说到PKI,一般会想到数字证书、证书颁发机构(CA )、银行使用的密钥、SSL通信等。
数字证书一般成对存在。 包含证书的公钥和与证书对应的私钥。 公钥本身具有一定的识别功能,如ssl证书的域名信息和邮件客户端证书的邮件地址。 在数字证书中的应用广泛,但其基本原理简单来说,公钥用于加密,私钥用于解密。 私钥用于签名,公钥用于验证签名。
在中,在了解数字签名的技术原理之前,必须了解与数字签名密切相关的算法——混列算法。
hash算法是一种散列(加密散列)算法。 简而言之,该算法有几个明显的特性:
1 .容易压缩,可以容易地将任意长度的数据映射到固定长度的输出上。
2 .单向度。 是单向加密方案,很容易根据源数据计算哈希值,但不能从计算结果导出源数据。
3 .高灵敏度是指对输入数据的变化非常敏感,即使微小的变化也会输出差异很大的结果。
4 .抗冲突性,对于不同的数据块,其混列值相同的可能性极低; 对于给定的数据块,找到与其哈希值相同的数据块非常困难。
由于具有这些特性,因此非常适合于数据完整性和文件完整性检查。 目前广泛使用的散列算法主要有sha1、sha256、sha384等,但我国的秘密支持SM3算法,其安全性也在增加。 几年前谷歌进行SHA-1碰撞实验,是为了验证安全性。 现在,随着科学技术的迅速发展和计算能力的提高,sha1也将退出历史舞台。
一、工作原理:制作数字签名
现在,让我们一点一点地看看数字签名的过程。
1、对要签名的文件进行混列核算。
2、用私钥签名文件哈希值。
3、除签名外,还可以添加时间戳指示签名时间。
这是数字签名的主要过程,通常首先对文档进行散列处理,签名者用自己的私钥对文档生成的散列值签名,使用时将原始文档和签名数据一起发送。
值得注意的是,数字签名不是在整个文件上签名,而是在文件的哈希值上签名。 这不仅节约了资源,而且提高了效率。
是的,接下来讨论签名读取和认证方法。
二、工作原理:阅读数字签名
我们已经知道制作数字签名的过程,随着来验证数字签名。 主要步骤如下:
1、原文件进行混列计算得到混列值。
2、根据签名数据计算签名数据中的哈希值。
3、将步骤1中得到的混列值与步骤2中得到的混列值进行比较,比较结果一致则通过验证,反之验证失败。
三、为什么我们要对所有内容做数字签名? (数字签名的优点)
防伪:数字签名中的私钥是唯一的,除签名人外,不能伪造或伪造签名。
完整性:由于数字签名包含哈希算法,对已签名文档的未经授权的更改很快就会暴露出来。
身份证颁发机构可以识别和验证证书所有者的身份,可以使用受信任的CA机构颁发的证书作为身份证。
知道文档签名的时间非常重要,数字签名可以有时间戳,以指示签名的创建时间。
防止否认:数字签名不仅是身份证明的依据,也是签名人进行签名操作的有效证据,防止签名人对其行为进行否认。
除了要点之外,数字签名的应用越来越广泛,目前甚至电子发票和电子合同都参与了数字签名的应用,因此其重要性可想而知。