来源:鑫链财经(xinchaincaijing.com)
数字签名是用于验证数字和数据真实性和完整性的加密机制。我们可以将其视为传统笔写签名方法的数字化版本,而且相较于签名具有更高的繁杂性和安全性。那么,究竟什么是数字签名呢?它的工作原理是怎么样的?下面,我们一起来看看。
什么是数字签名?
数字签名是用于验证数字和数据真实性和完整性的加密机制。我们可以将其视为传统笔写签名方法的数字化版本,而且相较于签名具有更高的繁杂性和安全性。
简而言之,我们可以将数字签名解读为额外到信息或文档中的代码。在生成数字签名以后,其可作为证实信息从发送方到接收方的传输过程里没有被伪造的证据。
尽管应用密码学维护通讯机密性的概念可以追溯到古代,但随着公钥密码学(PKC)的发展,数字签名方案在20世纪70时代才成为现实。
基于密码学的数字签名拥有独特优势:
1、消息源认证性:数字签名能够表明审签者的身份,换句话说具备消息源认证性。
2、不可否认性:数字签名生成时需要输入签名者私钥。也就是说,数字签名对应唯一签名主体,而且签名者要承担不可推卸的责任,即数字签名能够实现不可否认性。
3、信息完整性:数字签名能够查验文档在传输过程中是否被伪造或伪造,即确保信息完整性。
数字签名的工作原理是怎样的?
在数字货币的背景下,数字签名系统一般包括三个基本流程:散列、签名和验证。
对数据进行散列
第一步是对信息或信息进行散列。根据散列算法对数据进行计算,生成哈希值(即消息摘要)来实现的。如上所述,消息的长度可能会有很大差别,可是当信息被散列后,它们哈希值都具有相同的长度。这是散列函数的最基本特性。
可是,仅仅将信息开展散列并非生成数字签名的前提条件,由于也可以用私钥对未进行过散列的消息开展加密。但对于数字货币,消息是需经过散列函数处理,由于解决固定长度的哈希值有利于数字货币的程序执行。
签名
对信息进行散列处理后,消息的发货人必须对其信息开展签名。这里就用到了公钥密码学。有几种类别的数字签名算法,每种算法都有自己独特的运行机制。实质上,都是使用私钥对经过散列的消息(哈希值)开展签名,随后消息的接受者可以用对应的公钥(由签名者提供)来检查其实效性。
也就是说,若是在生成签名时不应用私钥,则消息的接受者将无法使用对应的公钥来验证其实效性。公钥和私钥均是由消息的发送者产生的,但仅将公钥共享给接受者。
需要注意的是,数字签名与每条信息内容相关联。因此,与笔写签名所不同,每条消息的数字签名都是不同的。
验证
使我们举一个例子说明下整个过程,包含从开始直到最后一步的验证。大家假定Alice向Bob推送一条消息、并把该消息开展散列获得哈希值,再将哈希值与她的私钥结合起来生成数字签名。数字签名将作为该信息的唯一数字指纹。
当Bob收到消息时,他可以用Alice提供的公钥来检查数字签名实效性。那样,Bob可以确定签名是由Alice创建的,因为只有她有着与该公钥对应的私钥(至少这和我们所假定的一致)。
因此,Alice必须保管好私钥尤为重要。假如另一个人拿到了Alice的私钥,他们便同样可以建立数字签名并装扮成Alice。在比特币的环境下,这意味着有人可以用Alice的私钥,并可在没经她了解的情形下迁移或使用她BTC。
讲到这里,相信大家对于什么是数字签名,以及它的工作原理都有一定的了解了。总的来说,在区块链世界中,数字签名用以签定和准许数字货币交易。该签名在BTC中尤为重要,因为只有有着相应私钥的人才能使用该贷币。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。