免责声明:这只是出于好奇;在加密方面,我根本不是专家。
假设256位密钥由以下(UTF-16)字符组成:
的 aaaaaaaabbbbcccc
进一步假设攻击者知道密钥的最后4个字符是 cccc 。
这种知识是否使攻击者更容易理解?
我的猜测是,它使攻击者更容易强制加密文本,但我的理解是强制执行AES-256是一个非常棘手的问题。然后,可能有一些我不了解的AES本身,这使得这类知识对攻击者更有价值。
答案 0 :(得分:7)
我想说你的密钥字节来自UTF-16字符是一个更大的问题,但是在ASCII字符空间中(意味着你可以有一个长32个ASCII字符的密钥)。因此,您的密钥的32个字节中的16个已知为0x00。知道最后4个是c
意味着还有4个字节被泄露了。
因此,你真的只有12字节=>您的AES密钥的96位未知。
如果您的攻击者采用字母数字字符空间,则会将其减少约四分之一(62/256)。
根据您正在使用的内容,您的密钥会受到严重影响(但不仅仅是因为它的4个字符已知)
256位密钥应该给某人1.16×10 ^ 77的猜测权。 根据你的情况,它的概率约为3.23×10 ^ 21(基本上是62 ^ 12),这个数字要小一些。
更新: 我是一个书呆子,不得不做数学。 12个字母数字字符(大写和小写)大致是71位加密强度。 (数学检查= log(62 ^ 12)/ log(2))
答案 1 :(得分:1)
理论上,它现在不那么安全了。
实际上,只要攻击者仍然不知道至少80位,你就可以了。
答案 2 :(得分:0)
我不这么认为。黑客可以猜测最后4个字节[通过它们蛮力],即使他们不知道,所以知道最后4个字节只会减少密钥空间。 [顺便说一句,我也不是“专家”。]