Encryption

通過在輪次之間混合明文和中間密文來破壞針對 3DES 的 MITM 攻擊

  • October 4, 2020

假設有人使用三個單獨的 56 位密鑰實現 3DES,並且攻擊者正試圖執行MITM攻擊。

這是旨在嘗試破壞 MITM 攻擊或至少使其成本更高的加密計劃。您抓取 192 位純文字並將它們打亂成三個 64 位塊,在所有三個子塊之間混合,如果使用 PKCS#7 填充的填充較少是 192 的倍數。

我最初的建議是字節 0 是第二個塊的第一個字節,字節 1 是第三個塊的第一個字節,字節 3 是第一個塊的第一個字節,字節 4 是第二個塊的第二個字節,等等。只要不太昂貴,柱狀轉置肯定會更可取。

然後,您使用第一個密鑰對第一個塊、使用第二個密鑰的第二個塊和使用第三個密鑰的第三個塊執行第一輪 DES 加密,如果可行的話,並行執行。

之後你將 192 位中間密文打亂,再次在三個塊之間混合字節,然後進行第二輪,用第一個密鑰加密現在的第一個塊,用第二個密鑰加密第二輪,用第二個密鑰加密第三個塊第三把鑰匙。

您繼續打亂塊並重複,直到執行了 48 輪加密。你沒有改變鑰匙,所以我認為不應該有任何重新輸入的懲罰。對二進制數據塊進行混洗是一種非常有效且簡單的操作,不會增加太多性能損失或實現複雜性。

這是否會使 MITM 攻擊更加困難,同時在此過程中將其變成 192 位分組密碼?與標準 3DES 相比,性能損失有多大?

3DES

這裡描述的不是3DES(三重 DES 或 TDES,正式為三重數據加密算法(TDEA 或三重 DEA))。讓我們打電話給 $ E $ 作為DES加密和 $ D $ 作為DES解密。然後我們可以將 3DES 加密寫為

$$ E(k_3,D(k_2,E(k_1,message))) $$帶獨立鍵 $ k_1,k_2,k_3 $ .

使用 3 個密鑰的 3DES 提供的安全性不是 192 位。它大約是 122 位。因此,2 鍵變體更可取,它被稱為 2TDEA。

$$ E(k_1,D(k_2,E(k_1,message))) $$在 2TDEA $ k_1 = k_3 $ 和 $ k_1 $ 和 $ k_2 $ 是獨立的。

要應用中間相遇 (MTIM * ) 攻擊,需要級聯密碼。這樣人們就可以將加密/解密呼叫和方法從左和右分開,建立一個表並找到具有幾個已知明文的密鑰。

你的設計

您的設計使用 DES 的內部結構,您定義了一個具有 192 位塊大小和 168 位密鑰大小的新密碼。那裡沒有級聯,因此,MITM 攻擊是不可能的

  • 它是否安全(即確實提供 168 位安全性),我們不知道。這是一個新的設計,需要一個新的分析。

*此處的 MITM 不應與Man-in-the-Middle 攻擊混淆。後面的攻擊是主動竊聽

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