Symmetric

當消息被加密兩次時,我們可以按這個順序解密嗎?

  • November 5, 2013

如果我們用對稱密鑰加密消息兩次 $ k_1 $ 先後 $ k_2 $ 像 $ E_{k2}{E_{k1}{m}} $ ,理想情況下我們應該解密 $ k_2 $ 先後 $ k_1 $ 但是否可以解密 $ k_1 $ 然後用 $ k_2 $ ? 最好使用任何 AES 模式?

您要問的似乎是“AES 可交換”?簡短的回答是否定的:使用密鑰 1 然後密鑰 2 使用 AES 加密(通常)不會提供與使用密鑰 2 然後密鑰 1 加密相同的輸出,這是幼稚實現所需的。

但是,可以使用可交換的 AES 模式。例如,如果您在計數器模式下執行 AES,那麼在通過計數器模式使用 key1 和 key2 加密後,我們將得到最終的密文 $ c_i $ 曾是:

$$ c_i = m_i \oplus E_{k_1}(i) \oplus E_{k_2}(i) $$ 由於 XOR 是可交換的,我們可以將其寫為

$$ c_i = [m_i \oplus E_{k_1}(i)] \oplus E_{k_2}(i) = [m_i \oplus E_{k_2}(i)] \oplus E_{k_1}(i) $$ 也就是說,無論您對這兩個密鑰加密的順序(以及解密的順序),您都將獲得相同的密文(因此是相同的明文)。

我沒有詳細看,但我認為下面的文章可能對你有用:“有兩個密鑰對稱交換加密函式嗎? ”。

編輯:只是要指出,如果以這種方式使用計數器模式,則必須確保將計數器初始化為不同的值,或者密鑰不同-否則您的“加密”將變為

$$ c_i = m_i \oplus E_{k_1}(i) \oplus E_{k_1}(i) = m_i $$ 這可能不是一件好事……

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