「万云科普」如何向非极客解释非对称加密
Posted Wancloud万云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「万云科普」如何向非极客解释非对称加密相关的知识,希望对你有一定的参考价值。
非对称加密是什么?相信作为小白的你在网上看过各种花式回答之后也仍旧不知所以。但作为区块链技术的关键词之一,密码学是不可绕过的一座桥。
||废话不多说,今天万云就先教你三分钟Get非对称加密的独家方法。
以下翻译自: Panayotis Vryonis《Explaining public-key cryptography to non-geeks》
https://medium.com/@vrypan/explaining-public-key-cryptography-to-non-geeks-f0994b3c2d5
遵循让大家更好懂的原则,本文部分删改。
非对称加密其实并不如它听起来的那么复杂,我们只需要换个方式解释它,就能让不是极客的你也秒懂。
为什么我想用一种通俗易懂的方式来解释深奥的非对称加密?是因为我正在研究一种会大量使用加密的产品,我自己最近不止一次向朋友解释非对称加密,而令我惊讶的是,网上所搜索到的任何相关信息都让它看起来更加复杂,但事实并非如此。
下面进入正题。
首先,让我们先了解下“对称”加密是如何工作的。
老王有一个带锁的盒子,同时老王也有一把属于自己的钥匙可以开关这个盒子。当老王想要保存某些重要物品在盒子中,他会将其上锁;只有他或其拥有备份钥匙的人才能打开盒子。
这就是对称加密:你有一把钥匙,你用它来关锁(加密)和开锁(解密)你的盒子(数据)。
对称加密很好懂对不对,现在让我们在此基础上来看看非对称密码学是如何工作的。
小明也有一个盒子,这个盒子比老王的更高级一点,因为这是一个带有特殊锁的盒子。
它特殊在何处呢?
直接看图▼
从上图可以看出小明的盒子上的锁有三种状态:A(锁定),B(解锁)和C(锁定),一定要记住这三个字母分别代表的状态。
同时,小明的盒子配有两把不同的钥匙。
第一个把钥匙只能顺时针转动,从A转到B转到C,第二把钥匙只能逆时针转动,从C转到B转到A。
小明从这两把钥匙中挑选第一把钥匙归自己所有,这就是小明的私钥,只有小明配拥有它,为了保护好盒子,小明一般都把私钥藏到别人找不到的地方。
小明盒子的第二把钥匙是 “公开”钥匙:他把第二把钥匙复制了一百把(也可以更多),给了他的朋友和家人,在办公室的桌上也留下了一把,甚至直接挂了一把在办公室门外。
现在,我们整理一下思路,小明的私钥,可以从A转到B到C,只归他个人所有;小明的公钥,可以从C转到B到A,其他人只要想要都可以获得。(不明白的老铁可以再看下上文的图)
小明的盒子特殊之处我们搞清楚了,那小明可以利用这个盒子做什么羞羞的(正经的)的事情呢?
直接来举个例子!
你想发送一个链圈大佬的大八卦给小明,但是又不想让别人知道。如何是好呢?
你想起小明有个特殊的盒子!
于是你将这个八卦放在小明的盒子中,并用小明的公钥副本将盒子上的锁从C转到B转到A,这时候文件就被锁在了盒子里(A的状态是锁定)。是的,你清楚地记得:小明的公钥只能逆时针旋转,所以你把它转到位置A,现在这个八卦就被锁定了。
然后??????
小明回来了,他用他的私钥把盒子上的锁从A转到B,B的状态是解锁,盒子打开了!小明看到了八卦,没想到他崇拜的链圈大佬居然做出这种事???
所以到底是什么大八卦???通过这个盒子来传递信息,只有小明和你知道。
因为,这个盒子唯一可以顺时针从A转到B的钥匙是小明的私钥。
是不是豁然开朗! 这就是我们所说的公钥加密,也就是非对称加密:每个拥有小明公钥的人(很容易找到它的一个副本,他到处都放了,记得吗?)可以将文档放在他的盒子中,从C转到B转到A,形成锁定状态;而最终能解锁的人只有小明,因为小明的私钥是从A开始转,转到B就解锁了。所以就算有人想知道你到底发了什么八卦给小明,也无法获取哦!
知道这个原理的你,八卦之心碎了一地。
那,小明这个特殊的盒子还能做什么呢?
再来举个例子!
假设小明在盒子中放置了一个文件并用他的私人钥匙将锁转到位置C来锁定。
可是小明为什么要这样做?????毕竟,任何拥有公钥的人都可以从C转到B,然后解锁它!
等等!一定有什么我没发现的重要线索!
果然,有人送给我一个盒子,他说这是小明的,但是我并不能确认这个盒子就是小明的,为了验证它,我从保存各种好朋友公钥的抽屉里挑选小明的公钥,然后尝试我右转,盒子一动不动;然后我尝试左转,砰!箱子打开!于是我验证了这个盒子确实是属于小明的。
小明通过私钥加密这个方式证明是他自己而不是其他任何人把文件放在箱子里。我们把这个证明方式称之为“数字签名”。
好了,今天的例子就到这里,我们言归正传。
在数字世界中,“钥匙(keys)”其实就是数字,有长有短。您可以将您的私钥,其实就是一串数字保存在文本文件或特殊应用程序中。 你可以把你的公钥,也是一个很长的数字,放在你的电子邮件签名中,你的网站等等公开的地方。而且不需要特殊的盒子,你只需用一个应用程序和你的钥匙来“锁定”和“解锁”文件(或数据)。
如果任何人,即使是你,用你的公钥加密(锁定),也就逆时针转到锁定状态A,只有你可以用你的私钥解密(解锁),因此别人通过公钥传送给你的加密文件,只有你能够解密,相信第一个例子已经解释得很清楚了。
如果你用你的私钥加密(锁定),也就是转到锁定状态C,任何人都可以解密(解锁),这可以作为你对它加密的证据:它就是你的“数字签名”。
还有许多更为复杂的场景:我们可以使用我们的私钥来签名文件,然后使用其他人的公钥对其进行加密,以便只有他可以读取它。 一个用户或一个组织可以对其他用户的密钥进行数字签名,以验证其真实性等等。但是,所有这些实际上都是使用一个或另一个密钥并将其放入其他盒子中,不属于这篇文章的讨论范围。
今天万云的技术科普就到这,关于密码学还有任何你想了解的,都可以通过后台留言小编。
End
万云www.wancloud.io
万云是国内首个中立的区块链开放创新平台,致力于通过分布式商业模式让区块链技术切实为行业服务。结合区块链技术和云计算服务,万云向社区、企业和开发者提供一整套区块链的基础设施,运行环境,API 服务和开发工具。通过专业,便捷,灵活的底层服务,万云致力于降低区块链应用研发门槛,为用户节省开发及运营成本,减少重复性工作,从而促进区块链业务的真正落地。已上线的区块链应用可以通过登录万云市场,快速便捷地面向广大开发者和产品用户。
区块链
开放创新平台
▼快速上车,就在万云
以上是关于「万云科普」如何向非极客解释非对称加密的主要内容,如果未能解决你的问题,请参考以下文章