NSA 套件 A 密码学:通过默默无闻实现安全?

信息安全 密码学 政府 朦胧
2021-08-10 00:54:38

学者、密码学家对 NSA Suite A 有何看法?包含未发表的算法。除了晦涩难懂且未公开记录之外,它真的比已发布的算法好得多吗?

4个回答

我的观点(我一名密码学家——我有一个闪亮的文凭,上面写着)是:

  • 我们不能推测未知的算法,因为它们是未知的。
  • NSA 就像世界上所有的秘密机构一样,他们真的很喜欢保密,并且会为此而实践。因此,他们的算法未发布这一事实绝不表示所述算法的某些特定优势或劣势。
  • 完全有可能的是,未发表的算法确实不同于公开的算法,如 AES 或 RSA。
  • “Suite A”和“Suite B”实际上是相同的,这也是完全合理的。在某些时候,要使用一些算法,你必须有实现,而这些东西不会长在树上。因此,拥有自己的算法是昂贵的。
  • 如果我是美国纳税人,如果事实证明 NSA 将其用于开发和维护自定义算法而不是重复使用像 AES 这样完美的算法,我会对滥用我的税款感到有些沮丧。
  • 很可能有一些人有权决定 NSA 的很多事情,他们认为不公布算法会增加他们的安全性。这样的人无处不在但是,这并不能使他们正确。
  • 没有比“不能破坏它”更好的安全性了,这是我们已经拥有的(正确使用的)AES、RSA、DH、ECC……NSA 可以知道与公共算法一样安全的更快算法;但是,除非他们有自己的 CPU 代工厂,否则很难超越硬件加速 AES的性能。

默默无闻对安全的危害在于相信它运作良好。它可能会诱使人们对自制算法感到安全,因为他们会认为默默无闻会隐藏他们算法的弱点。但是,如果您使用具有已发布且经过充分研究的协议(即 AES、SSL ......)的良好算法,那么说您这样做并没有什么坏处。

这里一个有趣的数据点是 DES s-box 常量。 维基百科 NSA 维基百科 DES

NSA 建议更改 S-box 常数以使 DES 能够抵抗差分分析,这在当时的学术和商业密码学界是未知的。

在这种情况下,他们能够以对算法用户不透明的方式进行改进。发布秘密加密系统的算法可能会揭示一些其他技术,用于对抗另一种在社区之外尚不为人所知的攻击。

我一般不相信默默无闻的安全性,但在加密的情况下,它实际上更糟,因为它违反了Kerckhoffs 原则

那么更好吗?或许。有什么不同吗?当然。有必要隐藏算法吗?如果你的加密一开始就很好,你就不需要隐藏算法,只需要隐藏密钥。

另一方面,您有“许多眼球使所有错误都变浅”的想法。然而,在加密的情况下,没有太多(受过良好教育的)眼球来实际指出加密算法中的错误。因此,对隐藏的一种可能解释是,NSA 打赌另一个(不友好的)民族国家拥有更多和/或更好的眼球的可能性更高,而不是开放算法带来的潜在改进的好处社区。或者也许这不是发现错误的概率,而是发现漏洞会对他们使用套件 A 保护的信息产生的影响。无论哪种方式,我们都不会知道,因为他们永远不会说什么;)

另一方面,这些机构很可能在某些知识上远远领先于公众。一个例子,如果我没有犯错的话,那就是公钥加密的例子,英国机构在相当长的一段时间内一直不让公众知道他们的知识。