哪些分组密码和算法现在是安全的?

信息安全 加密 密码学 AES 协议 密码选择
2021-08-12 23:12:42

我为一家大型非美国国际组织工作。关于最近有关 NSA 破坏互联网上大多数加密的泄密事件,我们现在知道美国和英国政府正在积极参与削弱加密标准和后门硬件和软件。不幸的是,确切的加密被破坏了未知,我们知道目前在互联网上使用的加密协议来自 Suite B。我们非常担心 NSA 可能会利用这种能力从我们的窃取商业机密、知识产权和其他信息。使美国政府、公司和行业受益的组织,或允许他们在我们有机会之前为发明申请专利。我们需要更强大的加密程序来为我们提供更多保护。

根据爱德华·斯诺登爵士的说法,显然“强加密有效”。但是什么被认为是“强加密”?有明确的证据表明它有效,因为他最初设法与《卫报》记者就他的计划进行了沟通,并在 NSA 不知情的情况下泄露了高度机密的信息。目前尚不清楚他为此使用了什么加密。我看到帖子说 TLS 极有可能被破坏,因为他们可以使用秘密法庭命令从美国的证书颁发机构获得根证书,从而允许他们在大多数通信通过美国/英国时执行透明的 MITM 攻击网络。

也有关于由 NSA 推动的后门 RNG 的讨论,例如 Dual EC DRBG。显然,应该避免使用它们并使用适当的随机数生成器。然而,问题可能比这更深。TLS 协议由其他算法组成。如您所知,Diffie-Hellman 密钥交换用于在两方之间交换对称密钥。这些对称分组密码也可能被破坏。

分组密码加密可能对其有未知的攻击。正如您所知道的 DES 标准,NSA 在密码分析方面至少领先学术界和商业界 20 年,并雇佣了世界上最好的数学家。更不用说他们有许多超级计算机和可行的量子计算机。我们还知道美国政府在 1970 年代 - 1990 年代后期曾经阻止出口超过 64 位的密码学。现在,这些限制现在“方便地”解除,他们现在推荐最大 256 位的 Suite B。

Suite B 包含密钥大小为 128 位和 256 位的高级加密标准 (AES)。指定的两种模式是计数器模式 (CTR) 和 Galois/计数器模式 (GCM)。因为政府推荐“256 位”作为最高的“绝密”安全级别,并且鉴于他们的任务是后门和削弱加密系统,以便他们可以在其监控网络中利用该功能,那么显然是 256 位或算法(例如 AES)不能被信任。此外,我们似乎不再相信美国政府编写或认可的任何东西,因为他们可能会推行他们知道有秘密弱点的标准。

参考:

theguardian.com/world/2013/sep/05/nsa-gchq-encryption-codes-security
theguardian.com/world/interactive/2013/sep/05/nsa-project-bullrun-classification-guide
wired.com/threatlevel/2013/09/nsa-router-hacking/
g1.globo.com/fantastico/noticia/2013/09/nsa-documents-show-united-states-spied-brazilian-oil-giant.html
arstechnica.com/security/2013/01/secret-backdoors-found-in-firewall-vpn-gear-from-barracuda-networks/
en.wikipedia.org/wiki/Data_Encryption_Standard#NSA.27s_involvement_in_the_design
en.wikipedia.org/wiki/Cryptography_export_laws
en.wikipedia.org/wiki/NSA_Suite_B
en.wikipedia.org/wiki/D-Wave_Two
top500.org

这篇文章不邀请对所提供信息的猜测、修改或意见。我正在寻求这些具体问题的答案:

  • 将 256 位块大小增加一倍甚至四倍至 512 位或 1024 位是否会使强大的攻击者攻击变得更加困难?我认为需要对关键时间表进行返工,对吗?当块大小增加时,密钥大小也应该匹配,对吗?
  • 我知道 Threefish 存在 512 位和 1024 位密钥和块大小。还有哪些其他非美国政府批准和公共领域的分组密码算法,但仍然有社区对它们进行可靠的安全分析?有没有使用这种算法的开源库?
  • 我了解 TrueCrypt 可以链接算法以更好地保护存储,例如使用 XTS 模式的 Twofish-Serpent-AES。这是否提供了针对算法弱点的实际可验证保护,或者是否存在针对此的攻击?这种方法也可以用于通信吗?
  • 如果加密过程中的轮数增加超过标准数量,可能是发送方和接收方之间预先约定的可变数量,这会显着增加当前算法的安全边际吗?
  • 还有哪些其他分组密码加密模式被认为比政府推荐的模式(CTR、GCM 和 XTS)更安全?
  • 有哪些其他加密方法或开源程序可以替代分组密码来更安全地加密数据?
1个回答

斯诺登先生概述的大多数问题本质上都是旁道攻击。这些算法并不是突然变得不那么健壮,而是使用这些算法的软件和基础设施。例如,根 CA 一直对他们居住的国家开放,他们提供的保护是针对其他普通平民,而不是政府机构。

1990 年代密钥强度标准的提高可能是因为猫已经在更强大的算法上脱颖而出(所有其他非第三世界国家已经有了更好的加密)。封锁 40 位以上和 52 位以上的密钥只会扼杀美国在电子商务和 ICT 产品方面的增长。仍然; 这也可能意味着地下室的量子计算机在那时上线了——毕竟他们确实在 1950 年代将破解的 Enigma 卖给了国家。

我记得对另一个问题的评论,其中提到 NSA 的主要责任是保护美国资产而不是突袭外国资产,因此鼓励向美国公众发布他们没有放后门的密码。


问题 1A:将 256 位块大小增加一倍甚至四倍至 512 位或 1024 位是否会使强大的攻击者的攻击变得更加困难?

问题 1A 的答案:并非如此,因为以时间有用的方式破解了 256 位加密消息将意味着 O(N) 解密或类似的。在这种情况下增加密钥或块大小将不再改变问题的时间复杂度。增加位强度对于 NSA 能力的正常线性预期很有用。

问题 1B:我认为需要对关键时间表进行返工,对吗?

问题 1B 的答案:可能。我会把这个问题留给其他人。

问题 1C:当块大小增加时,密钥大小也应该匹配,对吗?

问题 1C 的答案:错误。有点。香农信息理论提出了同样的建议,但您需要彻底检查算法,这会将密码从众所周知变为不知名,从而降低其安全等级。

问题 2:我知道 Threefish 存在 512 位和 1024 位密钥和块大小。还有哪些其他非美国政府批准和公共领域的分组密码算法,但仍然有社区对它们进行可靠的安全分析?有没有使用这种算法的开源库?

问题2的答案:不知道。必须计算针对特定密码发布的公共研究论文。

问题 3:我了解 TrueCrypt 可以链接算法以更好地保护存储,例如使用 XTS 模式的 Twofish-Serpent-AES。这是否提供了针对算法弱点的实际可验证保护,或者是否存在针对此的攻击?这种方法也可以用于通信吗?

问题 3 的答案:与问题 1 的结果相同。如果您可以在 O(N) 时间内破解一类算法,那么无论嵌套或排序如何,您都可以破解该类的所有密码。

问题 4:如果加密过程中的轮数增加超过标准数量,可能是发送方和接收方之间预先约定的可变数量,这会显着增加当前算法的安全边际吗?

问题 4 的答案:是的,如果提供了新的密钥材料。但是正如您的问题所提出的那样,NSA 一直在使用边信道攻击(很可能)或打破素数的时间复杂度问题(不太可能但可能)。强化的算法不会阻止这一点。

问题 5:还有哪些其他分组密码加密模式被认为比政府推荐的模式(CTR、GCM 和 XTS)更安全?

问题 5 的答案:不知道。


问题 6:还有哪些其他加密方法或开源程序可以用作分组密码的替代方案,以更安全地加密数据?

问题 6 的答案 6

如果您的组织愿意在这个问题上进行投资,您应该建立一个 TCP/IP 网络隧道,该隧道使用(大量)一次性便笺簿在公司办公室之间进行通信。

您的组织可以在总部的硬盘驱动器上生成一次性便笺簿,并让受信任的员工充当办公室之间的定期数据信使 - 可能在其他公司业务期间。

如果不存在用于一次性便笺簿的开源 TCP/IP VPN 应用程序,那么创建一个中型软件开发项目应该不会超过。

请注意,您仍然需要保护端点免受操作弱点或有针对性的攻击。有时间谍机构使用非常低技术的方法——收买员工或扒窃手机。