如果两方拥有相同的公钥和私钥对会发生什么

信息安全 密钥管理 密钥生成
2021-08-15 00:55:24

我们知道我们必须在服务器上创建私钥并生成其公钥并创建证书。
但是,如果我们得到某人已经拥有的私钥怎么办。在这种情况下,安全性是不是变弱了。

2个回答

简单解释

发生这种情况的唯一方法是,如果您将您的私钥提供给某人。它永远不会偶然发生。绝不。您将有更好的机会赢得两次彩票,在同一天被闪电击中并被两只大猩猩殴打与其担心生成某人已经拥有的私钥,不如担心如何保护自己免受闪电和大猩猩的伤害,这样您就可以花在彩票中赢的钱。

因此,只要您将私钥保密,您就永远不必担心这一点。

科学推理

假设您正在为您的公钥系统处理 1024 位 RSA。一个好的密钥生成器将独立选择两个 512 位素数,因此密钥生成器的任何两个实例选择 RSA 所需的两个素数的概率是 2 -512 · 2 -512 = 2 -1024或大约 1/10 308 . 这个数字是如此之小,以至于在一个正常运行的系统中是不可能发生的。您在某一年被闪电击中的几率(忘记某一天)1/1,000,000 (1/10 6 )。被两只大猩猩咬伤的概率 2 -120(见罗里评论中的帖子)。彩票有点难,因为它取决于什么彩票(因为每个彩票的几率都不同),但希望你明白这一点。

系统不当

所有的赌注都取消了。正如 Jeff 的评论中所指出的,这发生在Debian 的 OpenSSL 版本中,原因是一个简单的错误导致随机数生成器以非常小的随机性播种。结果是人们可能拥有相同的私钥。

拥有与其他人相同的私钥将允许这两个人解密彼此的消息等。

如果有人可以访问您的私钥,他可以解密为您加密的消息并以您的名义签署消息。所以他基本上可以做任何事情,你可以用密钥对做。

尽管过去存在错误,但其他人生成相同密钥对的可能性不大。

主要风险是,私钥被存储密钥的计算机上的恶意软件窃取您提到,您不会在本地生成密钥对,而是在服务器上生成。这允许该服务器的管理员访问您的私钥。

虽然密钥可能受到密码短语的保护,但恶意软件可能会替换密钥处理应用程序或嗅探键盘输入。