【发布时间】:2012-02-06 22:35:35
【问题描述】:
我了解唯一 IV 在加密以防止频率分析等攻击方面很重要。问题:For AES CBC encryption, whats the importance of the IV? 有一个非常明确的答案,解释了 IV 的重要性。
以明文形式发送 IV 是否存在安全漏洞?或者是否需要使用用于发送对称密钥的相同公钥/私钥对其进行加密?
如果 IV 需要加密发送,那么为什么不每次都生成一个新的对称密钥并将 IV 视为密钥的一部分呢?生成对称密钥的成本是否太高?还是尽量减少传输的数据量?
Secret vs. Non-secret Initialization Vector 的最佳答案是:
典型的密钥建立协议将导致双方都参与计算一段数据,但只有他们自己知道。使用 Diffie-Hellman(或其任何椭圆曲线变体),所述共享数据块具有固定长度,并且它们无法控制其值(它们只是获得相同的看似随机的位序列)。
两个实体如何在没有共享信息的情况下得出“相同的看似随机的比特序列”?共享信息是加密发送的假设吗?而且,如果共享信息是加密发送的,为什么不直接发送 IV 加密呢?
由于应用程序需要安全地传输对称密钥,因此将 IV 与密钥本身分开似乎本质上是一种优化。还是我错过了什么?
【问题讨论】:
-
我过去使用的一个方案是每次生成一个随机密钥,并使用先前共享的公钥/私钥对加密密钥和 iv。我从来没有觉得这会显着增加 AES 有效负载(对于我的使用而言),但可能极其有限的通信协议可能对大小有更严格的要求
标签: cryptography aes initialization-vector