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

「万云科普」如何向非极客解释非对称加密[通俗易懂]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,任何人都可以解密(解锁),这可以作为你对它加密的证据:它就是你的“数字签名”。


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


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

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

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

(0)
上一篇 2022年6月2日 上午8:00
下一篇 2022年6月2日 上午8:16


相关推荐

  • 超过响应缓冲区限制[通俗易懂]

    超过响应缓冲区限制[通俗易懂]Response对象错误'ASP0251:80004005'超过响应缓冲区限制/his/zygl/jzgl_left.asp,行0此ASP页的运行造成响应缓冲区超过其

    2022年7月2日
    42
  • 汇编指令和机器码的对应表pdf_机器码与汇编对应表

    汇编指令和机器码的对应表pdf_机器码与汇编对应表一、状态寄存器PSW(ProgramFlag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:1514131211109876543210   OFDFIFTFSFZF AF PF CF条件码:①OF(OverflowFlag)溢出标志。溢出时为1,否则置0。②SF(SignFlag)符号标志。结果为负时置1,否则置0.③ZF(ZeroFlag)零标志,运算结果为0时ZF位置1,否则…

    2022年8月30日
    3
  • windows开启远程桌面命令

    windows开启远程桌面命令开启远程桌面命令 关闭远程桌面 设置远程桌面端口 默认开启 3389 检查默认端口状态非命令行打开方式 1 打开 控制面板 怎么开启远程桌面连接详细教程 2 点击 系统 怎么开启远程桌面连接详细教程 3 选择 远程设置 怎么开启远程桌面连接详细教程 4 点击 远程 勾选 允许远程协助连接这台计算机 和 允许远程连接到此计算机 点击 确定 怎么开启远程桌面连接详细教程 5 在任务栏搜索 远程桌面连接 并打开 怎么开启远程桌面连接详细教程 6 输入 ip 地址后点击 连接 即可

    2026年3月18日
    2
  • 一文读懂视频编解码原理[通俗易懂]

    一文读懂视频编解码原理[通俗易懂]引子谈到视频的编解码,我们会自然地想到H.264、HEVC/H.265这些权威的视频编解码标准;谈到标准,有人觉得这个是有专门机构去研究的,我们关心应用就好;即使有兴趣读了标准和相关技术,面对更多的是各种数学公式和术语,如协方差、傅立叶变换、高频、滤波等等,需要花更多时间去理解。通常更为实际的做法是,我们只要调研如何应用这些标准,如何做好软硬件编码方案的选型,如何优化技术参数以及如何调用API…

    2022年7月13日
    18
  • PhotoShop中画圆角矩形最简单方法(图文并茂)!

    PhotoShop中画圆角矩形最简单方法(图文并茂)!

    2022年2月4日
    66
  • centos7.4安装docker_pythondocker

    centos7.4安装docker_pythondocker前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

    2022年7月29日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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