「万云科普」如何向非极客解释非对称加密[通俗易懂]

「万云科普」如何向非极客解释非对称加密[通俗易懂]from:https://mp.weixin.qq.com/s/E-i4a5sEKWRRq3f0zzXekQ解释的通俗易懂,mark一下。非对称加密其实并不如它听起来的那么复杂,我们只需要换个方式解释它,就能让不是极客的你也秒懂。为什么我想用一种通俗易懂的方式来解释深奥的非对称加密?是因为我正在研究一种会大量使用加密的产品,我自己最近不止一次向朋友解释非对称加密,而令我惊讶的是,网上所搜索到的任…

大家好,又见面了,我是你们的朋友全栈君。

from:https://mp.weixin.qq.com/s/E-i4a5sEKWRRq3f0zzXekQ

解释的通俗易懂,mark 一下。

非对称加密其实并不如它听起来的那么复杂,我们只需要换个方式解释它,就能让不是极客的你也秒懂。


为什么我想用一种通俗易懂的方式来解释深奥的非对称加密?是因为我正在研究一种会大量使用加密的产品,我自己最近不止一次向朋友解释非对称加密,而令我惊讶的是,网上所搜索到的任何相关信息都让它看起来更加复杂,但事实并非如此。


下面进入正题。


首先,让我们先了解下“对称”加密是如何工作的


老王有一个带锁的盒子,同时老王也有一把属于自己的钥匙可以开关这个盒子。当老王想要保存某些重要物品在盒子中,他会将其上锁;只有他或其拥有备份钥匙的人才能打开盒子。


这就是对称加密:你有一把钥匙,你用它来关锁(加密)和开锁(解密)你的盒子(数据)。


对称加密很好懂对不对,现在让我们在此基础上来看看非对称密码学是如何工作的


小明也有一个盒子,这个盒子比老王的更高级一点,因为这是一个带有特殊锁的盒子。

它特殊在何处呢?

直接看图▼


「万云科普」如何向非极客解释非对称加密[通俗易懂]

                         

从上图可以看出小明的盒子上的锁有三种状态: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,任何人都可以解密(解锁),这可以作为你对它加密的证据:它就是你的“数字签名”。


还有许多更为复杂的场景:我们可以使用我们的私钥来签名文件,然后使用其他人的公钥对其进行加密,以便只有他可以读取它。 一个用户或一个组织可以对其他用户的密钥进行数字签名,以验证其真实性等等。但是,所有这些实际上都是使用一个或另一个密钥并将其放入其他盒子中,不属于这篇文章的讨论范围。


今天万云的技术科普就到这,关于密码学还有任何你想了解的,都可以通过后台留言小编。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137359.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python网络爬虫精要

    Python网络爬虫精要

  • 图像分割的评价指标_图像实例分割

    图像分割的评价指标_图像实例分割图像分割可分为:语义分割,实例分割,全景分割1、语义分割(semanticsegmentation):标注方法通常是给每个像素加上标签;常用来识别天空、草地、道路等没有固定形状的不可数事物(stuff)。2、实例分割(instancesegmentation):标注方法通常是用包围盒(bbox?)或分割掩码标记目标物体;常用来识别人、动物或工具等可数的、独立的明显物体(things…

  • Matlab中sqrt函数的用法「建议收藏」

    Matlab中sqrt函数的用法「建议收藏」目录语法说明示例向量元素的平方根输入参数详细信息IEEE合规性提示sqrt求解平方根语法B=sqrt(X)说明B=sqrt(X)返回数组X的每个元素的平方根。对于X的负元素或复数元素,sqrt(X)生成复数结果。sqrt函数的域包含负数和复数,如果使用不当,可能会导致意外结果。对于负的复数z=u+i*w,复数方根sqrt(z)返回sqrt(r)*(cos(phi/2)+1i*sin(phi/2))…

  • 恢复pycharm中误删的Python文件

    恢复pycharm中误删的Python文件(1)找到删除的上一级文件=>右键,找到LocalHistory=>ShowHistory(2),打开之后,双击左边的恢复时间内容,在右边操作框中,恢复,这里只能一个一个恢复(3)注意,这里恢复,应该选择第二个”RevertSelection”.(4)再恢复的时候可能需要等几秒,这样就成功恢复了….

  • 脱壳——UPX脱壳原理(脱壳helloworld)

    脱壳——UPX脱壳原理(脱壳helloworld)脱壳——UPX脱壳原理脱壳步骤1找到OEP2dump(导出)内存文件3修复1找到OEP1程序运行先从壳代码运行,壳代码执行完之后会跳转到真正的OEP,也就是是说第一步,首先要找到

  • pip更新命令以及使用清华镜像快速安装OpenCV-python

    pip更新命令以及使用清华镜像快速安装OpenCV-pythonpip更新命令以及使用清华镜像快速安装OpenCV-python1.pip更新:首先尝试使用pipinstallOpenCV-python进行安装,如果安装出现这种情况:则使用以下命令: python-mpipinstall-U–force-reinstallpip2.使用清华镜像快速安装OpenCV-python如下命令: pipinstallopencv…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号