如何在没有技术术语的情况下解释公钥和私钥的概念?
注意:这个答案是针对真正非技术人员的,我尽量让孩子理解,请不要被冒犯!
假设我想向您发送一些东西,但我不希望其他人能够阅读它。首先想到的是加密!加密提供机密性,对吗?确实如此,但有一些问题需要解决。
经典或对称加密需要某种共享密钥。在计算机世界中,这称为密钥。问题是,为了使用对称加密进行保密通信,我们都必须知道相同的密钥。在我们使用它之前,我们必须通过某种安全的方式相互交流这个密钥。这是一个先有鸡还是先有蛋的情况,我们需要保密地发送密钥才能拥有保密通道。
一种解决方案是在某个地方实际见面,就密钥达成一致(这只是一个非常大的数字),然后分道扬镳。通过这种安排,我们知道我们是唯一知道密钥的两个人,并且我们可以很高兴地使用它相互传输消息,因为知道没有其他人可以读取这些消息。
这个解决方案不能很好地扩展,在互联网世界里,当我们可能想每天与几十个聚会安全交谈时,那将是一大堆秘密会议要建立,一大堆密钥要跟踪的,以及一笔巨额的旅行费用。
输入一些非常聪明的数学家。非对称密码学本质上是一种智能数学,它允许我们使用一对密钥。一键加密,一键解密。更重要的是,不可能从另一个生成一个密钥。
可以这样想;该加密密钥是一个挂锁。您只需单击它关闭,它就会锁定。该解密密钥是像挂锁钥匙。
它是这样工作的;我想和你安全地交流,但我们从未见过面,也没有秘密。
- 你把你的挂锁寄给我。
- 我把我的信息写给你,放在一个盒子里,然后用你的挂锁锁上。
- 您始终握着挂锁钥匙,因此您是唯一可以解锁挂锁的人。一旦我锁定了盒子,我什至无法打开它,因为我没有钥匙。
- 然后我把盒子寄给你,我知道你是唯一可以解锁它的人。
监视我们流量的人可以看到您通过挂锁(加密密钥)发送。但是他们不能用那个挂锁做任何事情,除了锁住只有你可以打开的东西。他们无法检查挂锁以找出如何为它制作挂锁钥匙,系统的数学确保了这一点。
然后他们看到我给你的信息,被挂锁锁住了,但他们没有挂锁钥匙,所以他们不能用它做任何事情。
背景来自这个较旧的答案。总结如下:公钥/私钥加密就像一把带钥匙的挂锁。任何人都可以得到一把锁,任何人都可以关闭那个锁来保护一个盒子。锁的主人将钥匙留给自己。
由于一些复杂的原因,使用钥匙锁需要很长时间,而且只能装一个尺寸的盒子。为了更快地进行大量交换,我们通常会在由钥匙锁固定的盒子内发送一个密码锁(对于我们的类比,您可以设置密码的那种),然后我们将您希望锁设置正确的密码贴在上面锁。这些密码锁更通用,可以固定非常大的盒子。明显的问题是,由于您必须将计划打开锁的代码与锁一起发送,因此您必须确保您不想看到您的数据的人不会看到它。
想想位于办公楼或邮局外的蓝色 USPS 邮箱。有一扇门,任何人都可以打开,他们可以用来插入邮件。然而,这扇门是单向的;一旦邮件进入邮箱,其他任何人都无法使用该门将任何邮件取出。取而代之的是,第二扇门由只有邮递员拥有的钥匙保护,他用它来取出所有邮件。
这大致类似于非对称密钥系统。顾名思义,“公钥”是免费提供的;它允许任何人以安全的方式向收件人发送消息。没有其他人,甚至其他发送消息的人都无法看到您发送的内容。如果您忘记了,即使您也看不到您发送的内容。只有拥有“私钥”的收件人才能将这些消息取回并阅读它们。
像一把锁一样解释它,但不是金属钥匙,而是使用一把充满奇怪字符的钥匙,这些字符通过数学方程式发送来查看它们是否匹配。如果钥匙匹配,门就会打开。