什么是数字签名(数字签名的原理介绍)

来源:法大大发布时间:2022-07-11 09:35:39

什么是数字签名

数字签名(Digital Signature),一般是附加在某一电子文档中的一组特定的符号或代码,用于表示签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造。因此,基于密码学的数字签名有着如下的优势:

·消息源认证性:数字签名可以表示签发者的身份,也就是说具有消息源认证性。

·不可否认性:数字签名生成时需要输入签名者私钥。换句话说,数字签名对应唯一签名主体,并且签名者需要承担不可推卸的责任,即数字签名可以实现不可否认性。

·消息完整性:数字签名可以检查电子文档在传输过程中是否被篡改或伪造,即保障消息完整性。

什么是数字签名(数字签名的原理介绍)

数字签名和手写签名有许多不同之处,主要体现在:

首先,传统的手写签名与对应文件通过物理(例如纸张)绑定,而数字信息没有确定的物理载体,所以需要使用算法将签名与消息绑定在一起,可认证。

其次,在签名验证的方法上,传统的手写签名是由消息接收者用眼分辨签名的特征是否相符,结果受验证者主观思想影响,而数字信息通常由电子设备处理,故而签名验证结果依赖于数学算法,较客观。

最后,传统手写签名复制(字体模仿)相对数字信息的复制(粘贴)来说较为困难,因此数字签名需要有更好的方法实现签名的不可重用,防伪造。

数字签名的原理介绍

从上述定义表明,一个完整的数字签名方案由三部分组成:密钥生成算法、签名算法和验证算法。

密钥生成算法:是根据系统参数为签名者生成公钥和私钥,并用于加解密;

签名算法:是产生数字签名的某种算法,一般是使用签名主体的私钥,对数据摘要进行运算,生成数字签名;

验证算法则是检验一个数字签名是否有效(即是否由指定实体生成)的某种算法,基于公钥进行数字签名验证。

什么是数字签名(数字签名的原理介绍)

上述图示便描述了数字签名验证的完整过程:

发送方A将消息用Hash算法产生一个消息摘要,这个消息摘要有两个重要特性:抗碰撞性(指找到散列值相同的两条不同的消息是非常困难的)和摘要长度固定(MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节),使得任何消息产生的签名值长度是一样的。

发送方A产生消息摘要后,用自己的私钥对摘要进行加密,这个加密后的消息摘要就是数字签名,随后发送方A将消息与签名发给接受方B。在这里有人会疑问,为什么对是对消息摘要进行加密签名?对于较大文件而言,消息摘要即可将消息转换成简短的信息摘要,用以验证信息的完整性,还可压缩信息长度提高签名效率。

B接受到消息及其签名后,用发送方A的公钥解密这个签名,获得由发送A生成的消息摘要,接着用发送A所用的Hash算法重新生成所获得的消息的摘要,并对比这两个摘要。如果相同,说明这个签名是发送A针对这个消息的有效签名;如果不相同,则签名无效。

以上就是“数字签名”的相关介绍,想要设计数字签名解决方案的小伙伴,可以联系在线客服或者在下方预约行业顾问。