回答
您不需要在CBC模式下对IV进行加密。没有安全优势。请参阅我之前对“为什么”的“证明”的回答。 Sending IV along with cipher text, safe?。
简短的回答是,当您查看CBC模式时,以前的密文块有效地成为下一个块的IV。我们传输明文中的密文块(如果有意义的话),所以如果第一个块有风险,每个块都会有风险。
但是如果攻击者知道IV,他可能会尝试更改第一个块,更改iv的各个位。这不是问题吗? – danieltorres
是的,但加密IV不是你如何解决它。加密不提供任何防篡改保护。相反,您需要使用消息认证码(http://en.wikipedia.org/wiki/Message_authentication_code)。这将计算数据的单向散列(使用密钥),您可以使用它来验证它是否被篡改。简单的规则是,你不需要加密你的IV,但绝对必须MAC数据,无论你使用什么模式。 – mfanto
非常感谢! – danieltorres
- 1. 发送AES密钥和IV客户
- 2. AES加密密钥和IV
- 3. 发送IV与密文一起,安全吗?
- 4. 使用CryptoJS发送'密码密码'(密钥/ iv)
- 5. 存储与密文加密+ CBC AES加密IV
- 6. AES加密字符串IV
- 7. Symetric加密 - 盐和IV
- 8. PHP解密加密文本IV
- 9. 收到的字节数组有不同的值比发送,AES加密+ IV
- 10. 如何实现与加密邮件附加IV的AES
- 11. pycrypto AES与密码,而不是键+ IV
- 12. 创建/解密口令与盐/ IV
- 13. openssl_encrypt,openssl_decrypt密钥,iv
- 14. AES加密如何传输IV
- 15. Node.js加密:无效的IV长度
- 16. 通过传递IV加密AES 256
- 17. 对称加密(AES):是否将安全和正确的加密数据与IV和Salt一起保存?
- 18. 将IV添加到加密文件中供以后解密
- 19. 发送API密钥与loadXMLByURL
- 20. Java中AES加密的初始化矢量(IV)是否包含密码?
- 21. Rijndael商店IV和密钥
- 22. 使用秘密作为IV
- 23. Android:使用AES加密字符串256位加密使用iv和密钥
- 24. 如何为openssl加密生成随机密码和IV
- 25. 用字符串加密IV并解密它?
- 26. 使用Rijndael加密时的密钥,盐和IV
- 27. 将加密密钥和IV存储/转换为字符串
- 28. Rijndael加密功能 - 密钥/ IV /盐设置
- 29. AES加密Java到iOs - 使用密码,iv和盐
- 30. 发送前加密发布数据
这里不讨论这个话题,因为它不包括编程。下次尝试[加密](http://crypto.stackexchange.com/questions/2280/why-is-the-iv-passed-in-the-clear-when-it-can-be-easily-encrypted)。 .. –
相关:[为什么IV可以很容易地加密传递清晰?](http://crypto.stackexchange.com/questions/2280/why-is-the-iv-passed-in-the [crypto.SE](http://crypto.stackexchange.com/) – CodesInChaos
嘿@CodesInChaos我其实在我之前的评论中指出了那个,但是我承认我可以做得更清楚。很高兴我们同意:) –