是否应该用于静脉注射?

时间:2017-07-16 15:33:40

标签: c random aes cbc-mode initialization-vector

AES的CBC模式指定要使每条消息唯一,应使用IV。 IV应该是随机的,只能使用一次,否则它可能允许人们解密使用相同密钥的其他密文。

C中的img[src=""]函数是否适合生成此IV?它通常以当前时间播种的事实是否容易受到某种攻击?

1 个答案:

答案 0 :(得分:2)

快速回答是。不要将非加密安全的随机生成器用于初始化向量。初始化向量是未加密的,因此可以认为它们可以由这些函数之一生成。但是这应该导致弱点,我会解释:如果你使用穷人(rand()是一个如此弱的随机例程),你将缩小你正在产生的可能IV的空间。一个例子就足够了:

假设您在某些加密消息中使用了8字节IV。但是你使用的随机函数有一个8位种子,从这种差的随机函数中只能生成256个可能的字节序列,所以可能只会产生最多256个可能的IV(即使它们显示纯随机性,或整个空间的广泛散列值)攻击者知道这一点,可以重现整个256空间的可能IV,使它们完全没用。