在这里提出这个问题也许不太合适...无论如何,我试图使用gmp库来实现DH,但是我得到的问题是:Diffie-Hellman中参数的选择
有一次,当我在做测试,以观察输出,虽然选择的首要和私钥大值:
- p在约300余位十进制
- A,b长时间了约100位数字
终于我得到了一个非常小的共享密钥,可能小于10^8的小数...
这个问题并没有出现很多次,实际上在所有的观察期间,它似乎只是曾经......但依然,这并不是那么好。
所以我想如果有一些方法可避免此...感谢名单了很多
在这里提出这个问题也许不太合适...无论如何,我试图使用gmp库来实现DH,但是我得到的问题是:Diffie-Hellman中参数的选择
有一次,当我在做测试,以观察输出,虽然选择的首要和私钥大值:
终于我得到了一个非常小的共享密钥,可能小于10^8的小数...
这个问题并没有出现很多次,实际上在所有的观察期间,它似乎只是曾经......但依然,这并不是那么好。
所以我想如果有一些方法可避免此...感谢名单了很多
的Diffie-Hellman密钥交换的目的是产生一个秘密共享密钥。
通过使用较大的p,a和b值,可以确保潜在共享密钥池非常大。
但是,共享密钥的实际值可能是任何值在该池内。其结果是,它的范围可以从零到(P - 1)......这是因为,关键是
G^(ab) mod p
因此,你有没有在这里发现了一个问题......你只看到当G^(ab)
的值接近于p
的倍数时,因此mod
是低数字。
换句话说,共享密钥*很长,但许多第一个数字恰好为零。 – Peeja 2012-12-26 16:31:58
D-H的一部分是密钥可能是任何值在由p指定的范围内。至少在理论上,消除这些可能性中的一些会使它不那么安全,而不是更加如此(实际上,只要你留下足够大的密钥池,它几乎没有真正的区别)。
确实如果攻击者决定尝试使用密钥耗尽(蛮力)攻击,并从0开始计数,他们很快就会触发该攻击。然后,如果你决定了其他一些下限,并且(例如)重新协商了密钥,那么它就不会有任何实际的好处 - 而不是从0开始,攻击者将从指定下限,并且你什么也没有获得。
编辑为英语。国际海事组织,这是一个好的问题。 – 2010-03-08 19:02:20