2012-09-02 41 views
1

我正在實現一個應用程序,需要使用大小爲112位(14字節)的密鑰使用TripleDES加密,這在C#中是可能的,因爲文檔指出該算法只允許範圍內的鍵128-192位。C#的TripleDES算法的實現

+0

我不知道會發生什麼,如果你留下填充零字節的112位密鑰,使它128. – Candide

回答

2

128位密鑰大小是112位版本。使用每個64位DES密鑰,8位是奇偶校驗。

[編輯:以下段落來自上述問題的錯誤閱讀,這是雙鍵TripleDES而不是DoubleDES。感謝GregS指出這一點。]

還要注意,由於meet in the middle攻擊,雙倍DES不比正常DES強。只有使用雙DES來向後兼容。考慮大多數用途的AES(或更老的RC4 for SSL,直到TLS 1.1或更好的BEAST攻擊保護更爲普遍)。

+0

[Wikipedia](http://en.wikipedia.org/wiki/Triple_DES)與您的第二段相矛盾:「This選項比單純使用DES進行兩次加密更強大,例如使用K1和K2,因爲它可以防止遇到中間人攻擊。「任何想法爲什麼? –

+0

@JonSkeet它執行兩輪加密,所以是暴力強制它需要更長的時間。但是,如果您可以同時訪問密文和明文,那麼處於中間攻擊狀態的人就有可能實現,並且幾乎可以將保護減半。這就是TripleDES常用的原因,而不是DoubleDES。 – akton

+0

@GregS,是的,你是對的。我誤解了原來的問題。我會解決我的答案。 – akton