什么是数字签名?

2019-08-26 12:28 栏目:经验之谈 来源: 查看()
数字签名是用于验证数字和数据的真实性和完整性的加密机制。我们可以将其视为传统手写签名的数字版本,并且比签名具有更高的复杂性和安全性。

什么是数字签名?

简而言之,我们可以将数字签名理解为附加到消息或文档的代码。在生成数字签名之后,它可以用作在从发送方到接收方的传输期间消息未被篡改的证据。 虽然使用密码学来保护通信机密性的概念可以追溯到远古时代,但随着公钥密码学(PKC)的发展,数字签名方案在20世纪70年代成为现实。因此,要了解数字签名的工作原理,我们首先需要了解哈希函数和公钥加密的基础知识。 哈希函数 哈希是数字签名的核心要素之一。哈希值操作过程是将任何长度的数据转换为固定长度。这是通过称为散列函数的特殊操作完成的。散列函数操作生成的值称为散列值或消息摘要。 当散列值与加密算法组合时,加密散列函数的方法用于生成散列值(摘要),其可以用作唯一的数字指纹。这意味着对输入数据(消息)的任何更改都将导致完全不同的输出值(散列值)。这就是为什么加密散列函数被广泛用于验证数字和数据的真实性的原因。 公钥加密(PKC) 公钥加密或PKC是指使用一对密钥的加密系统:公共密钥和私有密钥。这两个密钥在数学上是相关的,可用于数据加密和数字签名。 作为加密工具,PKC具有比对称加密更高的安全性。对称加密系统依赖于相同的密钥来加密和解密信息,但PKC使用公钥进行数据加密,并使用相应的私钥进行数据解密。 此外,PKC还可用于生成数字签名。本质上,进程的发送者使用自己的私钥加密消息(数据)的散列。接下来,消息的接收者可以使用签名者提供的公钥来检查数字签名是否有效。 在某些情况下,数字签名本身可能包括加密过程,但情况并非总是如此。例如,比特币区块链使用PKC和数字签名,与大多数人认为的不同,此过程中没有加密。从技术上讲,比特币已经部署了一种所谓的椭圆曲线数字签名算法(ECDSA)来验证交易。 数字签名如何运作 在加密货币的背景下,数字签名系统通常包含三个基本过程:散列,签名和验证。 哈希数据 第一步是散列消息或数据。这是通过散列算法计算数据并生成散列值(即消息摘要)来完成的。如上所述,消息的长度可以变化很大,但是当消息被散列时,它们的散列具有相同的长度。这是哈希函数的最基本属性。 但是,简单地对消息进行散列不是生成数字签名的必要条件,因为还可以使用私钥加密未散列的消息。但对于加密货币,消息需要由散列函数处理,因为处理固定长度的散列值有助于程序加密货币。 签名 对信息进行哈希处理后,邮件的发件人需要对其邮件进行签名。这里使用公钥加密。有几种类型的数字签名算法,每种算法都有自己独特的操作机制。本质上,使用私钥对散列消息(散列值)进行签名,然后消息的接收者可以使用相应的公钥(由签名者提供)检查其有效性。 换句话说,如果在生成签名时未使用私钥,则消息的接收者将无法使用相应的公钥来验证其有效性。公钥和私钥都是由邮件的发件人生成的,但只有公共密钥与收件人共享。 应注意,数字签名与每个消息的内容相关联。因此,与手写签名不同,每个消息的数字签名是不同的。 验证 让我们举一个整个过程的例子,包括从开始到最后一步的验证。我们假设Alice向Bob发送消息,散列消息以获取散列值,然后将散列值与其私钥组合以生成数字签名。数字签名将是消息的唯一数字指纹。 当Bob收到消息时,他可以使用Alice提供的公钥来检查数字签名的有效性。通过这种方式,Bob可以确定签名是由Alice创建的,因为只有她拥有与公钥对应的私钥(至少这与我们假设的一致)。 因此,Alice需要保留私钥是很重要的。如果另一个人获得了Alice的私钥,他们也可以创建一个数字签名并假装是Alice。在比特币的背景下,这意味着有人可以使用Alice的私钥,并且可以在她不知情的情况下转移或使用她的比特币。 为什么数字签名很重要? 数字签名通常用于实现三个目标:数据完整性,身份验证和不可否认性。 数据的完整性。 Bob可以验证Alice的消息是否已被篡改。消息的任何更改都将导致完全不同的数字签名。 真实性。只要Alice保留她的私钥,Bob就可以使用她的公钥来确认数字签名是由Alice本人创建的,而不是由其他人创建的。 不可否认性。生成签名后,Alice将来无法拒绝签名,除非她的私钥以某种方式泄露。 案件 数字签名可以应用于各种数字文档和证书。所以他们有几个应用程序。一些最常见的案例包括: 信息技术。增强Internet通信系统的安全性。 金融。数字签名可以应用于审计,财务报告,贷款协议等。 法律。数字签名可以应用于各种商业合同和法律协议,包括政府文件。 卫生保健。数字签名可防止欺诈性处方和医疗记录。 Blockchain。数字签名方案确保只有加密货币的合法所有者才能签署交易并转移资金(只要他们的私钥不受损害)。 局限性 数字签名方案面临的主要挑战主要限于以下三个因素: 算法。数字签名方案中使用的算法对质量要求很高。这些包括可靠的散列函数和加密系统的选择。 实现。如果算法完成,但没有很好的实现,数字签名系统也可能有隐患。 私钥。如果私钥丢失或以某种方式泄露,则无法保证真实性和不可否认性。对于加密货币用户,丢失私钥可能会导致严重的财产损失。 电子签名和数字签名 简而言之,数字签名可以被理解为特定类型的电子签名,特别是使用电子手段来签署文档和消息。因此,所有数字签名都可以被视为电子签名,但不是相反。 它们之间的主要区别在于身份验证的完成方式。数字签名需要部署加密系统,如散列函数,公钥加密和加密。 总结一下 散列函数和公钥加密是数字签名系统的核心,现在可用于各种情况。如果实施得当,数字签名可以提高安全性,确保完整性,并促进对所有类型数据的身份验证。 在区块链领域,数字签名用于签署和授权加密货币交易。它们对比特币尤其重要,因为数字签名确保令牌只能由拥有适当私钥的人使用。 虽然我们多年来一直使用电子和数字签名,但仍有很大的发展空间。今天的大多数官方文件仍然基于纸质材料,但随着越来越多的系统迁移到数字系统,我们将看到更多的数字签名方案。
微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发