当前位置:首页 > 比特币新闻 > 正文

ECDSA科普:大雄和静香的情人节

来源: 互联网时间:2019-02-17 10:30:00

本节讲的是椭圆曲线数字签名算法ECDSA (Elliptic Curve Digital Signature Algorithm)。

一、大雄给静香邮寄比特币

2月14号,情人节。

你是大雄。你有哆啦A梦送你的10个比特币。你想把这10个比特币送给静香。

比特币只能通过信件邮寄。

你准备一个信封,写上静香家地址,把10个比特币装到信封里,贴上邮票,然后把信投递到邮筒里。

小镇的邮筒是完全开放式的,并没有一个中心邮局给它上锁和管理。

胖虎对你的10个比特币垂涎三尺,他寻机从邮筒下手,把比特币换到一个写着自己家地址的信封里。

哆啦A梦是邮递员。而且,是一个住在小镇中的本来就很聪明的邮递员。

它能在这种情况下确保比特币的寄达绝对安全可靠吗?

这一天,哆啦A梦在学校的教室外苦苦思索这个问题。

教室里,数学老师在给小学生们上数学课。

他忽然灵感出现,设计了一种特别的邮票。

二、哆啦A梦的邮票

哆啦A梦发现了小镇学校的一个惊天秘密。

这个秘密就是,数学老师只教加法、减法和乘法。

所有人也都只会做加法、减法和乘法。

哆啦A梦设计了一种特别的邮票。这种邮票需要寄信人写几个数字。而多拉A梦在送信的时候会先检查邮票,验算数字,如果不正确,它就退回这封邮件。

邮票是这么设计的:

首先,全国的小镇都有自己唯一的数字编号,大雄他们这个小镇数字是9。这个数字整个小镇都公开知道。

然后,每个人都选一个自己喜欢的秘密数字。每人各不相同,而且大家都互相猜不到对方的秘密数字。你是大雄,你选的秘密数字是3。

另外,小镇的每户人家都有一个门牌号作为地址。门牌号是用秘密数字乘以幸运数字计算出来的。你是大雄,你家门牌号是你的秘密数字3乘以幸运数字9等于27。静香家门牌号是45。

当你准备寄信给静香的时候,先随机另选一个秘密的幸运数字,别人绝对猜不到,比如你选了10。

然后你计算两个数字:

(1)用幸运数字10乘以小镇数字9得到前一个数字90。
(2)用前一个数字90乘以你的秘密数字3得到270,然后再加上静香家的门牌号45,得到后一个数字315。

最后,你把90和315前后两个数字写到邮票上,就可以了。

三、哆啦A梦的验算

当哆啦A梦送信的时候,就可以用算数来验算这个邮票是不是大雄贴的,而且寄送对象就是静香。

它同样算两个数字:

(1)用邮票上的后一个数字315乘以小镇数字9,得到第一个结果2835。
(2)用邮票上的前一个数字90乘以大雄家门牌号27得到2430,再用静香家门牌号45乘以小镇数字9得到405,最后把两个数字加起来,也就是2430加上405,得到第二个结果2835。

Bingo!两个结果一样。验证通过!恭喜大雄,邮件将被准确送达静香家。

四、胖虎的作弊

有了这个邮票的设计,胖虎就没有办法把邮件发往自己家的地址了。因为他不知道大雄的秘密数字,也就没有办法在邮票上写下正确的结果。

如果胖虎强行用自己的秘密数字来计算,会怎样呢?

胖虎自己的秘密数字是4,他家门牌号是36。

前一个数字,他直接抄袭了大雄的结果90。
然后他用前一个数字90乘以他自己的秘密数字4得到360,然后再加上自己家的门牌号36,得到后一个数字396。

他把这两个数字写到邮票上。

那么他的邮票能够通过哆啦A梦的验算吗?

哆啦A梦拿到邮件,先计算邮票的后一个数字396乘以小镇数字9,得到3564。
然后哆啦A梦用邮票的前一个数字90乘以大雄家门牌号27得到2430,再用静香家门牌号45乘以小镇数字9得到405,最后把两个数字加起来,也就是2430加上405,得到第二个结果2835。

两个结果不相等!邮票无效!

嘿~嘿~嘿~ 哆啦A梦得意地笑了。

等等!聪明的读者,你可能已经发现了一个致命漏洞:如果胖虎把寄件人也改成自己会怎么样呢?

那么哆啦A梦验算的时候,就会计算邮票的前一个数字90乘以胖虎家门牌号36,加上胖虎家门牌号36乘以小镇数字9,结果是同样的3564!

虽说胖虎把邮件发送给胖虎自己这件事看起来有点奇怪,可是既然数字验算通过,哆啦A梦也不得不遵照送达。

这一次,哆啦A梦也束手无策了。它不得不求助于一个人,这个人的名字叫中本聪。

五、中本聪的区块链

中本聪很快回复了哆啦A梦的问题,并给出了答案:区块链。

邮件很长,就不在这篇小文里展开了。

多年以后,哆啦A梦回忆起当年和中本聪的交流,不无感慨的说:

满世界的人都以为区块链是密码学。其实区块链恰恰是比特币减去密码学之后所剩下的部分。而这一部分,才是比特币最具有突破性的所在。密码学的部分,几十年前密码学专家就搞出来了。剩下的那部分,以前都只能用中心化技术来解决。直到中本聪发明了区块链技术。比特币不是数学,而是经济学;区块链不是密码学,而是开放性的互联网分布式系统。

那么中本聪为何在密码学圈子里兜售比特币和区块链这一发明呢?关于这一点,哆啦A梦这么比喻:

就像现在所有女人都梦想容颜永驻。而显然,当今所有化妆品工厂的产品都不能满足这一需求。现在好比中本聪发明了一种新的配方,具备划时代的神奇功效。你说他是应该去化妆品工厂兜售配方好呢,还是直接做成产品去目标用户那里兜售他的化妆品好呢?

六、为什么我们都不会做除法

为什么我们都不会做除法呢?为了向亲爱的读者朋友说明这个问题,笔者特别准备了这道“小学奥数题”:

下图中,苹果、香蕉、菠萝是三个正整数,请问它们分别是什么数字?

1

试试看?体验一下“除法”的难度。

是的,如你所料,这货就是一个如假包换的椭圆曲线方程。也就是说,它可以变换成这种形式的方程:

2

加法是这么算的(红色就是椭圆曲线的样子——换了一条容易作图的):

3

乘法是连加:k乘以P就等于k个P相加。

至于除法嘛。假设k乘以P等于T,告诉你P和T,请计算k。虽然你明知道k就等于T除以P,但就是算不出来。

七、椭圆曲线数字签名算法

比特币用了一条在中本聪之前鲜有人用的椭圆曲线secp256k1:

4

它在实数域长这个样子:

5

但是,其实它是定义在所谓的模素数上的,一下子就毁容成大概这个鬼样子了:

6

而大家常用的则是由美国国家标准和技术研究院NIST和美国国家安全局NSA联袂推荐的、1994年12月纳入标准的secp256r1。

2007年11月15日,美国知名IT杂志《连线》发表了对于NSA标准的质疑文章。

2013年6月,前美国中央情报局(CIA)职员、美国国家安全局(NSA)外包技术员爱德华·约瑟夫·斯诺登(Edward Joseph Snowden, 1983-)出逃。

 (全文完)

来源:刘教链(微信公众号)

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。