首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

‍‍

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

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

对称加密

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

比如,英文就可以认为是中文的密码,当我说 我爱你 时,我可以说 “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亿年。

如何破解私钥

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

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180221G0QLIR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券