Block-Cipher

如何將初始化向量的值傳達給最終使用者?它應該是加密消息的一部分嗎?

  • January 28, 2015

我正在上密碼學課,我們的第一個作業是實現一個 32 位分組密碼。我實現了一個使用 CBC 的簡單分組密碼。目前,我的實現從密鑰文件中讀取 32 位 IV 和 32 位密鑰。

但是,我讀到初始化向量是隨機生成的,也可以是公共的。如果我更改算法以生成隨機 IV,我將在哪裡儲存此 IV(或將其傳達給使用者)?在我完成加密消息後,我會簡單地將 IV 的值輸出給使用者嗎?或者我可以將初始化向量儲存為消息本身的一部分(也許在開頭)。

然後我的解密算法可以簡單地讀取加密消息的前 32 位,這將是初始化向量。這是正確的方法嗎?

對於 CBC 加密,您會將初始化向量儲存為

密文的開頭,無論您是在 IV 中讀取還是自己生成它。

CBC 解密算法將執行您在文章末尾所描述的內容。

您的實現還應該提供對分組密碼本身的訪問,而無需任何操作模式。

引用自:https://crypto.stackexchange.com/questions/22657