多次加密数据是否会使其更难破解?

信息安全 加密 AES
2021-08-30 17:15:51

假设我有一个包含数据的加密 zip 文件。我觉得我真的希望这些数据得到保护,所以在该文件中,我放置了另一个具有不同密码的加密 zip,然后在该文件中,我放置了一个带有第三个不同密码的最终加密文件。

我想回答的问题:

  1. 假设所有 3 个文件都使用相同的密码加密,例如 Rijndael 256,这样做是否有任何实际的安全优势?即,如果有人可以解密原始文件,那么破解下一个 2 是否同样微不足道?
  2. 使用 3种不同的加密密码会使这种安排更加安全吗?

注意:我们在这里假设入侵者不知道也无法猜到密码,因此必须使用其他方法来闯入。密码是不易受到字典攻击的强密码。

4个回答

简单地将一种加密算法放在另一种之上并相信一切都会以某种方式“更安全”的问题在于,如果你没有详细研究过这些算法,你就不会完全了解它们的弱点,或者说不够了解此操作的副作用。这并不是一种侮辱,我只是从这个问题中推断出你不是密码分析家,而且你还没有做过这些研究。

看看三重 DES一旦认识到 DES 太弱而无法承受不断改进的蛮力攻击,它就被设计为 DES 的替代品。DES 有 8 个字节的密钥,所以从逻辑上讲,由于 DES 应该能够承受 2^64 的蛮力攻击,因此双 DES 应该能够承受 2^128 的攻击。那么为什么要使用 Triple DES 而不仅仅是使用 Double DES?事实证明,对强度的估计甚至不接近正确。

首先,DES 丢弃每个密钥字节的最高位,因此 DES 的密钥大小只有 56 位——一旦您考虑了 XOR 反射,则为 55 位。攻击者可以将暴力攻击的输出存储在 DES 的第一个实例上,然后攻击匹配任何存储输出的第二个实例,从而创建中间相遇攻击。这导致 2^55 + 2^55 的攻击,即 2^56。运行 DES 两次的所有工作都会使强度提高一点点。

所以 Triple DES 显然无法承受 2^192 的攻击。3DES 确实将其提高到 2^111 位的强度,这仍然很强大,但与 2^192 的隐含强度相去甚远。

通过 DES 的一个通道的输出与另一通道的加密很容易被破解,这一点并不明显,但密码学家发现了这一点。你能提供强有力的证据证明你的两层加密没有同样的缺陷吗?

加密很难,因为来自加密算法的随机字节看起来非常像它们已经成功加扰。但是没有可以测试的属性来了解加密是否有效或是否可破解。

所以一般给出的建议是“不要发明你自己的加密算法”。与此同时,也不建议您发明自己的协议。如果必须,您需要做很多工作来证明它们是安全的。

您假设使用的密码足够强大并且不易受到字典攻击。我将列出一些其他潜在的漏洞。

  • 如果加密算法在某种程度上被严重破坏,相同加密的多层将提供很少的好处。您的第二个问题可以缓解这种情况。所有三种算法都需要妥协。
  • 如果执行加密或解密的机器遭到破坏,则密码或未加密数据可能会被盗。
  • 保护数据的更多步骤可能会增加人为或机器处理不当的可能性。也许一次加密或两次加密的数据副本被遗弃了。

如果您可以保护自己免受上述情况的影响,我认为您的建议只能提高安全性。“纵深防御。” 假设一次暴力攻击,使用相同的算法三次,您可以预期攻击者需要 3 倍的时间来解密您的数据。对于三种不同的算法,您可以进行相同的估计或考虑每种算法的相对强度来计算更精确的乘数。

你的系统非常接近蛇油它确实增加了很多复杂性和操作来加密文件和解密它。所以一个单纯的人有一种强烈的感觉,因为它很复杂,它必须是安全的。

不幸的是,加密和解密是数学的。在数学中,表面上的复杂性和实际的稳健性是松散相关的。这就是为什么这里的规则不是你自己的规则,而是依赖于众所周知且经过大量测试的众所周知的算法的实现的原因。如果您想提高安全性,请保持简单,只需使用从长密码短语生成的长密钥。这就是当今最先进的技术。

是的,没有。这只会增加他们破解文件的额外时间,因为他们有足够的资源来打破任何一轮。使用更大的密钥大小会使其变得更加困难,并确保您的加密实施是合理的。