区块链:对称加密和非对称加密

Posted 码农视角

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链:对称加密和非对称加密相关的知识,希望对你有一定的参考价值。







今天我们聊一下加密的一些概念。加密是区块链的基础知识之一,不过,在了解加密前,先忽略你所了解的区块链的所有概念。

加密分为对称加密和非对称加密,生活中我们都会遇见。


区块链:对称加密和非对称加密





对称加密


对称加密是最常见的一个方法,对称加密指的是解密是加密的逆过程,只要知道加密算法和加密因子,就可以破解密码了。


比如,英文就可以认为是中文的密码,当我说 我爱你 时,我可以说 “I Love you "。所有懂得这个对应关系的,都会快速解密。


中英文之间的对应关系是公开的,大家都可以换算,如果我不想让别人知道呢?


那么我就可以用每一个字母的下一个字母来代替,这样大家是看不懂“J MPWF ZPV”了,当我们把每个字母后退一个后,又变成了“I LOVE YOU”。


所以,对于对称加密来说,解密就是加密逆过程。


我只要知道了你的加密方法,我就可以根据密文推算出你的原文来。


这个方法人类很久前就用了,最有名的肯定是凯撒密码。


这个方法最大的问题是,如果你用同样的方法加密,这样我只要猜出了你的加密算法,我就破解了你所有的密文。


所以,对称加密需要经常换加密算法(或者加密因子),同时又要把加密算法(加密因子)通知需要解密的人。


这样问题来了,因为这个通知过程非常不安全。


对于安全人员来说,我只要去截获你的加密算法就好了。反正如果你的加密算法不传播出去,你传播再多密文也没有意义。


那么有没有什么方法,我可以大胆的,公开的传播密文(加密后的文字)以及加密算法呢?


有的,聪明的人类发明了非对称加密。


非对称加密


非对称加密,也就是解密并不是加密的逆过程。


如果加密是A的话,那么解密就(必须)是B。同时,如果加密是B的话,解密就必须是A。这其中,我们选A作为我的私钥,私密保持,不告诉任何人,而B作为公钥,大肆宣传,让全世界都知道。


而A永远不等于B。


在这种情况下,你要如何传递一个信息呢?


比如,你是美国的情报员甲,你要传递一个信息给远在德国的间谍乙。如何做呢?


很简单,你只需要用乙的公钥加密你的信息,然后大肆发送就可以了。任何人都可以看到这个信息,不过,只有拥有的乙的私钥的人,才可以看懂这个信息:希特勒是个魂淡。


是不是很简单?如果乙要回复甲的信息也很简单,乙只要用甲的公钥加密,然后大肆发送就可以了,反正除了你谁都看不懂:美国也是魂淡。


助记词和助记码


公钥你不需要记忆,这个是会大肆宣传的,肯定会有机构来登记所有人的公钥,就像YAHOO曾经做过的那样。


那么私钥应该如何处理呢?私钥太重要了,只要获得了私钥,就获得了所有你的信息。


目前保护私钥还是用的很传统的方法,也就是对称加密。


方法1:助记词,用一串容易记忆的字符串(Man Always Remember Love Because Of Romance Only),用对称加密方法对私钥进行加密,这样你只要记住助记词,就记住了打开私钥的方法。


什么?你记不住?那么这个助记词就很无奈了,毕竟人家叫助记词呀。


那就方法2:密码,用你的生日,你女朋友的生日做为密码,用对称加密的方法对私钥进行加密。只要你记住你的生日或者你女朋友的生日就好了。


所以,助记词或者密码,是用来管理你的私钥的,并不是私钥的一部分。


那有没有其他的方法呢?有。


比如用笔,记下你的私钥,然后保存到保险箱里。


又比如把它刻在石头上,然后把石头放在保险箱里。


区块链


区块链就是一些区块, 那么区块为什么属于你?



而所谓的钱包就是帮你管理私钥的工具。


小贴士


破解这个私钥(AES256)有多难呢?用数字来说话吧,这个复杂的是2^256。


3×10^23等于宇宙中恒星的数量,大于地球中沙子的数量。2^256>2^(10*25)>10^(3*25)=10^75>>>3×10^23

现在问题来了,假设你能够把每一粒沙子做出一个存储设备,存一个值。你只能存储3*10^23个不同的答案,而你没法全部试一遍,(只考虑存储)。如果是1秒钟尝试20亿亿次不同的组合。10^75/(20*10^8*10^8*86400*365)=10^58/86400/365/2>10^50年。

这么长时间远远大于太阳的寿命,6*10^9亿年。


如何破解私钥


那么,是不是私钥就不可破解呢?当然可以,这就要从私钥的保存上去下手了。


不管是助记词还是密码还是保险柜都是可以破解的。


还有诱惑,比如美女什么的,还是威胁,比如使劲打一顿。


以上是关于区块链:对称加密和非对称加密的主要内容,如果未能解决你的问题,请参考以下文章

区块链科普系列1——非对称加密

区块链科普:非对称加密椭圆曲线加密算法

烧脑文区块链科普:非对称加密椭圆曲线加密算法

干货!区块链从业者必备知识!——科普:非对称加密椭圆曲线加密算法

区块链中的非对称加密技术

区块链中的非对称加密技术