什麼是 DES-EDE3-CBC?
我遇到了 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 是三重 DES (3DES) 的變體 - https://en.wikipedia.org/wiki/Triple_DES