当然,如果您知道明文长度是块大小的倍数,那么当使用AES和CBC时,填充是多余的。
但是填充会不会加剧加密的弱点呢?
因为由于块长度为16字节的填充,所以始终有最后一个只包含0x10的块。因此,据我所知,这是“已知-明文”。
这在现实生活中(今天)能被利用吗?或者这仅仅是一个理论问题(今天)?
这个答案让它听起来好像没什么问题。
如果密码无法抵抗已知的明文攻击,那么问题在于密码,而不是填充。
但对于AES-256来说是这样吗?
发布于 2020-07-20 22:32:51
但是填充会不会加剧加密的弱点呢?
如果填充oracle存在,那么您可以每字节128次解密整个密文(平均)。然而,类似的明文甲骨文攻击可能同样强烈,而明文预言也不仅仅是关于CBC模式。您需要使用经过身份验证的密码(如AES-GCM)来避免明文甲骨文攻击。
否则答案是正确的,它不会削弱加密。好的密码甚至应该是IND安全,这意味着即使对手控制明文,它们也是安全的。
是的,填充可能隐藏一些关于明文大小的信息,但是您不应该高估它提供的安全性。例如,攻击者可能会试图让您将明文放在块边界上,在纯文本大小估计时恢复精度。
但对于AES-256来说是这样吗?
AES是块密码;填充只适用于使用该密码的特定模式。在这样的意义上,它更多的是一个操作方式的问题,而不是密码。AES-256当然被认为是一种安全的分组密码,所以诀窍是使用正确的模式使用它。通常,不需要填充的密码模式,例如前面提到的GCM模式(这反过来是基于CTR模式)应该是首选的。
实际上,只有少数几种模式,如CBC (以及几乎没有提到的PCBC)和欧洲央行需要填充。它们不再被现代密码学家过多地用于新系统。
https://crypto.stackexchange.com/questions/81994
复制相似问题