如果我们对原始数据有所了解,加密的安全性会降低多少?

信息安全 加密 AES pbkdf2
2021-09-01 22:10:35

我有许多使用从密码派生的密钥加密的文件。按照标准做法,我使用随机盐和密码,并进行多次 PBKDF2 迭代以获得加密密钥和 IV。然后我使用它在 CBC 模式下使用 AES-256 加密数据。

如果假设的攻击者知道每个明文文件的第一个字节是固定字符串,例如“abcdef”,我的数据的安全性会以什么方式受到损害?

2个回答

如果知道部分明文为攻击者猜测或重新计算其他加密字节或密钥本身提供了优势,那么这被认为是加密算法的严重弱点。AES 没有这样的弱点。

上面的段落需要一些精度。事实上,如果我作为攻击者知道某些明文字节是“Pope Bened.ct XVI is resigning”和“.”。作为攻击者未知的字节,那么我可以相对较高的概率猜测未知字节实际上编码了“i”。所以正确的定义是:如果攻击者在知道一些明文字节和整个加密文件的情况下,可以比知道相同明文字节但知道加密文件的同一攻击者更容易猜出丢失的字节,那么加密算法可以被认为是损坏的。AES 不被认为是损坏的,所以没关系。

还有一点是关于主动攻击攻击者可能想要修改数据,以诱使诚实的系统处理虚假数据;并且该系统的行为可以提供有关未知字节的大量信息(这种攻击的一种变体是对 SSL/TLS 的 BEAST 攻击中使用的)。一些明文字节的知识使这种攻击更容易。AES-CBC 本身并不能防御主动攻击者。要击败主动攻击者,您需要应用MAC将加密和MAC结合起来并不容易您最好将 CBC 替换为包含 MAC 并处理繁重工作的加密模式(例如GCMEAX)。

(上面的定义是关于“已知明文攻击”,攻击者知道部分明文。对于主动攻击,我们将讨论“选择明文攻击”,攻击者可以选择部分明文,以及“选择密文”攻击”,其中攻击者更改密文并或多或少地直接观察解密结果。正确应用和验证的 MAC 可提供可靠的保护,防止选择的密文攻击。)

这是一个已知明文攻击的案例如果使用较旧的密码,则可以利用这种情况,但在 AES 中没有这种类型的已知漏洞。

即使明文每次都相同,IV 也不是。在这种特殊情况下,暴力破解不会更快。