我遇到了这个:
我不明白 AES128 在蛮力攻击中如何比 AES256 更强,或者 AES256 如何允许比 AES128 更多的组合。
这些是我的简化前提 - 假设我的键盘上有 100 个唯一字符,并且我的理想密码长度是 10 个字符 - 暴力攻击将有 100^10(或 1x10^20)组合来解密给定密文.
在这种情况下,是否应用 AES128 或 AES256 并没有什么不同 - 请纠正我。
我遇到了这个:
我不明白 AES128 在蛮力攻击中如何比 AES256 更强,或者 AES256 如何允许比 AES128 更多的组合。
这些是我的简化前提 - 假设我的键盘上有 100 个唯一字符,并且我的理想密码长度是 10 个字符 - 暴力攻击将有 100^10(或 1x10^20)组合来解密给定密文.
在这种情况下,是否应用 AES128 或 AES256 并没有什么不同 - 请纠正我。
是的,您是正确的(因为弱密码将否定 AES128 和 AES256 之间的差异,并使暴力破解与密码一样复杂)。但这仅适用于密码是密钥生成的唯一来源的情况。
在正常使用中,AES 密钥由“真正的”随机源生成,而不是由简单的伪随机生成器(如 C++ rand()
)生成;
AES256 比 AES128 “更安全”,因为它具有 256 位密钥 - 这意味着 2^256 个可能的暴力破解密钥,而不是 2^128 (AES128)。可能的键数在您的表格中显示为“组合”。
就个人而言,我使用KeePass和 20 个符号及以上的密码。使用由小写+大写字母 (26+26)、数字 (10) 和特殊符号(大约 20 个)组成的 20 符号密码给出(26+26+10+20)^20
=1.89*10^38
可能的组合 - 与 AES128 密钥相当。
AES128 如何在蛮力攻击中比 AES256 更强
AES 对每个数据块进行多轮转换,并在这些不同的轮次中使用密钥的不同部分。何时使用密钥的哪些部分的规范称为密钥调度。256 位密钥的密钥计划设计不如 128 位密钥的密钥计划。近年来,在将这些设计问题转化为对 AES 256 的潜在攻击方面取得了实质性进展。这是密钥选择建议的基础。
AES256 如何允许比 AES128 更多的组合
AES256 使用 256 位,为您提供大约 2^256 的允许组合,而在 128 的情况下,它的 2^128。
这些是我的简化前提 - 假设我的键盘上有 100 个唯一字符,并且我的理想密码长度是 10 个字符 - 暴力攻击将有 100^10(或 1x10^20)组合来解密给定密文.
我不太确定您的理解是什么,但是当您说应用 AES128/AES256 时,实际上是您将密码加密为密文。它是编码信息,因为它包含人类无法读取的原始明文形式。它不会只使用键盘上的所有 100 个唯一字符。它的用途不止于此。所以,如果你想得到原始密码,你必须找到加密它的密钥。这为您提供了 2^128 和 2^256 的组合数字。