00 前言
本系列将以100个区块链知识为基石,循序渐进,娓娓道来,为零基础人士搭建一座区块链认知大厦。
如果有可能,未来会集结成书。
当然,愿意的话,您可以转发给身边的亲人朋友,帮助他们早日启蒙,享受区块链认知红利。
2.1 非对称加密
上一节我们聊到对称加密,对称加密中,让人纠结的是,加密算法不能泄露,但似乎又没有好的办法来保证不泄露,怎么办呢?
我们换个角度来想,也许解决问题的症结不在于“算法不能泄露”,而在于“即使泄露也没有关系”。
为了解决这个问题,非对称加密被发明了出来。
笔者在刚刚接触非对称加密的时候,也为其设计之精妙所震撼。
2.2 举例子:魔法棒、秘钥
在对称加密中,加密算法就像一把魔法棒,点一下,明文变密文,再点一下,密文变明文。在密码学中,可以把这把魔法棒叫做秘钥(钥匙的钥)。
秘钥并不神秘,通常是由数字或字母组成的一串字符,比如“3e98Fa4FD03CbFF7482b95aC00fc0A7DAc”。
我们知道了,对称加密中,加密和解密用的是同一把秘钥,当爱丽丝把秘钥通过网络发送给鲍勃时,就可能被窃听者拿到秘钥,从而增加了密文被破解的风险。
2.3 敲黑板:公钥、私钥
非对称加密中,加密用一把秘钥,解密用另一把秘钥,这两把秘钥必须配对使用,相互加密与解密。
这意味着什么呢?
不急,听笔者慢慢道来。
比特币加密技术中就用了一种非对称加密——椭圆曲线加密算法,由国际权威组织发布,其算法是公开的,可以编入软件供人们自由使用。
根据算法,软件像产生彩票号码一样 随机产生一对双胞胎字符串,也就是两把秘钥,一把为公钥,一把为私钥。 这两把秘钥必须配对使用。
用公钥加密,就用相对应的私钥来解密;
用私钥加密,就用相对应的公钥来解密。
一次产生两把魔法棒,想想还有点小激动呢。
为了便于理解这两把魔法棒的作用,我们可以设想一下下面的场景:
场景中的魔法棒,爱丽丝有两把,鲍勃有两把。
【爱丽丝】hi~鲍勃,我需要与你沟通机密情报,因为网络被监听,所以需要使用非对称加密技术。首先下载秘钥生成软件,你准备好了吗?
【 鲍 勃 】准备好了,我生成的公钥是“bfjeiahg823rjf92j324jf”,私钥我自己留着,不告诉任何人。
【窃听者】窃听到了鲍勃的公钥。
【爱丽丝】我用你的公钥来加密文字,现在发送给你。
【 鲍 勃 】收到,那我就用我的私钥来解密。解密成功!
【窃听者】晕!不知道鲍勃的私钥,窃听到的公钥也毫无用处,这次破解不了啦。
【 鲍 勃 】hi~爱丽丝,把你的公钥也告诉我,我用它来加密一段文字发给你。
【爱丽丝】好的,我的公钥是"asdfj8saf23jf387236r2n"。
……
【窃听者】你们公钥满天飞,私钥不露头,作为职业窃听者的我,看来要失业了!
两个人把窃听者当空气,你来我往的,很神奇吧?
具体神奇的椭圆曲线加密体系是怎么实现的,这个由密码学家来研究,我们就不费脑筋了。
当然,提醒大家,这只是为了便于说明非对称加解密的过程,才这么啰嗦的。现实中的加解密完全没有这么麻烦,全部由软件在后台自动完成,爱丽丝和鲍勃是感觉不到的。
2.4 下节预告
事情完美解决了吗?
未必。
我们设想一种情况:窃听者窃听到了公钥,于是他利用鲍勃的公钥来加密一段文字,发送给了鲍勃,企图冒充爱丽丝来制造假情报!
鲍勃能识破他的诡计吗?
下一节我们讲“数字签名”,专门解决这个问题——很精彩,请期待。
我是rruntime,立志写本书,一本可以献给家人和朋友的《区块链启蒙》,敬请支持!
本文首发币乎,已被【币乎榜bihubang.com】收录。
网友评论