区块链入门丨一文读懂数字签名

栏目: 编程工具 · 发布时间: 6年前

数字签名:数字签名被认为是对手写签名的数字化模拟。

手写签名的重要特征为:

1、自己的签名只有自己可以制作;

2、自己的签名可以由其他任何人验证有效性;

3、自己的签名只对某一特定文件发生联系,不能用于支持其他文件;

在说明数字签名之前,需要了解密码学的一些基本概念:

明文:消息的初始形式

密文:加密后的形式

密钥:指某个用来完成 加密、 解密、完整性验证等密码学应用的秘密 信息。

如果我们将明文记为P,密文记为C,密钥记为K,加密算法记为E,解密算法记为D,则C=E(P),P=D(C);则要求密码系统满足P=D(E(P))。

对称加密以及非对称加密:

对称加密算法指的是在加密和解密的时候使用的是同一个秘钥,同一个密钥可以同时用作信息的加密和解密。

需要密钥的加密算法记为:C=E(K,P),并且P=D(K,E(K,P))。

其工作过程如图所示:

区块链入门丨一文读懂数字签名

而非对称加密算法则需要不同的两个密钥来进行加密和解密,这两个密钥一般分别叫做公钥和私钥。

加密与解密的密钥不同,则:P=D(KD,E(KE,P))。公钥和私钥成对出现,是通过某一种加密算法得到一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

其工作过程如图所示:

区块链入门丨一文读懂数字签名

步骤1-3

步骤1: A通过随机算法,生成一对密钥,有公钥和私钥;

步骤2:A将公钥公开,分别发给B,C,D;

步骤3:B想给A发送一条信息,首先用A的公钥对这条信息加密,然后将加密后的信息(密文)传播给A,A在接收到信息之后,用自己的私钥进行解密,从而得到B给A的信息原文。

那么数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名的生成和使用过程如下图所示:

区块链入门丨一文读懂数字签名

步骤4-5

步骤4:A将要发送的信息通过哈希运算,得到摘要,并用私钥进行加密,生成这个信息的数字签名。

步骤5:A将所要发送的信息和数字签名同时发送给B,B利用A的公钥来对此数字签名解密,从而确定该信息的确来自A。另外,B通过对A发送的信息进行哈希运算得到的摘要与解密得到的摘要进行对比,可以确定该信息是否被篡改过。

来源: BitTribe Lab


以上所述就是小编给大家介绍的《区块链入门丨一文读懂数字签名》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

首席产品官2 从白领到金领

首席产品官2 从白领到金领

车马 / 机械工业出版社 / 79元

《首席产品官》共2册,旨在为产品新人成长为产品行家,产品白领成长为产品金领,最后成长为首席产品官(CPO)提供产品认知、能力体系、成长方法三个维度的全方位指导。 作者在互联网领域从业近20年,是中国早期的互联网产品经理,曾是周鸿祎旗下“3721”的产品经理,担任CPO和CEO多年。作者将自己多年来的产品经验体系化,锤炼出了“产品人的能力杠铃模型”(简称“杠铃模型”),简洁、直观、兼容性好、实......一起来看看 《首席产品官2 从白领到金领》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试