Cbc

什麼是 DES-EDE3-CBC?

  • July 29, 2022

我遇到了 DES-EDE3-CBC,快速搜尋並沒有清楚地解釋它是什麼。

顯然,DES 是數據加密標準,CBC 是密碼塊連結模式。EDE 可能是 Encrypt-Decrypt-Encrypt,也許 3 意味著使用了 3 個不同的密鑰?

此問題中有所提及,但未在此處進行解釋,並且在連結的 NIST 標準中該名稱不存在。然後是這個 OID,但它沒有定義它。OpenSSL 文件再次列出了它,但不清楚它是什麼。

至少在PKCS#5的上下文中(通常通過 PEM 文件的加密看到),DES-EDE3-CBC 是具有三個密鑰的三重 DES,用於CBC 模式,具有未指定的填充。

是的,“EDE”是指加密-解密-加密(解密-加密-解密)。無論如何,它隱含在“三重 DES”中:選擇哪個方向是加密,哪個方向是解密是任意的,但三重 DES 的事實上的標準選擇是 3DES 加密比解密執行更多的 1DES 加密,而 3DES 解密比加密執行更多的 1DES 解密.

NIST SP 800-67將 Triple-DES 稱為“TDEA”。“Triple-DES”、“3DES”、“DES3”、“TDEA”、“3DES-EDE”、“DES3-EDE”、“DES-EDE3”是同義詞,有一個可能的細微差別,即不同密鑰的數量.

Triple-DES 使用三個密鑰: $ K_1 $ , 解密 $ K_2 $ , 加密 $ K_3 $ (用於加密方向)。顯然如果 $ K_1 = K_2 $ 那麼前兩個步驟取消,如果 $ K_2 = K_3 $ 最後兩個步驟抵消了,所以 $ K_2 $ 必須區別於兩者 $ K_1 $ 和 $ K_3 $ . 可以選擇 $ K_1 = K_3 $ , 然而。這稱為“雙鍵三重 DES”(和變體名稱),而三重 DES $ K_1 \ne K_3 $ 是“三鍵三重DES”。更準確地說,“三密鑰 Triple-DES”意味著 $ K_1 $ 和 $ K_3 $ (而且當然 $ K_2 $ )是獨立生成的(所以有一個 $ 2^{-56} $ 它們相等的機會,但是更容易攻擊的機率與它更容易的數量相當小,所以這並不比“有一個 $ 2^{-56} $ 密鑰是攻擊者預先計算表的一個特定值的機會”)。

由於中間相遇攻擊的可能性,三鍵三重DES幾乎與兩鍵三重DES一樣容易破解。(同樣的攻擊使得雙 DES 幾乎和單 DES 一樣容易被破解,這就是為什麼不使用雙 DES。)儘管如此,雙密鑰三重 DES 已被棄用的時間比三密鑰三重 DES 更長。 DES。

“Triple-DES”或“3DES-EDE”在是否僅使用兩個密鑰(即 $ K_3 = K_1 $ ) 是允許的。拼寫為“DES-EDE3”可能表示必須使用三個不同的密鑰。但是,您需要檢查每個協議的規範,因為細微的拼寫區別並不總是被普遍認可。例如,PKCS#5 指定為“三鍵三重DES”;寫出“三鍵”確實意味著鍵必須是獨立的。

我的猜測與問題中的相同:DES-EDE3-CBC最有可能代表

  • 具有FIPS 46-3定義的密鑰選項 1 的分組密碼 TDEA(又名 3DES)。這本質上是具有三個獨立密鑰(24 字節,其中 168 位對輸出有影響¹)的 DEA(又名 DES),每個密鑰具有塊加密和解密 $$ C:=E_{(K_1,K_2,K_3)}(P)=E_{K_3}(D_{K_2}(E_{K_1}(P)))\ P:=D_{(K_1,K_2,K_3)}(P)=D_{K_1}(E_{K_2}(D_{K_3}(C))) $$
  • FIPS 81定義的 CBC 模式下的操作,密文以大概隨機的 8 字節初始化向量開頭 $ C_0 $ ,以及填充明文的其餘加密和解密 $ P_i $ 每(對於 $ i>0 $ ) $$ C_i:=E_{(K_1,K_2,K_3)}(P_i\oplus C_{i-1})\ P_i:=D_{(K_1,K_2,K_3)}(C_i)\oplus C_{i-1} $$

這使得明文填充數不勝數。它可能會附加字節“80”,然後附加盡可能多的“00”(可能沒有),以達到 8 個字節的倍數。或者沒有填充,如果有效負載本質上是 8 個字節的倍數。或者其他東西,比如PKCS#5 padding。除非 OP 告訴他們“在哪裡遇到 DES-EDE3-CBC”,否則我不知道我們怎麼知道。

現在使用這種操作模式的唯一充分理由是兼容性。AES-GCM 是一種功能升級:它提供身份驗證、更好的安全性、不需要填充約定,並且使用更多的空間。


¹ 密碼分析的安全性較低,請參閱 Stefan Lucks 的攻擊三重加密,在FSE 1998 的會議記錄中

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