3

我有一个一般性问题,为此我举个例子:假设 Alice 和 Bob 选择了素数 593 和公共 g= 9 。Alice 选择数字 530。Bob 选择数字 147。

Alice 计算:x= g^a mod p = 574 Bob 计算:y = g^b mod p = 527 他们的共享密钥是 156

现在 Eve 正试图破解密钥并找到一个。她有一个破解函数,她发现 c 满足: g^c mod p =x 在我们的例子中,c = 234,但这不是 Alice 选择的原始 a,所以她仍然没有成功。我的问题是:她有没有办法找到爱丽丝的原始a,使用这个信息——夏娃有c、g、p和x,她知道g^c mod p =x

(也许是反函数,我不知道..)谢谢

4

1 回答 1

2

是的。如果

g^a 模 p = g^x 模 p

然后

g^ab 模 p = g^xb 模 p

尤其是

(g^b mod p)^a mod p= (g^b mod p)^x mod p

因此,出于所有实际目的,您可以假装 Alice 的私钥是 x。这就是为什么 g 成为组的生成者很重要,这样就不会有这样的“兄弟”私钥。

她不知道“原始”a,但她确实知道它在(通常)与 x 相差 o(g) 倍数的小数集中。到底是哪一种并不重要。

在这种特殊情况下,发生的事情是g有序296而不是592. 因此,Alice 选择的实际密钥 -530有一个“兄弟”:

c = 530 + 296 模 592 = 234

于 2013-11-19T21:31:20.627 回答