Security 有没有可能;“黑客”;通过知道素数和生成器参数来区分Hellman?

Security 有没有可能;“黑客”;通过知道素数和生成器参数来区分Hellman?,security,encryption,cryptography,diffie-hellman,Security,Encryption,Cryptography,Diffie Hellman,我试图理解Diffie-Hellman(DH)算法,因为我想让两台计算机相互通信,但第三台计算机不知道它们在说什么,但也交换它们将在不安全的通道中使用的密钥 问题是,第三个也知道DH将如何处理,即常数参数。更具体地说,p和g: 所以问题是,如果我知道p和g,我能发现Bob和Alice将使用8作为他们的密钥吗?不,你不能,要计算密钥,你必须首先能够计算a(Alice的密钥)或b(Bob的密钥)这将需要evesdropper计算,而且由于没有任何已知的有效算法可以计算,因此Deffie_Hellm

我试图理解Diffie-Hellman(DH)算法,因为我想让两台计算机相互通信,但第三台计算机不知道它们在说什么,但也交换它们将在不安全的通道中使用的密钥

问题是,第三个也知道DH将如何处理,即常数参数。更具体地说,pg


所以问题是,如果我知道pg,我能发现Bob和Alice将使用8作为他们的密钥吗?

不,你不能,要计算密钥,你必须首先能够计算
a
(Alice的密钥)或
b
(Bob的密钥)这将需要evesdropper计算,而且由于没有任何已知的有效算法可以计算,因此
Deffie_Hellmen
非常安全,第三方(evesdropper)永远不会知道
8
是密钥。(请注意,正确选择
p
g
对于进行安全的密钥交换至关重要)。

您必须小心选择生成器(它必须生成整个组),以及选择您的编号p

在乘法群mod p的特殊情况下,你很可能会说:

  • 你的p必须是a
  • 发电机g必须是:
  • 此外,您的实现可能容易受到时间和其他因素的影响


    换句话说:不要这样做。密码学是困难的。使用一个可以为您完成此操作的密钥。

    请注意,您仍然需要对密钥进行身份验证以防止MITM。这并不容易。D-H的全部意义在于,房间里的每个人(或电线上的每个人)都可以知道p、g、A和B,但他们仍然没有机会找到“A”(在你的情况下是6)和“B”(在你的情况下是5)。请注意,即使是Alice和Bob也只知道他们自己的秘密(a和b),而不知道对方的秘密,但由于数学之美(离散对数),他们得出了一个共同的秘密(8)。要回答您的问题,了解宝洁对攻击者没有帮助。顺便说一句,“教科书”D-H最大的弱点是中间人攻击。我投票把这个问题关为离题,因为它应该被张贴或移动到这个问题太老了。你是怎么解开的?