English 中文(简体)
有一把物理锁可以演示非对称加密原理吗?
原标题:Is there a physical lock that can demonstrate asymmetric crytographic principles?

我希望通过现实生活中的锁来演示非对称加密。例如,我想在一张纸上写下秘密,然后将其放入一个锁着的箱子中。有没有一种锁可以买,带有两个钥匙,一个只能“锁定”锁,另一个只能“解锁”锁?

最佳回答

通常的例子是一个挂锁和它的钥匙。

鲍勃给爱丽丝一个挂锁(他的"公钥"),而他保留了那个挂锁的钥匙(他的"私钥")。

爱丽丝放了一张纸条在盒子里,然后把挂锁扣上了。接着她把盒子寄给了鲍伯。

Bob可以用他的钥匙打开它。

该网址提供了这个算法的扩展版本: https://web.archive.org/web/20130708131404/http://www.economicexpert.com/a/Asymmetric:key:algorithm.html

问题回答

我喜欢David的答案,但我想提一下,我见过这被证明为安全性的糟糕示例 - 这样做的原因是无法确保Alice收到Bob发送的挂锁(Eve可能在传输中将其替换为其他挂锁)。

然后演示转移到一个有一个盒子和两个挂锁的例子,这明显是安全的。

Alice puts message inside the box and locks it with her padlock (public key padlock) Sends box to recipient (Bob)

Bob adds another padlock (private key padlock) Sends box back to Alice

爱丽丝使用她的钥匙移除了公钥挂锁,意味着包裹现在只受私钥保护。

艾丽丝归还盒子给鲍伯,他现在可以用私钥解锁。

为了增强效果,你可以让夏娃来回传递盒子,并表明在任何时候夏娃都不能进入盒子。这是一个很好的物理实例,非常容易理解,可以显示包装在所有关键地点都是安全的。

使用一个有两道门和两个不同锁头的盒子。安排盒子的内部结构,使其只能单向运作,类似于街角邮箱。

或者,将盒子加垫子(combination)视为加密钥匙。 您通过获取1个盒子、2个盒子、3个箱子把一些东西放在盒子里并锁定。 然后,该星号是加密钥匙,符合模型,因为加密钥匙可以打开电文。

神奇的锁应该有两个钥匙(我们假设它们是钥匙1和钥匙2)。

如果你用钥匙1锁上它,你就不能用钥匙1打开它。

如果你用key2锁定它,那么你就不能用key2解锁它。

如果您使用钥匙1锁定它,那么您必须使用钥匙2将其解锁。

如果您用钥匙2锁定它,则必须使用钥匙1将其解锁。

所以,如果我用钥匙1锁定,那么另一个人将使用钥匙2锁定。然后他就可以用钥匙2锁定它,而我则可以用钥匙1打开它。

让我们再向前迈进一步。让我们制作1000份key2的副本并公开分发。现在任何人都可以拿走key2(包括小偷和骗子),锁上盒子,只有我有key1才能打开它。这将给我们保密性。

现在,如果我用key1锁定一条消息,那么1000个人(包括窃贼和骗子)可以用key2打开它。所以,机密性就荡然无存了。那么为什么会有人想这么做呢?好吧,这样做能够给我们带来真实性。我的意思是,如果你能够用key2打开盒子,那么盒子里面的消息肯定是我写的,因为只有我有key1。

In encryption world we call key1 private key and key2 public key. The keys are mathematically linked to each other. To be a little more precise, both keys are created with a equation which has lots of solutions. You can only unlock if you can get the solution. Now, key1 has enough hints to get the solution of key2, and key2 has enough hints to get the solution of key1.

那就是非对称加密的要点。

如果你想更进一步,可以查看CoreStreet的智能卡锁产品。这是他们的业务。





相关问题
AES 256 in CTR mode [closed]

ctr mode makes it possible to use a block cipher as a stream cipher but how strong will be the encryption in this mode ?

Illegalkeysize exception

I am using the Bouncy Castle Java cryptographic algorithm implementation. I am getting an IllegalKeySizeException. To overcome this I have even changed my java security jars (local_policy.jar and ...

Can two different strings generate the same MD5 hash code?

For each of our binary assets we generate a MD5 hash. This is used to check whether a certain binary asset is already in our application. But is it possible that two different binary assets generate ...

Load RSA keys from files

I used openSSL command to create 2 files: 1 for RSA public key & 1 for RSA private key. How do I recover RSA keys using C? Specifically, I have these functions: RSA_public_encrypt(read_num, ...

RSA cryptosystem

Hi i am trying to set up an RSA cryptosystem i have all the values except d selected prime numbers: p=1889, q=2003, n=3783667, phi=3779776, e= 61 i got stuck finding d could anyone help me to figure ...

热门标签