破解 1024 位 OpenPGP 加密电子邮件需要多长时间?

破解 1024 位 OpenPGP 加密电子邮件需要多长时间?

对于 WPA,有计算器可以确定破解密码所需的时间,但我没有找到任何适用于 OpenPGP 的计算器。

破解 1024 位 OpenPGP 加密电子邮件需要多长时间(取决于 CPU 能力)?

我还对其他密钥大小感兴趣,例如 2048 和 4096。

答案1

虽然@Jens Erat 的回答相当全面,但我对破解 RSA(OpenPGP 背后的算法)进行了研究,所以我想发表一下意见:

我将打破常规,首先给出 TL;DR:你不可能破解该密钥。如果我们现实地看待这个问题,你根本无法分解 1024 位整数。你最好的选择是尝试破解安全链的其他部分(例如,收件人查看电子邮件的桌面)。

抛开现实,让我们考虑一下可能的策略:

  • 盲猜/暴力破解。对于 1024 位半素数,这种方法几乎不可能奏效。最好将时间花在随机猜测彩票号码上。

  • 生成彩虹表。通过取 2^1024 以内的每个素数并将其与其他每个素数相乘,将结果存储在表中,从而消除因式分解中的猜测。然后,您所要做的就是查找正确的对。您可以想象,这也是不可能的。这将涉及 x 个素数的 x! 对。通过素数计数函数,您正在查看大约 2.95 * 10^307 个素数——为了进行比较,估计可观测宇宙中的原子数量约为 10^83,因此即使我们可以让每个原子以计算机可以索引的方式存储两个素数及其乘积,这也是不可能的。

  • 使用通用数域筛选法。GNFS 是分解大型半素数的最佳选择。Kleinjung 和他的团队曾用它来分解 768 位半素数 RSA-768。不幸的是,他的团队花了三年多的时间才完成这项工作,而且它比您想要分解的数字小几个数量级。即使您每天花费数百万美元租用满负荷运行的顶级超级计算机,也几乎不可能分解这个数字。GNFS 的第一步是找到足够的“关系”来解决子问题,这可能需要很长时间。

最后的办法是使用量子计算机,这样你就可以在可行的时间内分解这些数字。不幸的是,这些计算机尚未发展到任何有用的程度。所以现在,我们无法分解 1024 位及以上的半素数(因此无法分解依赖它们的算法)。

答案2

首先,我假设您说的是 RSA 1024 位加密。

总的来说,这个话题太过复杂,无法用一个简单的数字来表示。

总结:在单个 CPU 上破解 OpenPGP 加密消息是不可行的,即使使用大型计算集群也可能需要数年时间。然而,未知的(公众)数学缺陷可能会大大改变这一现状,就像量子计算机在未来某个时候可能做到的那样(从“互联网时代”的角度来看还很遥远)。

稍长一点的版本:

破解非对称加密(RSA 1024 位密钥)

除了 RSA 1024 位密钥外,这也适用于更大的密钥大小。更大的密钥提供更高的安全性(以破解它们的计算能力的形式),但请记住,安全性不是随着密钥大小线性增加。

信息安全 Stack Exchange 上有一篇很好的文章,“如何估计破解RSA加密所需的时间?”,它没有完成像“使用 Core i7 型号 xy,您将能够在估计的 z 小时内破解 RSA 1024 位密钥”这样的估计,但答案一致“RSA 1024 位密钥无法由通常具有计算能力的个人(即少数高端机器)在合理的时间内破解。

关于使用更强的计算能力破解 1024 位密钥的讨论仅仅是从学术角度考虑的:

我最近了解到,1024 位数字分解的参数选择工作已经开始(这是“费脑力”的部分);筛选在技术上是可行的(它将非常昂贵,并且需要在许多大学集群上进行多年的计算),但目前,没有人知道如何对 1024 位整数进行线性归约。因此,不要指望 1024 位很快就会出现突破。

这可能也适用于像 NSA 这样资金充足、拥有强大计算能力的大型机构。

如果情况发生迅速变化

  • 有人发现了一个数学缺陷,从而将 RSA 的复杂性降低了几个数量级(NSA 等一些机构雇佣了大量的优秀数学家),或者
  • 量子计算机最终发挥作用,变得足够强大,能够运行某些算法。预计未来几年内不会发生。

对于 DSA/ElGamal,情况略有不同。与 RSA 密钥大小相同的 DSA 密钥提供了更高的安全性,但同时 DSA 更容易受到不良随机数的攻击(与Debian 随机数生成器缺陷)。即将在 OpenPGP 中推出的椭圆曲线加密算法目前尚未发现对其所支持算法的已知攻击,因此一般认为是安全的,但仍存在一些疑问,尤其是对 NIST 推荐的曲线(NIST 因将有缺陷的随机数生成器作为标准而声名狼藉),以及一些实施上的挑剔。

破解对称加密

出于性能考虑,OpenPGP 使用混合加密,因此消息使用对称加密和随机对称密钥(在 OpenPGP 中,通常称为“会话密钥”)进行加密。此会话密钥再次使用非对称加密算法(例如 RSA)进行加密。

如果您能够破解消息的对称加密密钥,那么您也可以读取该消息(与破解非对称密钥不同,在非对称密钥中,您可以读取使用此密钥加密的所有消息)。

很早PGP 版本(使用 Zimmermann 自己设计的对称加密算法,称为巴塞尔(被认为损坏)为 OpenPGP 定义的所有对称算法没有相关的已知攻击。

除非有人选择使用对称加密(其实是可能的!),使用对称加密算法破解消息暂时不应该被认为是可行的。

相关内容