弱点CWE-329是一个CBC模式的有趣问题。然而,同样的弱点是否影响到依赖于IV的其他操作方式,如: PCBC、CFB和OFB?我的直觉是是的。我想知道在这个问题上是否有共识?或者是否有可能解释为什么它不是一个弱点。
发布于 2011-11-23 20:52:19
每一种运作方式都有自己的IV要求。有些人需要统一的、不可预测的随机性。其他人也同样满意于公正的独特性。
CBC是众所周知的,因为它需要在可能的IV值中随机和一致地选择一个IV,这样,能够选择要加密的文本的攻击者在提交所述文本之前可能无法预测IV值。
PCBC在这方面与CBC相似。加密时,PCBC相当于对输入数据进行线性转换,然后对输入数据进行CBC加密。因此PCBC还需要一个统一的、不可预测的IV。
CFB和OFB只需要唯一性:对于给定的密钥,每个IV值最多只能使用一次。这不需要不可预测性或一致性,因为IV首先被加密为“原样”(在使用明文进行任何操作之前),而使用攻击者不知道的密钥对值序列进行良好分组密码的加密是一个很好的PRNG。这意味着CFB和OFB在某种程度上包括了将独特的IV提升到适当的均匀随机性所需的内容。
CTR与OFB有点相似。CTR加密计数器的连续值,IV是计数器的初始值。只要没有使用相同密钥的两次计数器值,就可以实现安全性。因此,使用CTR“烧伤”了一系列的连续值,从IV开始;这些值之后都不能作为IV使用。
请注意,OFB还生成一个伪随机流,并且使用先前生成的流中的一个块密码输出作为IV,意味着您从该点重新生成相同的流。所以OFB也“烧掉”了一堆值。然而,这些值是均匀分布在一组块值中的,而不是像CTR那样是连续的。其结果是,一个关于IV管理的+1策略(您发出几条消息,每条消息分别加密,但使用相同的密钥,只需增加一个内部计数器以获得下一个IV)对于OFB模式来说是可以接受的--但在CTR中根本不能接受。
还记得CFB和OFB,包括他们自己的PRNG吗?这个想法已经被重复使用了。许多现代分组密码模式,特别是包括检查完整性 (如EAX或GCM )在内的分组密码模式,都具有相同的技巧,并且只需要唯一性。
唯一性和随机性是两个截然不同的性质。随机性在某些上下文中很难获得;大多数桌面机器和服务器设法维护一个可接受的随机性来源(/dev/urandom,CryptGenRandom().(名称取决于操作系统),但许多嵌入式系统不能。另一方面,唯一性也不是完全免费的:它需要某种类型的记忆,在重新启动时抵抗。使用当前时间作为IV是诱人的,但很微妙,除非您能够保证一个单调的时钟(否则,攻击者可以重置时钟以触发IV重用)。
然而,适当的密码强随机性会产生“免费”的唯一性,并且具有极大的概率(如果块的大小足够大,但无论如何都要使用128位块)。因此,如果您手头有一个强大的PRNG,您可以使用它来产生您的IV为所有模式。
https://crypto.stackexchange.com/questions/1312
复制相似问题