当前位置: > 快讯 > 正文

币圈子解读:区块链中的认证机制——数字签名

在当下网络交易过程中,数字签名已经成为了一个非常常见的概念,一般是用来证实数据内容的完整性和来源。现在,它不仅应用在HTTPS中,也是区块链实现验证交易信息的可靠渠道,下面就是相关详细内容。

数字签名,也称为公钥数字签名,是一种通过公钥加密领域的技术来鉴别数字信息的方法。有了数字签名技术,信息发送者就可以发送别人不能伪造的一段数字符串,也可以证明发送信息的真实性。

一般来说,数字签名包含了两种运算算法:签名、验证。签名,即指使用私钥处理信息或因信息的哈希值而产生签名;验证则是指使用公钥验证签名的真实性。

以比特币的数字签名为例,它是由比特币转账的转出方生成的一段防伪造的字符串,可以用来验证签字者的身份和签字时间,从而证实被签信息是否真实正确。

也就是说,转账者A在比特币转账前需要将交易信息缩短成一段字符串,用自己的私钥进行加密以形成数字签名;之后,A会将交易信息、数字签名和公钥都广播出去,矿工会将这些记录下来,并用A的公钥进行验证;如果验证成功就证明该笔交易确实是由A发出的,之后接受转账者B会收到比特币。

区块链正是利用了非对称加密算法等技术,用公钥、私钥加密信息,并发送给接收方,之后接收方会使用加密算法和密钥再解密信息,而数字签名技术在其中的作用就是保证发送的信息不会被篡改。

通过上面的内容,相信大家对数字签名也有了一定的了解,数字签名意味着对区块链技术有了进一步的了解。不仅有利于加深人们对比特币机制的了解,也有利于在区块链领域展开探索。

你必须了解的,区块链数字签名机制

       区块链使用Hash函数实现了交易信息和地址信息的不可篡改,保证了数据传输过程中的完整性,但是Hash函数无法实现交易信息的 不可否认性 (又称拒绝否认性、抗抵赖性,指网络通信双方在信息交互过程中, 确信参与者本身和所提供的信息真实同一性 ,即所有参与者不可否认或抵赖本人的真实身份,以及提供信息的原样性和完成的操作与承诺)。区块链使用公钥加密技术中的数字签名机制保证信息的不可否认性。        数字签名主要包括签名算法和验证算法。在签名算法中,签名者用其私钥对电子文件进行签名运算,从而得到电子文件的签名密文;在验证算森腔法中,验证者利用签名者的公钥,对电子文件的签名密文进行验证运算,根据验证算法的结果判断签名文件的合法性。在签名过程中,只有签名者知道自己的私钥,不知道其私钥的任何人员无法伪造或正确签署电子文件;在验证过程中,只有合法的签名电子文件能有效通过验证,任何非法的签名文件都不能满足其验证含唤算法。        常用的数字签名算法包括RSA数字签名、DSA数字签名、ECDSA数字签名、Schnorr数字签名等算法。       我们以RSA数字签名来介绍:可能人们要问RSA签名和加密有什么 区别 呢?加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说, 加密 是为了 防止信息被泄露 ,而 签名 是为了 防止信息被篡改 。       例子:A收到B发的消息后,需要进行回复“收到”-- RSA签名过程 :       首先: A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。       然后: A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。       最后: B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的谈春凯。        在这个过程中,只有2次传递过程,第一次是A传递加签的消息和消息本身给B,第二次是B获取A的公钥,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给B,防止了消息内容的篡改。 综上所述,来源于书本及网络,让我们了解的有直观的认识。

怎么解读区块链的数字签名?

在区块链的分布式网络里,节点之间进行通讯并达成信任,需要依赖数字签名技术,它主要实现了身份确认以及信息真实性、完整性验证。数字签名数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领脊含链域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于老掘签名,另一个用于验证。就是只有信息的发送者樱孙才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。简单证明 “我就是我”。

什么是数字签名?

数字签名是用于验证数字和数据真实性和完整性的加密机制。我们可以将其视为传统手写签名方式的数字化版本,并且相比于签字具有更高的复杂性和安全性。 简而言之,我们可以将数字签名理解为附加到消息或文档中的代码。在生成数字签名之后,其可以作为证明消息从发送方到接收方的传输过程中没有被篡改的证据。 虽然使用密码学保护通信机密性的概念可以追溯到古代,但随着公钥密码学(PKC)的发展,数字签名方案在20世纪70年代才成为现实。因此,要了解数字签名的工作原理,我们首先需要了解散列函数和公钥加密的基础知识。 哈希是数字签名中的核心要素之一。哈希值的运算过程是指将任意长度的数据转换为固定长度。这是通过称为散列函数的特殊运算实现的。经过散列函数运算而生成的值称为哈希值或消息摘要。 当哈希值与加密算法相结合,即使用加密散列函数的方法来生成散列值(摘要),该值可作为唯一的数字做陆肆指纹。这意味着对于输入数据(消息)的任何更改都会导致有完全不同的输出值(散列值)。这就是加密散列函数被广泛用于验证数字和数据真实性的原因。 公钥加密或PKC是指使用一对密钥的加密系统:公钥和私钥。这两个密钥在数学上是相关的,可用于数据加密和数字签名。 作为一种加密工具,PKC相比于对称加密具有更高的安全性。对称加密系统依赖于相同的密钥进行加密和解密信息,但PKC则使用公钥进行数据加密,并使用相应的私钥进行数据解密。 除此之外,PKC还可以应用于生成数字签名。本质上,该过程发送方使用自己的私钥对消息(数据)的哈希值进行加密。接下来,消息的接收者可以使用签名者提供的公钥来检查该数字签名是否有效。 在某些情况下,数字签名本身可能包括了加密的过程,但并非总是这样。例如,比特币区块链使用PKC和数字签名,而并不像大多数人所认为的,这个过程中并没有进行加密。从技术上讲,比特币又部署了所谓的椭圆曲线数字签名算法(ECDSA)来验证交易。 在加密货币的背景下,数字签名系统通常包含三个基本流程:散列、签名和验证。 第一步是对消息或数据进行散列。通过散列算法对数据进行运算,生成哈希值(即消息摘要)来完成的。如上所述,消息的长度可能会有很大差异,但是当消息被散列后,它们的哈希值都具有相同的长度。这是散列函数的最基本属性。 但是,仅仅将消息进行散列并不是生成数字签名的必要条件,因为也可以使用私钥对没有进行过散列的消息进行加密。但对于加密货币,消息是需要经过散列函数处理的,因为处理固悉租定长度的哈希值有助于加密货币的程序运行。 对信息进行散列处理后,消息的发件人需要对其消息进行签名。这里就用到了公钥密码学。有几种类型的数字签名算法,每种算法都有自己独特的运行机制。本质上,都是使用私钥对经过散列的消息(哈希值)进行签名,然后消息的接收者可以使用相应的公钥(由签名者提供)来检查其有效性。 换句话说,如果在生成签名时不使用私钥,则消息的接收者将不能使用相应的公钥来验证其有效性。公钥和私钥都是由消息的发送者生成的,但仅将公钥共享给接收者。 需要注意的是,数字签名与每条消息的内容相关联。因此,与手写签名所不同,每条消息的数字签名都是不同的。 让我们举一个例子说明下整个过程,包括从开始直到最后一步的验证。我们假设Alice向Bob发送一条消息、并将该消息进行散列得到哈希值,然后将哈希值与她的私钥结合起来生成数字签名。数字签名将作为该消息的唯一数字指纹。 当Bob收到消息时,他可以使用Alice提供的公钥来检查数字签名的有效性。这样,Bob可以确定签名是由Alice创建的,因为只有她拥有与该公钥所对应的私钥(至少这与我们所假设的一致)。 因此,Alice需要保管好私钥至关重要。如果另一个人拿到了Alice的私钥,他们就同样可以创建数字签名并伪装成Alice。在比特币的背景下,这意味着有人可以使用Alice的私钥,并可在未经她知晓的情况下转移或使用她的比特币。 数字签名通常用于实现以下三方面目标:数据完整性、身份验证纯轿和不可否认性。 数字签名可以应用于各种数字文档和证书。因此,他们有几个应用程序。一些最常见的案例包括: 数字签名方案面临的主要挑战主要局限于以下三方面因素: 简而言之,数字签名可以理解为是一种特定类型的电子签名,特指使用电子化的方式签署文档和消息。因此,所有数字签名都可认为是电子签名,但反之并非如此。 它们之间的主要区别在于身份验证方式。数字签名需要部署加密系统,例如散列函数、公钥加密和加密技术。 散列函数和公钥加密是数字签名系统的核心,现已在各种案例中使用。如果实施得当,数字签名可以提高安全性,确保完整性,便于对各类数据进行身份验证。 在区块链领域,数字签名用于签署和授权加密货币交易。它们对比特币尤为重要,因为数字签名能够确保代币只能由拥有相应私钥的人使用。 虽然我们多年来一直使用电子和数字签名,但仍有很大的发展空间。如今大部分的公文仍然还是基于纸质材料,但随着更多的系统迁移到数字化中,我们还会看到更多的数字签名方案。

发表评论

  • 人参与,条评论

热门阅读

最新文章

取消
扫码支持 支付码