fx168财经网

啥是数字签名?

百科 2021-07-20 22:28159www.558zj.com未知

数字签名是用于验证数字和数据真实性和完整性的加密机制。大家可以将其视为传统手写签名方法的数字化版本,并且相比于签字具备更高的复杂性和安全性。

简而言之,大家可以将数字签名理解为附加到消息或文档中的代码。在生成数字签名之后,其可以作为证明消息从发送方到接收方的传输过程中没被篡改的证据。

虽然用密码学保护通信机密性的定义可以追溯到古时候,但伴随公钥密码学(PKC)的进步,数字签名策略在20世纪70年代才成为现实。因此,要知道数字签名的工作原理,大家第一需要知道散列函数和公钥加密的入门知识。

散列函数

哈希是数字签名中的核心要点之一。哈希值的运算过程是指将任意长度的数据转换为固定长度。这是通过称为散列函数的特殊运算达成的。经过散列函数运算而生成的值称为哈希值或消息摘要。

当哈希值与加密算法相结合,即便用加密散列函数的办法来生成散列值(摘要),该值可作为唯一的数字指纹。这意味着对于输入数据(消息)的任何更改都会致使有完全不一样的输出值(散列值)。这就是加密散列函数被广泛用于验证数字和数据真实性是什么原因。

公钥加密(PKC)

公钥加密或PKC是指用一对密钥的加密系统:公钥和私钥。这两个密钥在数学上是有关的,可用于数据加密和数字签名。

作为一种加密工具,PKC相比于对称加密具备更高的安全性。对称加密系统依靠于相同的密钥进行加密和解密信息,但PKC则用公钥进行数据加密,并用相应的私钥进行数据解密。

此外,PKC还可以应用于生成数字签名。本质上,该过程发送方用我们的私钥对消息(数据)的哈希值进行加密。下面,消息的接收者可以用签名者提供的公钥来检查该数字签名是不是有效。

在某些状况下,数字签名本身可能包括了加密的过程,但并不是一直如此。比如,BTC区块链用PKC和数字签名,而并不像大部分人所觉得的,这个过程中并没进行加密。从技术上讲,BTC又部署了所谓的椭圆曲线数字签名算法(ECDSA)来验证买卖。

数字签名的工作原理

在数字货币的背景下,数字签名系统一般包含三个具体流程:散列、签名和验证。

对数据进行散列

第一步是对消息或数据进行散列。通过散列算法对数据进行运算,生成哈希值(即消息摘要)来完成的。如上所述,消息的长度可能会有非常大差异,但当消息被散列后,它们的哈希值都具备相同的长度。这是散列函数的最基本属性。

但,仅仅将消息进行散列并非生成数字签名的必要条件,由于也可以用私钥对没进行过散列的消息进行加密。但对于数字货币,消息是需要经过散列函数处置的,由于处置固定长度的哈希值能够帮助数字货币的程序运行。

签名

对信息进行散列处置后,消息的发件人需要对其消息进行签名。这里就用到了公钥密码学。有几个种类的数字签名算法,每种算法都有自己独特的运行机制。本质上,都是用私钥对经过散列的消息(哈希值)进行签名,然后消息的接收者可以用相应的公钥(由签名者提供)来检查其有效性。

换句话说,假如在生成签名时不用私钥,则消息的接收者将不可以用相应的公钥来验证其有效性。公钥和私钥都是由消息的发送者生成的,但仅将公钥共享给接收者。

应该注意的是,数字签名与每条消息的内容有关联。因此,与手写签名所不同,每条消息的数字签名都是不一样的。

验证

让大家举一个例子说明下整个过程,包括从开始直到最后一步的验证。大家假设Alice向Bob发送一条消息、并将该消息进行散列得到哈希值,然后将哈希值与她的私钥结合起来生成数字签名。数字签名将作为该消息的唯一数字指纹。

当Bob收到消息时,他可以用Alice提供的公钥来检查数字签名的有效性。如此,Bob可以确定签名是由Alice创建的,由于只有她拥有与该公钥所对应的私钥(至少这与大家所假设的一致)。

因此,Alice需要保管好私钥至关要紧。假如另一个人拿到了Alice的私钥,他们就同样可以创建数字签名并伪装成Alice。在BTC的背景下,这意味着有人可以用Alice的私钥,并可在未经她知道的状况下转移或用她的BTC。

为何数字签名非常重要?

数字签名一般用于达成以下三方面目的:数据完整性、身份验证和不能否认性。

数据完整性。Bob可以验证Alice的消息是不是发生了篡改。消息中的任何变动都会产生完全不一样的数字签名。
真实性。只须Alice将其私钥保管好,Bob就可以用她的公钥来确认数字签名是由Alice本人所创建的,而非别的人所为。
不能否认性。生成签名后,Alice以后没办法不承认签名该签名,除非她的私钥以某种方法泄露出去。

案例

数字签名可以应用于各种数字文档和证书。因此,他们有几个应用程序。一些最容易见到的案例包括:

信息技术。增强网络通信系统的安全性。
金融。数字签名可以应用于审计、财务报告、贷款协议等等。
法律。数字签名可以应用于各种商业合同和法律协议,包括政府文件。
卫生保健。数字签名可以预防处方和医疗记录的欺诈。
Blockchain。数字签名策略确保只有数字货币的合法所有者才能签署买卖,并移动资金(只须他们的私钥不受侵害)。

局限性

数字签名策略面临的主要挑战主要局限于以下三方面原因:

算法。数字签名策略中用的算法对水平需要非常高。其中包括靠谱的散列函数和加密系统的选择。
推行。假如算法非常完备,但却没一个好的推行策略,数字签名系统也会会出现隐患。
私钥。假如私钥丢失或以某种方法泄露,则真实性和不能否认性将得不到保证。对于数字货币用户而言,丢失私钥可能会致使重大的财产损失。

电子签名与数字签名

简而言之,数字签名可以理解为是一种特定种类的电子签名,特指用电子化的方法签署文档和消息。因此,所有数字签名都可觉得是电子签名,但反之并不是这样。

它们之间的主要不同在于身份验证方法。数字签名需要部署加密系统,比如散列函数、公钥加密和加密技术。

概要

散列函数和公钥加密是数字签名系统的核心,现已在各种案例中用。假如推行得当,数字签名可以提升安全性,确保完整性,便于对各类数据进行身份验证。

在区块链范围,数字签名用于签署和授权数字货币买卖。它们对BTC非常重要,由于数字签名可以确保代币只能由拥有相应私钥的人用。

虽然大家多年来一直用电子和数字签名,但仍有非常大的进步空间。现在大多数的公文仍然还是基于纸质材料,但伴随更多的系统迁移到数字化中,大家还会看到更多的数字签名策略。

出处:Binance学院

fx168财经网-虚拟货币|数字货币|区块链技术新闻资讯网站 Copyright © 2002-2021 fx168财经网 (http://www.inclusivedesignresearch.com) 网站地图 TAG标签 备案号