【发布时间】:2010-06-14 06:25:11
【问题描述】:
假设 RSA 算法在两台机器上创建了私钥。有没有可能两个键相同?
【问题讨论】:
标签: cryptography rsa
假设 RSA 算法在两台机器上创建了私钥。有没有可能两个键相同?
【问题讨论】:
标签: cryptography rsa
简短回答:不。理论上存在可能性,但即使您每秒创建一个密钥,您也不可能在太阳爆炸之前两次获得相同的密钥。
【讨论】:
是的。你听说过pigeon-hole principle吗?
【讨论】:
通常,您通过随机选择非常大的数字并检查它们是否为素数来创建 RSA 密钥。
鉴于所涉及数字的大小(100 位以上),发生冲突的唯一合理可能性是随机数生成器是否存在问题,因此(至少在某些情况下)它选择的数字不是非常随机。
这正是导致 Netscape 中 SSL 系统中断的问题(~4.0,如果没记错的话)。在这种特殊情况下,问题在于生成会话密钥,但基本思想是相同的——使用的相当数量的“随机”位实际上是可以预测的,因此知道位来源的攻击者可以相当快地生成相同的“随机”数字,因此生成相同的会话密钥。
【讨论】:
是的。但是概率很低
【讨论】:
在具有公钥 (n,e) 的 RSA 密码系统中,生成私钥 (n,d) 使得 n = p * q,其中 p, q 是大 N 位素数,ed − 1 可以是均分除以 (p − 1)(q − 1)。
要生成相同的私钥,您本质上需要生成相同的 p,q,e,所以这是非常小的概率。
【讨论】: