Hash

基於AES的安全雜湊函式

  • August 28, 2012

散列函式的安全性如何然後對所有加密塊進行異或?

一點都不安全;生成原像將是微不足道的。這是一個包含三塊消息的展示:

這是您建議的方法(僅限於三個阻止消息):

$ E_0 = Encrypt( IV \oplus P_0 ) $

$ E_1 = Encrypt( E_0 \oplus P_1 ) $

$ E_2 = Encrypt( E_1 \oplus P_2 ) $

$ E_3 = Encrypt( E_2 \oplus 0 ) $

$ Hash = E_0 \oplus E_1 \oplus E_2 \oplus E_3 $

(加密密鑰和 IV 固定)。

查找消息的方法如下 $ (P_0, P_1, P_2) $ 散列到預選值 $ Hash $ :

  • 選擇任意值 $ P_2 $ (可能包括最後一個塊的尾隨填充)
  • 選擇任意值 $ E_2 $ .
  • 計算 $ E_3 = Encrypt( E_2 \oplus 0 ) $ , $ E_1 = Decrypt(E_2) \oplus P_2 $ 和 $ E_0 = Hash \oplus E_1 \oplus E_2 \oplus E_3 $
  • 計算 $ P_0 = IV \oplus Decrypt( E_0 ) $ 和 $ P_1 = Decrypt(E_1) \oplus E_0 $

你完成了: $ (P_0, P_1, P_2) $ 散列到預選值;很容易看出散列這個值會導致內部 $ E_0, E_1, E_2, E_3 $ 我們選擇的值,並且對它們進行異或運算將產生預選的雜湊值。

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