比特币的公钥加密和数字签名的基本原理解析

 我们一步一步的讲,先以最简单的     发电      子邮件为例。

现在A向B发出一封em     ai   l,这封邮件是加密的,根据之前的公钥加密原理也就是非对称加密原理,B是收email的,那么,A就拿着B的公钥加密这个email信息,B收到后用自己的私钥就可以解开这个email信息,知道里面的内容。

大家对这个非对称加密的流程已经比较熟悉了,这里面有一个问题,如果这个email的信息很重要,当然,不重要也不需要非对称加密了。我是说如果这个信息里面是关于钱的,最直接的说就是A在邮件里写了,“我欠了B十万块钱”,这时候这个email就有了一点点类似欠条的法律效用。

问题来了,欠条都需要有个签字签名手印等凭证,这个email有什么凭证呢?没有,只能说这个email是写给B的,因为是B的公钥加密的,也只有B能用自己的私钥解开看到,但是没有什么凭证说明是谁写的。

这个时候就需要一个东西,叫做数字签名,就像是现实世界的亲笔签名、按手印。

数字签名如同     指纹   一样独一无二。怎么做呢?

A发信息给B,用自己的私钥去加密这段信息,这时候B收到后,拿着A的公钥(公开的),去验证下是A发出的,这就是数字签名。

这时候结合之前的方法,A发出的时候用A自己的私钥对信息进行签名,然后用B的公钥进行加密,B收到后有B自己的私钥解密看到信息,又可以用A的公钥验证签名,整个流程就完成了。

 比特币的公钥加密和数字签名的基本原理解析_设计制作_可编程逻辑

用公钥加密就是上图,公钥密码的基本流程,用私钥加密就是下图,其实是一样的,只不过翻了过来,一个用公钥,一个用私钥。

 比特币的公钥加密和数字签名的基本原理解析_设计制作_可编程逻辑

而私钥加密相当于生成签名,而用公钥加密相当于验证签名。

公钥和私钥是成对出现的,有严谨的数学逻辑,用公钥加密的密文只能用与之对应的私钥进行解密;同样的,用私钥加密的密文需要与之对应的公钥进行解密。也就是说用某个公钥如果成功解密了密文,说明这个密文就是用和这个公钥对应的私钥加密得到的,而世界上掌握这个私钥的人只有一个,也就是这个私钥的主人。

讲到这里,你就知道了,     比特币   的交易信息传递,也是这样的。

 比特币的公钥加密和数字签名的基本原理解析_设计制作_可编程逻辑

以上摘自比特币的白皮书(中英文版本都放在上面),相信各位读者第一次看到这图的时候,也是比较懵逼的状态,因为不理解非对称加密(公钥加密)的话,理解这个图有一定困难。

从创始区块开始的转账都在这一个链条上,产生新的比特币的方法就是挖矿,也就是生成货币的过程。而每一个交易比特币的人,或者说转账,我转给你10个比特币,这个信息就是我的私钥对之数字签名,收到比特币的人拿我的公钥进行验证,就知道是我转的,而我转给你的信息就是我拿着你的公钥加密的,这个别人看得到对应的地址,别人也知道我这个地址转给你的地址,但是能使用这个地址上的比特币的只有拥有私钥的你一个人。地址对应的人具体是谁不知道,也就是公开透明的转账,但是又保护隐私的原理。

至于私钥推出公钥(反过来不行),公钥推出公钥哈希(反过来不行),公钥哈希推出地址(反过来可以),这个过程不是很难的东西,随意去网上搜索就可以知道。公钥私钥加密解密的过程在比特币网络上自动就完成了,你看到的就是比特币从一个地址转到另一个地址。

所以,整个密码学系列文章讲到这里就打通了整个知识链条,从隐藏法、移位替换法到维基尼亚加密法到恩尼格玛机,然后讲到非对称加密、哈希函数,以及利用哈希函数的挖矿原理,利用非对称加密的数字签名。比特币就是建构在这个密码学之树上的一个重要果实。

如果你认真读过这一个系列的文章,相信会超过很多人对密码学和比特币的认知,而如果能做到这一点,我的工作就没有白费,我也希望看到文章的你,当有朋友问你比特币是什么的时候,比特币怎么转账的时候甩出一句“你知道非对称加密法吗?你知道哈希函数的作用吗?我来给你讲讲吧”,当然,你也可以把我的系列文章发给朋友,先搞清楚基本原理,后面的都好理解。
来源: 加密二锅头

66
56
0
80

相关资讯

  1. 1、Win11怎么进入安全模式?Win11进入安全模式的方法3167
  2. 2、Win7旗舰版默认网关不可用怎么回事?951
  3. 3、键盘上ScrollLock键怎么关闭?1289
  4. 4、Win11英文版分辨率怎么调整?Win11英文版分辨率调整方法介绍3378
  5. 5、Win10专业版怎么解除管理员阻止运行?1045
  6. 6、电脑内存4g和8g有什么区别?电脑内存4g和8g区别介绍2987
  7. 7、Win10怎么恢复被卸载的自带记事本?win10恢复自带应用的技巧4396
  8. 8、如何用抖音将泡沫水拍出星空效果用抖音将泡沫水拍出星空效果的方法1749
  9. 9、电脑显示标准vga图形适配器怎么更改驱动?2715
  10. 10、怎么查看自己电脑的分辨率?查看自己电脑的分辨率的方法3277
全部评论(0)
我也有话说
0
收藏
点赞
顶部