Dot-Net

將 IV 與密文一起發送,安全嗎?

  • November 5, 2010

關於 IV 生成、加密和在發送者和接收者之間共享 IV 存在許多問題,但我想就從發送者向接收者發送 IV 的最佳方式發表一個明確的文章。

從到目前為止我看到的所有文章中,我不確定通過將 IV 附加到密文中來以“明文”形式發送 IV 是否安全。所以第一個問題是,這樣做安全嗎?

其次,在通過交換消息進行通信時,是否有更安全的方式在發送方和接收方之間共享 IV?

乾杯

是的,以明文形式發送 IV 是安全的。這是為什麼的“證明”:

以CBC模式為例:

替代文字

您可以看到一個塊的密文與下一個塊的明文進行了異或運算。我們需要 IV 的原因是因為在第一個塊上,沒有以前的密文可以使用。如果將 IV 保密存在安全風險,那麼之後的每個塊都會存在安全風險,因為密文與 IV 的作用相同。

話雖如此,您需要確保您對它進行 MAC 處理。根據您如何處理消息身份驗證程式碼,篡改 IV 的人可能會篡改解密時生成的明文。單獨的加密不能提供消息的完整性。

此外,對於 IV 生成,這取決於您的要求。但大多數情況下,您的 IV 需要是隨機且不可預測的。

引用自:https://stackoverflow.com/questions/3436864