算法的名稱
最早的定義了該算法的標準(ANS X9.52,1998年發布)將其描述為“三重數據加密算法(TDEA)” — 即ANSI X3.92中定義的數據加密算法(DEA)的三次重複操作 — 而完全沒有使用術語“3DES”或“DES”。FIPS PUB 46-3(1999)定義了“三重數據加密算法”(TDEA),也使用了術語“Triple DES”和“DES”。該標準中互換的使用“數據加密算法”(DEA)和“DES”的概念,其中以此開始DES的定義:
數據加密標準(DES)應當包括下文中的數據加密算法(DES)與三重數據加密算法(TDEA,如ANSI X9.52中所描述的)。NIST SP 800-67(2004,2008)主要使用術語TDEA,但也提到了“Triple DES(TDEA)”。ISO/IEC 18033-3(2005)使用“TDEA”,但其中提到:TDEA通稱Triple DES(數據加密標準)。沒有一個定義了本算法的標準使用術語“3DES”。
算法
3DES使用“密鑰包”,其包含3個DES密鑰,K,K和K,均為56位(除去奇偶校驗位)。加密算法為:
•密文 = E(D(E(平文)))
也就是說,使用K為密鑰進行DES加密,再用K為密鑰進行DES“解密”,最後以K進行DES加密。
而解密則為其反過程:
•平文 = D(E(D(密文)))
即以K解密,以K“加密”,最後以K解密。
每次加密操作都只處理64位數據,稱為一塊。
無論是加密還是解密,中間一步都是前後兩步的逆。這種做法提高了使用密鑰選項2時的算法強度,並在使用密鑰選項3時與DES兼容。
密鑰選項
標準定義了三種密鑰選項:
•密鑰選項1:三個密鑰是獨立的。
•密鑰選項2:K和K是獨立的,而K=K
•密鑰選項3:三個密鑰均相等,即K=K=K
密鑰選項1的強度最高,擁有3 x 56 = 168個獨立的密鑰位。
密鑰選項2的安全性稍低,擁有2 x 56 = 112個獨立的密鑰位。該選項比簡單的套用DES兩次的強度較高,即使用K和K,因為它可以防禦中途相遇攻擊。
密鑰選項3等同與DES,只有56個密鑰位。這個選項提供了與DES的兼容性,因為第1和第2次DES操作相互抵消了。該選項不再為國家標準科技協會(NIST)所建議,亦不為ISO/IEC 18033-3所支持。
其它用於指代密鑰選項的術語
“密鑰選項 n”是標準中(X9.52, FIPS PUB 46-3, SP 800-67, ISO/IEC 18033-3)定義的TDEA的術語。然而,其它標準中,推薦和通用描述中也使用了其它術語。
•密鑰選項1:
•3TDEA, NIST SP 800-57與SP 800-78-2中
•三倍長度密鑰,常用名稱
•密鑰選項2:
•2TDEA,NIST SP 800-57和SP 800-78-1中
•雙倍長度密鑰,常用名稱
對多於一個塊的加密
與其它的塊密碼一樣,對多個數據塊的加密和解密可以使用多種工作模式進行,而模式的定義可以與塊密碼算法相獨立。然而,ANS X9.52和NIST SP 800-67(通過SP 800-38A)確定了某些模式只能在特定限制下套用,而無需普遍的套用。例如,ANS X9.52提出對於CBC模式,初始化向量每次應當不同,而ISO/IEC 10116沒有類似規定。FIPS PUB 46-3和ISO/IEC 18033-3隻定義了單塊密碼,而並沒有對多塊的工作模式做出限制。
安全性
普遍而言,有3個獨立密鑰的3DES(密鑰選項1)的密鑰長度為168位(三個56位的DES密鑰),但由於中途相遇攻擊,它的有效安全性僅為112位。密鑰選項2將密鑰長度縮短到了112位,但該選項對特定的選擇明文攻擊和已知明文攻擊的強度較弱,因此NIST認定它只有80位的安全性。
對密鑰選項1的已知最佳攻擊需要約2組已知明文,2部,2次DES加密以及2位記憶體(該論文提到了時間和記憶體的其它分配方案)。這在現在是不現實的,因此NIST認為密鑰選項1可以使用到2030年。若攻擊者試圖在一些可能的(而不是全部的)密鑰中找到正確的,有一種在記憶體效率上較高的攻擊方法可以用每個密鑰對應的少數選擇明文和約2次加密操作找到2個目標密鑰中的一個。
使用
電子貨幣業界普遍使用3DES,並持續開發和宣傳基於其的標準(例如EMV)。
Microsoft OneNote和Microsoft Outlook2007使用3DES以密碼保護用戶數據。