Tls
Qualys SSL Labs 中 EDE 密碼的報告密鑰大小存在差異
Qualys SSL Labs報告以下兩個密碼套件為 112 位:
- SSL_CK_DES_192_EDE3_CBC_WITH_MD5
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
但是,我能找到的所有其他參考資料都說它們是 168 位的,這與我對 3DES EDE 的理解一致:三個獨立的 56 位密鑰。
我相信 Qualys 在這件事上是正確的,並且我認為他們有某種理由將這些套件分類為 112 位而不是 168 位,但我對 EDE 的 SSL 和 TLS 實現知之甚少明白為什麼。
我也不知道為什麼 CK_DES 套件的名稱中有 192。
他們是正確的嗎?差異有什麼問題?
首先,請注意 $ 192=3\cdot64 $ ,所以 3DES 的真實密鑰長度為 $ 192 $ 位。然而,由於 $ 8 $ 每個子密鑰中的位都是奇偶校驗位,這減少到 $ 3\cdot56=168 $ 一些非冗餘的密鑰材料。
現在,通常將3DES 的有效密鑰長度歸類為 $ 2\cdot56=112 $ 位是 3DES 容易受到中間相遇攻擊:當攻擊者可以訪問一對 $ (p,c) $ 明文和對應的密文,他只能粗略地得到密鑰 $ 2^{112} $ 操作如下:
- 對於所有 DES 密鑰 $ k_3 $ , 計算 $ t:=D_{k_3}(c) $ 並儲存關係 $ t \mapsto k_3 $ 在查找表中 $ L $ .
- 對於所有 DES 密鑰對 $ (k_1,k_2) $ , 計算 $ t:=D_{k_2}(E_{k_1}(p)) $ 並檢查是否 $ t $ 在表中 $ L $ . 如果是,則產生一個子鍵 $ k_3 $ , 然後 $ (k_1,k_2,k_3) $ 是一個 3DES 密鑰,用於加密 $ p $ 至 $ c $ .
請注意,執行時由迭代的第二步控制 $ 2^{2\cdot56}=2^{112} $ 潛在的密鑰,因此所需的操作數量大致為 $ 2^{112} $ . 這正是強度估計背後的原因 $ 112 $ 位。
查找表 $ L $ 需要足夠的記憶體來儲存 $ 2^{56} $ 對,這是相當多的,但並非絕對不現實。