发送IV和密文,安全吗?

Mys*_*tic 7 .net security encryption cryptography

关于IV生成,加密和共享发送方和接收方之间的IV有很多问题,但我想明确发布关于从发送方发送到接收方的最佳方式.

从我到目前为止看到的所有帖子中,我不确定以"明文"发送IV是否可以通过将其添加到密文来安全.所以第一个问题是,这样做是否安全?

第二,在通过交换消息进行通信时,是否有更安全的方式在发送方和接收方之间共享IV?

干杯

mfa*_*nto 12

是的,明确发送IV是安全的.以下是原因的"证据":

以CBC模式为例:

替代文字

您可以看到块的密文与下一个块的明文进行异或.我们需要IV的原因是因为在第一个块上,没有先前使用的密文.如果IV存在安全隐患,那么之后每个块都会存在安全风险,因为密文与IV具有相同的作用.

尽管如此,你需要确保你MAC.根据您执行消息身份验证代码的方式,有人篡改IV可能会在解密时篡改生成的明文.仅加密不能提供消息的完整性.

此外,对于IV生成,它取决于您的要求.但大多数情况下,你的IV需要是随机的,不可预测的.

  • 好吧,不幸的是答案是,这取决于.根据您使用的密码和模式,它会有所不同.CBC是最流行的模式,它需要IV并且需要将明文填充到块大小.所以,假设你想用AES CBC加密4个字节.IV需要16个字节,这4个字节需要填充到16个字节,总共32个字节.您可以使用密文窃取来阻止块扩展,也可以使用AES CTR模式.你如何MAC数据?您需要确保没有人可以篡改您的加密数据. (2认同)