分享

bd-注记-NSA的攻防能力

 dbn9981 2020-01-17
2013年9月6日
Bruce Schneierr


NSA的攻防能力

最近的一份斯诺登文档是关于美国情报机构的黑色预算的。寥寥数页,内容却丰,《华盛顿邮报》已决定将之刊出,这其中还包括有国家情报总监James Clapper做的一个报告。在这个报告中,James Clapper令人心痒难耐的给了这样的暗示:“另外,我们正投资于具有突破性的加密和解密能力上,以破解对手的加密并充分利用网络流量。”

说实话,我对此有些怀疑。无论NSA有什么样的顶级机密计划,密码学所依赖的数学基础仍然会是任何一种加密系统最为安全的部分。我曾经撰写过很多很多关于下面这些主题的文章:设计糟糕的加密产品,软件bug,烂密码,与NSA勾结并向其透露了所有或部分密钥的公司,不安全的电脑和网络。这些才是真正脆弱的地方,也正是NSA花费了其主要精力的地方。

这不是我们第一次听到这种谣言。在《连线》杂志去年的一篇文章中,长期关注NSA的James Bamford这样写到:

根据参与这个计划的一名高级官员所言,数年之前,NSA就已经能够对深奥、复杂的加密系统进行分析或者说是破解,且进展巨大。而这些加密系统不仅为世界各国政府锁用,美国的许多普通电脑用户也在使用。

我们无法从James Clapper、斯诺登或James Bamford那里获得更多的信息,但并不妨我们猜测一番。

也许NSA使用新的数学方法破解了下面这些主流加密算法中的一个或几个:AES,Twofish,Serpent,triple-DES,Serpent。这种事不是第一次发生了。比如上世纪70年代,NSA就已经拥有了一种被称为“微分加密分析”的破译技术,而这种技术在学术界还并不为人所知。NSA使用这种技术破解掉了我们都认为安全的学术性或商业性算法。到了九十年代早期我们才越来越发现有问题,因此现在设计了种种算法来对抗那种破译技术。

也许NSA现在已经有了更新的技术——一种仍未被学术界所知的技术,这一点还是很有可能的。不过即使这样,这种技术现在也不太可能使得加密后的明文真的就会被破解掉。

破解某种加密算法的一个“天真的”方法是使用暴力法破解其密钥。这种方法的复杂性是2的n次方,其中n是密钥的长度。所有形式的密码分析破解法都可以看作是暴力破解法的短平快版本。由于暴力破解法的功效是密钥长度的正函数(direct function),因此这些分析法可以有效的缩短密钥长度。举例来说,如果针对DES加密算法的最佳破解法的复杂性是2的39次方,那就意味着有效的将DES算法的56位长度的密钥缩短了17位。

顺便说一下,那种破解法真的很不错。

当前,暴力破解法在实践中可以有效破解的密钥长度最长约不超过80位。这样,以这个位数值作指标,我们就可以了解某一个破解方法必须要有多好才能破解掉现代的加密算法。当前,加密算法的密钥长度最少是128位的。这意味着为了实际可用,NSA任何突破性的密码分析法都必须能有效的将密钥长度至少减少48位。

不单如此。那种针对DES的破解不切实际的须要使用高达70TB的已知明文(此明文以正被尝试破解的密钥进行了加密)。其它的数学攻击法也需要类似数量的数据。为了能有效破解实际的网络流量,NSA需要有一种破解法,而且这种破解法对所需的已知明文的数量要求统统是少,少,少。

因此,即使NSA真的拥有了我们学术界所没有的对称加密分析能力,但在面对可能碰到的数据类型时,将这种能力转换成实际的攻击却几乎是不可能的——简直就是痴人说梦。

更为可能的事实是,NSA取得了一些数学方面的突破,可以影响到一种或多种公钥加密算法。对公钥加密算法的破解分析涉及到了大量数学技巧,而且完全没有任何理论能够说明那些技巧能强大到什么上限。

过去几十年中,在因式分解方面的突破总是有规律的出现,这使得日益增大的公钥能被破解掉。今天我们所用的公钥加密算法中,有许多都涉及到了椭圆曲线,此方面的数学突破甚至更为成熟。如果假设NSA有一些技术而我们学术界并没有,这也并非不合理。当然,从NSA推动椭圆曲线加密这个事实来看,或许表明NSA能更加容易的破解这类加密。

如果NSA的进展真如我们所设想的那样,那么改进起来也很容易:增加密钥长度。

假设我们设想的NSA所取得的突破并没有完全破解掉公钥加密——这是一个非常合理的假设,那我们只要使用不断加长的密钥就能很容易的领先NSA几步。我们正在逐步停用1024位的RSA密钥,转而使用2048位的。甚至我们需要更进一步考虑3072位的。再进一步,我们或许应当在椭圆曲线方面更加偏执一些,使用超过500位的密钥。

最后一个天马行空的可能性:量子计算机。在学术界,量子计算机现在虽仍然只是玩具,但理论上它有能力迅速破解掉通常的公钥算法——而无视密钥长度,并且可以有效的让任何对称算法的密钥长度减半。要说NSA现在已经制造出了一台量子计算机可以达到破解所需的计算强度,我认为是极度不可能的,不过可能性也还是存在的。要防护这一点也很容易——就是可能有些烦人:在分享秘密时坚持使用对称加密,而且还要使用256位长度的密钥。

在NSA内部有一种说法:“密码分析技术总是在变得更好。它永远不会退步。”如果假定在2013年我们人类就已经发现了密码学所能发现的全部数学突破,那就有点天真了。有大量的数学突破还有待发现,而且还将会持续几个世纪。

NSA现在处于一个有利的位置:它除了自己秘密发现的那些成果外,还可以利用学术界发现并公开出版的所有成果。

NSA内部有许多员工在全职专门研究这个问题。根据揭“黑色预算”的摘要,35000名工作人员和每年110亿美元的预算只是Department of Defense-wide Consolidated Cryptologic Program的一部分。其中有4%或者说4.4亿美元是用于“研究和技术”的。

这笔钱数目巨大,可能超过了世界上其它所有研究密码学的个人的花费总和。我相信NSA已经获取了大量有趣的——有时候是突破性的——破解成果,甚至不排除其中的一些已经可以被NSA实际使用了。

只不过,我仍然相信数学。


这篇文章最初发表于《连线》网站。

补充1: 本文是在另一篇话题短文之前写的。

补充2: 《经济学人》有一篇文章阐述了相似的观点。



13:43 2013-9-14 初完。 
10:57 2015-6-28 第一遍完。
21:16 2015-6-29 第二遍完。
21:24 2015-7-1 终完。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多