如何在没有技术术语的情况下解释公钥和私钥的概念?

信息安全 密钥管理
2021-08-26 12:09:04

可能重复:
非对称算法原理简明扼要

本着如何在没有技术术语的情况下解释 SQL 注入?,对于如何向不精通技术术语的人解释密钥对的概念,您有什么建议吗?

4个回答

注意:这个答案是针对真正非技术人员的,我尽量让孩子理解,请不要被冒犯!

假设我想向您发送一些东西,但我不希望其他人能够阅读它。首先想到的是加密加密提供机密性,对吗?确实如此,但有一些问题需要解决。

经典或对称加密需要某种共享密钥在计算机世界中,这称为密钥问题是,为了使用对称加密进行保密通信,我们都必须知道相同的密钥。在我们使用它之前,我们必须通过某种安全的方式相互交流这个密钥。这是一个先有鸡还是先有蛋的情况,我们需要保密地发送密钥才能拥有保密通道。

一种解决方案是在某个地方实际见面,就密钥达成一致(这只是一个非常大的数字),然后分道扬镳。通过这种安排,我们知道我们是唯一知道密钥的两个人,并且我们可以很高兴地使用它相互传输消息,因为知道没有其他人可以读取这些消息。

这个解决方案不能很好地扩展,在互联网世界里,当我们可能想每天与几十个聚会安全交谈时,那将是一大堆秘密会议要建立,一大堆密钥要跟踪的,以及一笔巨额的旅行费用。

输入一些非常聪明的数学家。非对称密码学本质上是一种智能数学,它允许我们使用一密钥。一键加密,一键解密。更重要的是,不可能从另一个生成一个密钥。

可以这样想;加密密钥是一个挂锁。您只需单击它关闭,它就会锁定。解密密钥是像挂锁钥匙。

它是这样工作的;我想和你安全地交流,但我们从未见过面,也没有秘密。

  • 你把你的挂锁寄给我。
  • 我把我的信息写给你,放在一个盒子里,然后用你的挂锁锁上。
  • 您始终握着挂锁钥匙,因此您是唯一可以解锁挂锁的人。一旦我锁定了盒子,什至无法打开它,因为我没有钥匙。
  • 然后我把盒子寄给你,我知道你是唯一可以解锁它的人。

监视我们流量的人可以看到您通过挂锁(加密密钥)发送。但是他们不能用那个挂锁做任何事情,除了锁住只有你可以打开的东西。他们无法检查挂锁以找出如何为它制作挂锁钥匙,系统的数学确保了这一点。

然后他们看到我给你的信息,被挂锁锁住了,但他们没有挂锁钥匙,所以他们不能用它做任何事情。

背景来自这个较旧的答案总结如下:公钥/私钥加密就像一把带钥匙的挂锁。任何人都可以得到一把锁,任何人都可以关闭那个锁来保护一个盒子。锁的主人将钥匙留给自己。

由于一些复杂的原因,使用钥匙锁需要很长时间,而且只能装一个尺寸的盒子。为了更快地进行大量交换,我们通常会在由钥匙锁固定的盒子内发送一个密码锁(对于我们的类比,您可以设置密码的那种),然后我们将您希望锁设置正确的密码贴在上面锁。这些密码锁更通用,可以固定非常大的盒子。明显的问题是,由于您必须将计划打开锁的代码与锁一起发送,因此您必须确保您不想看到您的数据的人不会看到它。

想想位于办公楼或邮局外的蓝色 USPS 邮箱。有一扇门,任何人都可以打开,他们可以用来插入邮件。然而,这扇门是单向的;一旦邮件进入邮箱,其他任何人都无法使用该门将任何邮件取出。取而代之的是,第二扇门由只有邮递员拥有的钥匙保护,他用它来取出所有邮件。

这大致类似于非对称密钥系统。顾名思义,“公钥”是免费提供的;它允许任何人以安全的方式向收件人发送消息。没有其他人,甚至其他发送消息的人都无法看到您发送的内容。如果您忘记了,即使也看不到您发送的内容。只有拥有“私钥”的收件人才能将这些消息取回并阅读它们。

像一把锁一样解释它,但不是金属钥匙,而是使用一把充满奇怪字符的钥匙,这些字符通过数学方程式发送来查看它们是否匹配。如果钥匙匹配,门就会打开。