什么是数字签名(什么是数字签名?作用是什么?)

什么是数字签名(什么是数字签名?作用是什么?)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

什么是数字签名(什么是数字签名?作用是什么?)

免责声明:本文旨在传递更多市场信息。不构成任何投资建议。文章仅代表作者观点。不代表火星财经官方立场。

小编:记得关注哦

来源:能链科技

原文标题:科普 | 数字签名的概念及其原理

在数字时代中。数字化文档的认证性。完整性和不可否认性。是实现信息化安全的基本要求。数字签名则是满足上述要求的主要方式之一。亦是现代密码学的研究内容之一。

数字签名有哪些形式?基于密码学的数字签名优势几何?有哪些常用的数字签名实现方案?这些都是理解数字签名的关键问题。我们将为大家带来系列介绍。

一。数字签名的概念

小到一张试卷的签名。大到商业合同的签署。签名某种程度上是社会经济活动中“契约确认”的核心方式。从而确保契约的合法性和有效性。

在实际生活和工作中。手写签名是一种传统的文件确认方式。如签订协议。支付确认。批复文件等。其表明签名人对文件内容认可。并愿意承担与之相关的责任。

而在数字化应用系统中。发送者同样希望对数字消息进行签名。从而使消息的接收者可以识别伪造信息。更重要的是事后可以追踪到消息发送者来承担相关责任。但是数字信息和传统文件有着显著区别。也导致数字签名技术和传统签名技术有许多不同之处。主要体现在:

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

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

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

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

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

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

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

二。数字签名原理

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

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

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

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

什么是数字签名(什么是数字签名?作用是什么?)

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

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

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

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

基于上述数字签名的基本原理。人们设计出了众多不同种类的数字签名方案。接下来我们将就基于RSA的签名方案。基于离散对数的签名方案。基于椭圆曲线的签名方案为代表。陆续为大家介绍这些常用的实现方案。

分享到 :
相关推荐

linux编译内核(linux内核开发教程)

linux编译内核(linux内核开发教程)Linux内核是一个开源的操作系统内核[...

pdf打开是网页怎么办(pdf文件图标变成网页怎么处理)

大家好,今天来介绍pdf打开是网页怎么办(电脑上的pdf文件都变成网页版了怎么办)的...

什么是二叉树的遍历(树的遍历和二叉树的遍历区别)

1、什么是二叉树的遍历二叉树是一种常见的数据结构,由节点和指向左右子节点的引用组成[...

console接口可以接网线么(console线和网线的区别)

1、console接口可以接网线么console接口可以接网线吗?console[&...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注