Encryption

7zip:為什麼用 AES-256 加密相同的文件不會給出相同的輸出?

  • August 28, 2021

使用 7-zip 19.00,在 Windows 10 1909 上建構 18363.592,我使用 AES-256 和密碼“123”加密了一個文本文件,內容為“hello there”。我這樣做了兩次,完全相同的程序,但如下所示,輸出不同:

在此處輸入圖像描述

在此處輸入圖像描述


為什麼?

這是預期的行為,因為7zip使用密碼塊連結(CBC) 模式進行加密。為此,您需要初始化向量 (IV) 是唯一不可預測的。

它使用的是 64 位 IV,但幸運的是,它已更改為 128

7z檔案的加密強度增加:隨機初始化向量的大小從64位增加到128位,並改進了偽隨機數生成器。

如果同一個文件的加密結果是相同的密文,那麼我們就會認為IV生成有問題。希望從這裡我們看到沒有。

注1: 7zip使用 $ 2^{19} $ -times 迭代 SHA256 以從密碼中派生 AES-256 密鑰。這對於大規模並行化是不安全的。推薦使用像diceware這樣的高熵密碼。

注 2:問題中的第一條評論聲稱 CBC 操作模式具有IND-CCA實際上它不能,它具有IND-CPA。請參閱 Rogaway 對一些分組密碼操作模式的模式評估的開創性工作

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