Symmetric

當 IV 是從主密鑰派生的時,我們什麼時候需要大於 2 個字節的 IV?

  • July 5, 2022

例如,讓我們舉一個簡單的情況,其中使用帶有 IV + MAC 的 AES-256-CBC 來加密給定的明文以提供身份驗證並防止相同的密文。

iv.mac1.cipherText(plainText)

為了簡單起見,密鑰是使用 HMAC 派生的(也可以是 HKDF)

masterkey = [32 random bytes];
encryptionKey = hmac_sha256(masterkey,'encryption_key');
mac = hmac_sha256(masterkey,'mac_key');
ivInput = [2 random bytes];
iv = hmac_sha256(masterkey,ivInput);

這是否已經為幾乎任何消息傳遞系統提供了足夠的“隨機性”,因為使用 2 個字節到達具有相同消息的相同密文的機會已經大約為 0.002% (1/(256*256)*100)?

(每字節 256 種可能性,2 字節用於 IV)

這是否已經為幾乎任何消息傳遞系統提供了足夠的“隨機性”,因為使用 2 個字節到達具有相同消息的相同密文的機會已經大約為 0.002% (1/(256*256)*100)?

實際上,有 100 條消息,有 $ \binom{100}{2} = 4950 $ 消息對,因此具有相同 IV 的消息對的預期數量(與兩條消息具有相同 IV 的機率不完全相同)約為 0.0755。

而且,對於具有相同 IV 的任何此類消息對,無論前 16 個字節是否相同,它都會(至少)洩漏。

我認為洩露這麼多資訊的 7% 的可能性太高了,即使您僅限於加密 100 條消息(許多系統最終會加密更多)

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