seegongsik
我的单词本
安全

悄悄分享一把钥匙

两个人要用同一把锁,就得有同一把钥匙。可这把钥匙怎么递过去呢?寄出去,半路上有人能抄走。当面给,又离得远。出人意料的是,有一种办法,能让两个人最后握着同一把钥匙,却从不真的把钥匙寄出去。他们一起把它造出来。

01

得安全地分享一把快钥匙

前面我们见过两把钥匙,公钥和私钥。
用公钥锁上,只有私钥能开,非常安全。
但有一个弱点。
公钥的办法算起来重,所以慢。
用它来收发一整封长信,太费时间了。
所以实际上我们另用一把快的锁。
锁的钥匙和开的钥匙是同一把的锁,
这叫做对称钥匙。
对称钥匙快,但两边得握着完全相同的钥匙。
怎么把那把相同的钥匙安全地分享,正是今天的问题。

用哪种钥匙办法
点一下两种办法,对比优缺点。

点一下对比两种办法。公钥安全却慢,对称钥匙快却得分享同一把钥匙。

想用快的对称钥匙,这心思很明白。
问题是,把那把钥匙直接寄出去很危险。
要是半路上有人抄走了那把钥匙,
锁再结实也没用了。
谁握着钥匙谁就能全打开。
所以我们需要一种办法,让两个人握着同一把钥匙,
却从不把钥匙本身放到路上。
我来用混颜色把这办法画一画。

02

把私密色掺进公开色

把两个人叫做嘉蓝和娜来。
先两人定下一个都知道的公开色。
这色谁看都行,不藏着。
接着各自在心里定一个私密色。
这私密色绝不给别人看。
嘉蓝把公开色和自己的私密色掺出一个新色,
娜来也把公开色和自己的私密色掺出一个新色。
然后只把这掺好的色寄给对方。
不是私密色,只是掺好的色。
颜色一旦掺了,很难倒推出是哪两种掺的。

嘉蓝
公开色
+
私密色
要寄的色
娜来
公开色
+
私密色
要寄的色
各自把私密色掺进公开色。私密色不寄。

点一下把各自的私密色掺进公开色。只有掺好的两个色互相寄出。私密色不寄。

现在嘉蓝手里拿着娜来寄来的掺好的色,
娜来手里拿着嘉蓝寄来的掺好的色。
两人也都知道公开色。
可眼下两人各拿着不同的色。
要变成同一把钥匙,还剩一步。
这里发生了一点像魔法的事。
各自把自己的私密色再往收到的色里掺一次,
两个人就到达完全相同的色。
为什么会变一样,下面亲自看看。

03

两人到达同一个最终色

嘉蓝手里拿的是掺了娜来私密色的色。
往这里嘉蓝再掺一次自己的私密色。
于是就成了公开色掺进两人私密色的色。
娜来也照样做。
娜来拿的是掺了嘉蓝私密色的色,
往那里娜来再掺一次自己的私密色。
结果同样是公开色掺进两个私密色的色。
哪怕掺的顺序不同,进去的色一样,结果就一样。
所以两人到达完全相同的最终色。
这个最终色正是只有他俩知道的共享秘密,也就是对称钥匙。

嘉蓝
收到的色
+
我的私密色
最终色
娜来
收到的色
+
我的私密色
最终色
把自己的私密色掺回收到的色里。

点一下把自己的私密色再往收到的色里掺一次。亲眼看嘉蓝和娜来到达完全相同的最终色。

两个格子的最终色变成一样的了。
钥匙本身一次都没上过路。
来回经过的只有公开色和各自掺好的色。
可两人还是把同一把钥匙拿到了手。
这就是密钥交换的关键。
不是寄出同一个秘密,而是一起造出来。
这样自然就有了这样的担心。
要是有人把来回的色全偷看了,会怎样?
那还安全吗?

04

偷看也造不出最终色

想想有个人盯着路上来回的每种色。
这人知道公开色,因为谁都知道。
他看见了嘉蓝寄的掺好的色,
也看见了娜来寄的掺好的色。
那他能造出最终色吗?
造不出。
造最终色需要某人的私密色,
可私密色一次都没上过路。
从掺好的色里把私密色再抠出来也极难。
所以偷看的人到达不了相同的最终色。
这就是密钥交换所守护的防御核心。

偷看的人看到了什么
?最终色 (造不出)
把偷看的人在路上看到的东西一个个点出来。

点一下点出偷看的人手里有什么。公开色和来回的掺好的色看得见,可没有私密色,造不出最终色。

偷看的人手里留了一处空白。
因为缺了最后一块,私密色。
光凭公开的信息填不出最终色。
所以嘉蓝和娜来可以放心,
把这个最终色当作只属于他俩的对称钥匙来用。
一把快的对称钥匙,没把钥匙掉在路上就到手了。
现在只点一件事,然后理一理。
密钥交换跟用公钥加密内容不是一回事。
这是常被搞混的地方,最后把它清楚地分开。

05

来理一理

归成一句话,是这样。
公钥安全却慢,
所以真正的内容用快的对称钥匙来收发。
那把对称钥匙不是寄出去,而是一起造出来。
把各自的私密色掺进公开色再交换,
再把自己的私密色掺回收到的色里,
两人就到达同一个最终色,也就是共享秘密。
偷看的人没有私密色,造不出那个色。
最后,密钥交换跟公钥加密不是一回事。
密钥交换是一起造出同一个秘密的步骤,之后再用对称钥匙快速收发。

把两个概念分开
点一下两个概念,把含义和用途分开。两者是不同的事。

点一下把两个概念分开。密钥交换是一起造出共享秘密,公钥加密是用公钥锁住内容。

现在你知道了,隔得很远的两个人
不把钥匙掉在路上,
也能一起握着同一个秘密。
把私密色掺进公开色,只交换掺好的色,
再各自掺回私密色,到达同一个最终色。
这个简单的混颜色,
就是我们安全使用互联网的根基。
下回,在这样造好的安全通道上,
怎么确认对方真是他声称的那个人,
咱们一起看下去。

一句话总结公钥安全却慢。所以实际上我们用一把快的对称钥匙来收发真正的内容。问题是这把对称钥匙怎么安全地分享。答案是一起造出来。用混颜色来画,两人都从一个谁都知道的公开色出发,各自掺进一种私密色,只把掺好的色寄给对方。把自己的私密色再掺进收到的色里,两人就到达完全相同的最终色。这个最终色就是共享秘密,也就是对称钥匙。在中间偷看的人,看得见公开色和来回经过的掺好的色,可没有各自的私密色,就造不出相同的最终色。要留意一点:密钥交换跟用公钥加密内容不是一回事。密钥交换是两边一起造出同一个秘密的步骤,造好对称钥匙后,才用它来快速收发真正的内容。
安全
如果有帮助,请支持我们