我希望使用真实世界的锁来演示非对称加密。例如,我想在一张纸上写下一个秘密,然后将它存放在一个上锁的盒子里。有没有我可以买的带有两把钥匙的锁,一把只锁锁,另一把只开锁?
4 回答
通常的例子是挂锁和钥匙。
Bob 给了 Alice 一把挂锁(他的“公钥”),他保留了挂锁的钥匙(他的“私钥”)。
爱丽丝在一个盒子里放了一条消息,然后把挂锁扣在盒子上。然后她把盒子寄给鲍勃。
Bob 可以用他的钥匙解锁它。
我喜欢大卫的回答,但只是想提一下,我已经看到这是一个不好的安全例子——原因是没有办法确保爱丽丝收到鲍勃发送的挂锁(夏娃可以把它换成运输中的不同挂锁)
然后演示转到一个带有一个盒子和两个挂锁的示例,这证明是安全的……
爱丽丝将消息放入盒子并用她的挂锁(公钥挂锁)将其锁定 将盒子发送给收件人(鲍勃)
Bob 添加了另一个挂锁(私钥挂锁) 将盒子发送回 Alice
Alice 移除了公钥挂锁(使用她的密钥),这意味着该包现在仅受私钥保护。
爱丽丝将盒子返回给鲍勃,鲍勃现在可以用私钥解锁。
为了增加效果,您可以让 Eve 来回传递盒子,并显示 Eve 绝对不能进入盒子。这是一个很好的物理示例,并且很容易理解,以显示包装在所有方面都是安全的。
使用带有两扇门和两把不同锁的盒子。安排盒子的内部结构,使其以一种方式工作,类似于街角邮箱。
或者,查看框加挂锁组合作为加密密钥。您通过获取 1) 一个盒子,2) 挂锁,3) 将一些东西放入盒子并锁定它来构建一条消息。该挂锁的物理密钥就是解密密钥,它适合模型,因为加密密钥无法解锁消息。
如果您想更进一步,请查看CoreStreet 的智能卡锁产品。这是他们的事。