美文网首页
简析虚拟货币世界的密码学

简析虚拟货币世界的密码学

作者: 链人成长chainerup | 来源:发表于2019-09-19 09:16 被阅读0次

本文将简单讲解虚拟货币世界中的密码学,以便在理解比特币、以太坊等虚拟货币时 对公私钥、账号、交易等概念有一个初步的认识。本文不会讲解具体的密码学原理,只会贴出一些引用链接,供感兴趣的伙伴阅读。

1 对称加密

对称加密是加密、解密使用同一套密钥。
优点是 加解密运算快。
缺点是 传递密钥的过程不安全;另外,如果有N个节点,那么系统中就需要维护N!/2 套密钥,管理起来不方便。

2 非对称加密

为了解决需要管理多组密钥的问题,增强安全性,就诞生了非对称加密。
非对称加密就将加解密使用的密钥分开。分成公钥跟私钥,这样只要将公钥对外公开即可,私钥保留,不需要在网络上传输。加密使用公钥,解密则需要私钥。如果加密使用私钥,则需要公钥解密。

优点是安全且不需要管理多套密钥。
缺点是 加解密速度慢。

解决方案是 混合加密方案。https就是采用这种方案。大体的步骤是采用非对称加密交换 对称加密的密钥,确认好对称加密的密钥之后,采用对称加密。

2.1 椭圆加密算法

常见的非对称加密有RSA等,在虚拟货币的世界中,采用的是椭圆加密算法。
具体的算法可以参考 https://zhuanlan.zhihu.com/p/36326221

3 数字签名

数字签名就是一种证明身份的算法,在数字世界里用于身份辨识的一种解决方案。比如如何证明非对称加密过程中 张三 发送的公钥是 张三的? 数字签名就是做这个事情。有一个权威的CA机构可以验证。
数字签名 的使用过程中,会先将要发送的信息生成数字摘要,然后对数字摘要进行签名。为什么生成摘要,主要是为了减少签名的工作量。其实如果直接对原生信息直接签名也可以。

下面有个不错的文章来介绍数字签名
http://www.youdzone.com/signature.html

4 Https中的应用

https://www.cnblogs.com/xiohao/p/9054355.html
其过程如下:

(1) 浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey)、对称加密算法种类及其他相关信息返回客户端;
(2) 客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发。若是,执行4步;否则,给客户一个警告信息:询问是否继续访问。
(3) 客户端浏览器比较证书里的信息,如证书有效期、服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证。
(4) 服务器要求客户端发送客户端证书(包含客户端公钥C_PuKey)、支持的对称加密方案及其他相关信息。收到后,服务器进行相同的身份认证,若没有通过验证,则拒绝连接;
(5) 服务器根据客户端浏览器发送到密码种类,选择一种加密程度最高的方案,用客户端公钥C_PuKey加密后通知到浏览器;
(6) 客户端通过私钥C_PrKey解密后,得知服务器选择的加密方案,并选择一个通话密钥key,接着用服务器公钥S_PuKey加密后发送给服务器;
(7) 服务器接收到的浏览器传送到消息,用私钥S_PrKey解密,获得通话密钥key。
(8) 接下来的数据传输都使用该对称密钥key进行加密。

5 散列(哈希)算法

本质上,散列算法的目的不是为了“加密”而是为了抽取“数据特征”。你也可以把给定数据的散列值理解为该数据的“指纹信息”。

6 总结

本文简单讲解了对称加密、非对称加密、数字签名、散列算法。并且将加密算法和数字签名在Https中的应用做了简析,希望对你有用~

7 参考文献

椭圆加密算法 https://zhuanlan.zhihu.com/p/36326221
比特币背后的密码学原理 https://www.jianshu.com/p/225ff9439132
数字签名 http://www.youdzone.com/signature.html
https 过程 https://www.cnblogs.com/xiohao/p/9054355.html

8 其他

本文是讲解虚拟货币 公私钥、地址的前奏文章-《简析虚拟货币世界的密码学》,如果有疑问,可以直接留言,也可以关注公众号 “链人成长chainerup” 提问留言,或者加入知识星球“链人成长” 与我深度链接~

相关文章

网友评论

      本文标题:简析虚拟货币世界的密码学

      本文链接:https://www.haomeiwen.com/subject/ertkuctx.html