近两年来,人们都知道美国国家安全局有能力——也许仍然有能力——解密大部分互联网流量。 2014年12月,《明镜周刊》刊登了整篇文章爱德华·斯诺登文件系列表明美国机构能够轻松读取 TLS/SSL、IPSec 和 VPN 流。但她是怎么做到的呢?来自宾夕法尼亚大学、CNRS、INRIA 和洛林大学的四位密码学家可能刚刚找到了部分答案。在一个学习,他们表明可以在某些加密技术中引入后门,这极大地促进了解密计算,而任何人都无法意识到这一点。
素数缺陷
在这种情况下,这些研究人员研究了 DSA(数字签名算法),尤其是 Diffie-Hellman 算法。它本质上是非对称的,被大量用于交换加密密钥的互联网协议,包括 TLS/SSL、SSH 和 IPSec。它的安全性在于,在数学上很难反转数字的幂(即计算其离散对数)。该算法依赖于大素数。
当然,有一个破解这种加密的过程,称为“数域筛选”。但它只对小钥匙有效。因此,要破解1024位密钥,理论上需要4500万核年的计算能力,也就是说运行4500万个计算核心一年。然而,这四位研究人员刚刚证明,利用他们所掌握的大学基础设施,只需 400 心年(即大约两个月)就可以破解这样的钥匙。
诀窍是采用具有非常特殊数学特征的素数,以便代数筛选进行得更快。研究人员表明,构造这样的素数不仅非常容易,而且不容易被检测到。
实现上变化不大
但是,您应该知道当前的加密实现都或多或少地使用相同的素数。有些是直接硬编码到软件源代码中的。更重要的是,这些素数的创建很少有记录!因此,政府行为者可以利用其影响力将廉价素数纳入广泛分发的软件中,而不会引起任何人的注意。因此,研究人员给出的建议如下:使用 2048 位密钥,无论如何,它仍然超出范围。
这并不是密码学家第一次研究 Diffie-Hellmann 算法的弱点。 2015年10月,大约十名研究人员已经估计,如果政府行为者拥有足够的计算能力,则可以破解大部分 1024 位密钥。事实上,代数筛的很大一部分仅取决于所选的素数。此计算可以提前完成,因此需要大约 30 个核心年才能破解 1024 位密钥。这并不多。