我遇到了这个:
我不明白AES128在强力攻击中如何强于AES256,或AES256如何允许比AES128更多的组合。
这些是我的简化前提 - 假设我的键盘上有100个独特的字符,而我理想的密码长度是10个字符 - 将会有100 ^ 10(或1x10 ^ 20)组合用于强力攻击以解密给定密文。
在这种情况下,无论是否应用AES128或AES256都没有区别 - 请更正我。
答案 0 :(得分:13)
是的,你是对的(因为弱密码会否定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密钥相当。 / p>
答案 1 :(得分:9)
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 ans 2 ^ 256。