Bitcoin Forum
May 09, 2024, 02:53:26 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: 通俗易懂比特币之数字签名  (Read 113 times)
lypoint (OP)
Newbie
*
Offline Offline

Activity: 55
Merit: 0


View Profile
February 24, 2018, 04:11:10 AM
Last edit: February 24, 2018, 04:26:15 AM by lypoint
 #1

未曾相见,为何能深信不疑?

你想发一条短信给你朋友彤彤:今晚十点汉庭见。这是属于你们之间的秘密,绝不能被第三人知道。

你熟门熟路,这得用非对称加密:你用彤彤的公钥加密短信,让它变成别人不认识的密文。你很放心,因为只有彤彤的私钥才能解密。

但问题来了:彤彤凭什么相信这是你发的?万一是我冒充你发的呢?那她今晚跑去汉庭见到的人就是我,因为她的公钥是公开的,任何人都可以拿来加密。

让她确信短信是你发的,你只要做一步:数字签名。

1、什么是数字签名?

数字签名指产生只有信息发送者才能产生的字符串,如:d5S6ch5nPz4L29ya8vX。

你可以把数字签名理解为白纸黑字的签名,接收者用它识别发送者身份。但千万别误以为数字签名是把你的亲笔签名拍成数码照片,发给接受者用来验证,那是电子签名。

电子签名是图片,而数字签名是字符串。

那数字签名是怎么做出来的?

2、数字签名流程

很简单,分两步:

1、哈希密文,得到密文哈希值,如:14d403e5;

2、用你的私钥加密哈希值,得到数字签名,如d5S6ch5nPz4L29ya8vX;

你把密文和数字签名一起发给彤彤,收到信息后,她要做两件事:

1、读取信息原文

用她的私钥解密密文,得到的明文就是原文:今晚十点汉庭见;

2、确认发送者身份

彤彤要确认这信息是不是你发的。她用你的公钥解密数字签名,如果解密结果为14d403e5,那就代表发信息的人是你,否则就是有人在冒充你;如果你问14d403e5是哪里来的,答案是这是彤彤把密文哈希一次的结果。

你可能觉得奇怪,解密不应该是用收信人私钥的么?为什么发件人公钥也可以解密?答案是:也可以。

这就是非对称加密的另一个神奇之处:公钥和私钥互为加解密工具。不仅可以“公钥加密、私钥解密”,而且可以“私钥加密、公钥解密”,但唯独不能用原来加密的钥匙解密。

但为什么我们不用私钥加密原文?因为如果用私钥加密,那就只能使用公钥解密,而公钥都是公开的,这样就使加密失去意义。

而数字签名用私钥加密的是密文的哈希值,解密后不为获知信息,而为校验身份,所以数字签名可以用私钥加密。

要判定信息是否为发送者本人发送,只需满足一个条件:

用发送方公钥解密数字签名的结果 = 密文哈希值,即:

http://o73gmt28q.bkt.clouddn.com/bitcointalk/21.png

f:解密函数

DigitalSign:数字签名:5S6ch5nPz4L29ya8vX

PublicKey:发送者(你)的公钥

Hash:哈希函数

Hash ( CipherText ):密文哈希值

如果你读到这里有点晕,请回头逐字逐句阅读一遍,耐心是最好的补药。相信我,最多两遍你就能彻底明白数字签名的过程。

http://o73gmt28q.bkt.clouddn.com/bitcointalk/22.png

3、总结

数字签名是一种能被轻松识别的认证工具,因为验证它的过程本质上只是用计算机解一道数学题而已。所以,眨眼间就可以完成认证过程,不用像人去比对字迹或印章那样耗时费力。

数字签名保证信息是发送者本人发的:其他人无法伪造,同时发送者无法抵赖。因为发送者私钥只有发送者本人知晓,除非泄露。

所以你看,私钥几乎等于你在比特世界的肉身。

无法抵赖、不可伪造和轻松识别三大特性,使得数字签名成为理想的认证工具:商业机密、网上银行和加密货币等都离不开数字签名。它只是开始理解时有点绕,彻悟后你会体会到它的精妙:

明明没有和TA相见,但在比特世界里,数字签名却可以让你见字如面。

4、温故

从这节课开始已经让你费解了,但是别灰心。等你明晰概念之后就一定能秒懂加密原理,相信我,这是通往数字世界财富自由之路的金钥匙。

所以,复习一下基础概念吧:

原文:发送者原本想要告诉接受者的意思,如:你想告诉彤彤:“今晚十点汉庭见”就是原文。

密文:加密原文后的字符串,一般用CipherText表示。

你把原文“今晚十点汉庭见”用特定算法加密后的样子可能是这样子:2c320f5ee160144170bDTLd54,总之和原文相比面目全非。

明文:解密后的结果。

如果解密正确,明文=原文;

如果解密错误,明文就是乱码,没有意义。

对称加密:加解密互为逆操作的加密方式,就是对称加密。

比如:银行支票上的大写金额(壹贰叁肆……)也是一种对称加密方式,因为存在与阿拉伯数字(1234……)一一对应的关系。解密对汉语使用者毫无难度,但外国人还是一眼难以识别。可如果老外去查查字典,还是比较容易弄明白的支票大写金额含义的。对称加密是一种相对容易被破解的加密方式。

非对称加密:使用不同的钥匙加密或解密。私钥保密,私钥生成多个公钥,公钥公开。私钥加的密,只能用公钥解;公钥加的密,只能用私钥解。

哈希:将文件映射为较短的固定长度字符串(哈希值)。

恭喜你,又在加密世界里精进了一步。

如需了解非对称加密,请参考https://bitcointalk.org/index.php?topic=3009236.0
如需了解去中心化,请参考https://bitcointalk.org/index.php?topic=3009569.0

原文载自微信公众号tangqiang0401
1715266406
Hero Member
*
Offline Offline

Posts: 1715266406

View Profile Personal Message (Offline)

Ignore
1715266406
Reply with quote  #2

1715266406
Report to moderator
The block chain is the main innovation of Bitcoin. It is the first distributed timestamping system.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715266406
Hero Member
*
Offline Offline

Posts: 1715266406

View Profile Personal Message (Offline)

Ignore
1715266406
Reply with quote  #2

1715266406
Report to moderator
1715266406
Hero Member
*
Offline Offline

Posts: 1715266406

View Profile Personal Message (Offline)

Ignore
1715266406
Reply with quote  #2

1715266406
Report to moderator
lucky626
Full Member
***
Offline Offline

Activity: 322
Merit: 100



View Profile
February 24, 2018, 04:16:30 AM
 #2

虚拟数字币就是密码应用的另类体现。
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!