为什么美国国家安全局要参与决定加密标准?
NSA是一个复合组织,由多个称为“局”的子实体组成,具有不同的范围和目标。国家安全局作为一个整体,应该有多种角色。它的信号情报角色(通常缩写为SIGINT,即间谍)是人们谈论最多的角色,并且应该由SID(作为“信号情报局”)处理。但是,NSA 也应该确保美国利益的信息安全,因此应该帮助联邦组织和大型美国私营公司在需要加密的地方应用适当的加密。这种防御性角色主要属于 IAD(信息保障局)的范围。
的确,在 2001 年 9 月之后,在 NSA 内部,力量平衡大幅转向 SID,但他们仍然保持着不可忽视的防御作用。无论如何,DES 和 AES 在该日期之前都已标准化。
在美国,联邦标准由名为NIST的特定机构编辑和发布。NIST 不是 NSA。然而,当 NIST 人员处理一些密码算法时,他们喜欢从 NSA 获得输入,因为这是美国政府保留其具有密码意识的思想家的地方。NSA 本身喜欢向 NIST 咨询,因为他们想要跟踪已发布的加密算法,用于攻击和防御(他们想知道在尝试窃听时将面临哪些算法,并且他们还想知道哪些算法他们应该建议美国大公司用它来挫败外国作恶者)。
关于这个主题,您可能想阅读这篇关于椭圆曲线和“后量子加密”的文章,以及 NSA 的说法和想法。它强调 NSA 首先是一个大型政府组织,因此往往表现得像大型政府组织一样;尤其是其部分甚至大部分行为都与自身的内部政治有关。
“参与”和“参与”之间有相当大的差距。根据Don Coppersmith(DES 设计者之一)的说法,NSA 在某个时候与 IBM 团队进行了互动,其公开的目标是加强算法。当时 NSA 仍然雇佣了相当大比例的可用密码学家(这不再是真的),并且对一种尚未公开的攻击方法有所了解,即差分密码分析。NSA 希望确保新算法能够抵抗此类攻击。事实证明,IBM 团队也构思了差分密码分析的想法,并且已经针对它加强了他们的设计。因此,NSA 的参与减少到要求 IBM 研究人员不要公布他们的发现。
(正如莱布尼茨所说,科学发现飘忽不定,当你有一个新想法时,很可能其他几个人同时有相同的想法。因此很难保持领先于其他人科学领域世界第一。)
对于AES标准化过程,NIST 特意将整个比赛组织得非常开放;提交者受到鼓励,甚至被要求公布其候选人的所有设计标准。虽然从逻辑上不能排除贿赂为一名候选人注入后门的可能性,因为很难证明是否定的(这就是阴谋论的重点:它们不能被合理地否认,因为它们超出了逻辑),大多数候选人,包括最终选择的那个(Rijndael),所有的设计元素都得到了充分的解释,没有未公开的暗区。因此,美国国家安全局在这件事上的意见主要是他们认为任何候选人都没有问题的声明。
(密码学家也是人,因此可能偶尔会沉迷于八卦。当时,大多数人的直觉是,如果有 NSA 赞助的候选人,那就是MARS,主要是因为那是唐科珀史密斯和 IBM。无论如何,该算法并不是很流行,因为它过于复杂且难以理解。Rijndael 的结构要简单得多。)
早在 1980 年代后期,国家安全局就有一个名为国家计算机安全中心的分支机构(它今天可能仍然存在)。这个“中心”的工作是帮助处于信息技术萌芽前沿的企业保持安全。他们所做的一些主要事情是:测试主要供应商的硬件是否存在可能使其易受攻击的缺陷,测试主要供应商的软件是否存在漏洞,并开发用于行业的加密技术。该分支开发的一些加密技术至今仍在使用。同样重要的是要注意国家安全局的这个分支是完全解密的。我强烈推荐阅读:Clifford Stoll的《杜鹃蛋》 因为它非常深入地了解了 NSA 的这个分支是如何产生的。