前言
之前讨论过过,Alice采用对称加密给Bob发送消息,在对称加密机制中加解密采用同一个秘钥,一旦秘钥丢失,整个加密过程就会被打破。另外,如果Rose使用同一把秘钥,密文信息本身无法体现加密者是谁,Bob无法识别发件人,谁爱谁恨Bob根本分不清。
从1970年开始,数学家陆续开始尝试不同的解决方案,尝试用不一样的秘钥避免丢失问题,RSA等非对称加密算法腾空问世,人们可以公开发布自己的公钥信息,从此计算机里可以实现数字签名和身份鉴定。
我们今天透彻分析非对称加密技术是什么?请大家关注gitcoins抖音频道,我们将会分享有趣的、高质量的、加密货币相关的视频。
非对称加密
秘钥生成
我们来看一下这个神奇的、反人性的模型是什么样的。为了保证每个人创建出不同的秘钥对,秘钥对的创建算法,需要一个非常大的随机数作为输入,它与对称加密不同,非对称加密同时生成一对秘钥,公钥和私钥。公钥可以发给任何需要它的人,甚至黑客拿到也无所谓。私钥一定要牢牢的在自己手上保管,在所有加密货币中,谁控制了私钥,谁就控制了加密钱包。我们用蓝色表示Alice的秘钥对,Alice自己创建完成以后秘钥后,
Bob也用一个随即数产生自己的公钥和私钥。
我们用红色表示Bob的秘钥对因为常见秘钥需要一个特别大的随机数,所以Alice和Bob他们的公钥不相同,他们的私钥也不相同。
数据加密
当Alice需要和Bob发消息时,Alice首先要得到Bob的公钥,然后将文件用Bob的公钥进行加密,加密过程其实是一个数学运算过程,将消息和公钥进行一系列的骚操作,就形成了别人看不懂的密文,将密文发送给Bob,Bob用自己的私钥对密文进行解密,得到了Alice发来的文件。因为只有Bob有自己的私钥,所以只能Bob解密信息,其他的私钥是无法解密Bob公钥加密信息的,这就是私钥在数据解密的作用。所以你一定一定要把私钥牢牢掌握在自己手上,一旦丢失,就可以解密别人发给你的信息了。
身份鉴定
第二个应用就是身份鉴定,这个过程是如何用私钥模拟人的签字过程,在数据上签字后,就表明这个数据表达的含义是我认可的,同时还要保证签名不会把私钥信息暴露出去。
如果想证明这个笔记本是你的,我们可以通过笔记本上的笔记来鉴定这是谁的笔记本,空的笔记本是没有印记,没有签名,是无法鉴别出来的。。
巴黎塞纳河畔的艺术桥上为什么有那么多的爱情锁?那是因为这座桥一直被视为浪漫之地,桥上的锁象征着天长地久的爱情,锁是一种独特的记号。
非对对称加密可以在数据上留有独特的印记,这个印记可以证明这件事是你干的,东西是你拥有的,而不是别人的。
我来看如何用非对称来实现。如果Alice要给Bob 10美元,Alice用自己的私钥对这条消息进行签名,签名的目的就是在消息上面留有独特的印记,Alice将签过名的消息发送给Bob,Bob可以用Alice的公钥对这个印记进行鉴定。这个鉴定过程和笔迹的鉴定过程一样。如果鉴定成功是Alice签署的,那么Bob拿这条信息和签名就可以去Alice在银行的账户上取钱了。因为只有Alice有自己的私钥,只能Alice能生成签名,如果Alice对之前给Bob的10美元后悔了,但由于Bob有Alice的签名,能证明是Alice签发的,那Alice是无法抵赖的。身份鉴定的另外一个含义就是不可抵赖。
结束语
在非对称加密的秘钥生成、数据加密和身份鉴定所有过程中,都不会给其他任何人私钥,只是将公钥分发给别人,公钥代表自己行使相关职责。
我们看西游记的时候,发现孙悟空有一项绝技,这项绝技就是“拔猴毛”,孙悟空跑去跟混世魔王大战,他用自己的毛变出了小猴子,围住了混世魔王。非对称加密就像孙悟空拔毛分身一样, 分身小猴子就是公钥, 小猴子替孙悟空收集情报, 然后把情报加密后发给孙悟空, 孙悟空本身就是私钥, 只有孙悟空可解密小猴子发来的数据,别人也解不开。 同时,只有孙悟空能对小猴子发号施令, 小猴子只执行孙悟空的命令, 因为小猴子(公钥)是可以鉴别出哪些命令是孙悟空(私钥)签发的。
非对称加密算法有很多包括RSA、DSS和ECDSA等,在加密货币中用的是ECDSA,也就是我们常说的椭圆曲线加密算法,这个我们在下期讨论。请大家点赞关注gitcoins抖音频道,我们将会分享有趣的、高质量的、加密货币相关的视频。