在用简单的英语阅读了“Diffie-Hellman Key Exchange”的选定答案5 次后,我终其一生都无法理解它如何保护我免受中间人攻击。
鉴于以下摘录(来自tylerl 的回答):
- 我想出了两个质数g和p并告诉你它们是什么。
- 然后,您选择一个秘密号码 ( a ),但您不告诉任何人。相反,您计算g a mod p并将结果发送回给我。(我们称它为A ,因为它来自a)。
- 我做同样的事情,但我们将调用我的秘密数字b和计算出来的数字B。所以我计算g b mod p并将结果发送给你(称为“ B ”)
- 现在,你拿着我发给你的号码,用它做同样的操作。所以这是B a mod p。
- 我对你发给我的结果做了同样的操作,所以:A b mod p。
以下是 Alpha 控制网络的相同 5 个步骤:
- 你试图向我发送
g
andp
,但 Alpha 拦截并学习g
andp
- 您想出
a
并尝试将ga mod p
(A
) 的结果发送给我,但 Alpha 拦截并获悉A
- Alpha 提出
b
并向您发送gb mod p
(B
)的结果 - 你跑
Ba mod p
- 阿尔法运行
Ab mod p
在整个过程中,Alpha 伪装成你,并用同样的方法与我创建了一个共享的秘密。
现在,你和阿尔法,阿尔法和我都有一对共享的秘密。
您现在认为与我秘密交谈是安全的,因为当您向我发送使用您的秘密加密的消息时,Alpha 使用您和 Alpha 创建的秘密对其进行解密,使用 Alpha 和我创建的秘密对其进行加密,然后将它们发送给我. 当我回复你时,Alpha 会反过来做同样的事情。
我在这里错过了什么吗?