2012-12-10 29 views
1

我正在使用C#中的TripleDES,並根據MSDN entry,TripleDES可以使用兩個或三個56位密鑰並使用三次DES的迭代。但是,我無法弄清楚如何指定使用多少個密鑰以及這些密鑰是什麼。事實上,我可以找到的所有示例顯示TripleDES.CreateEncryptor()被一個或沒有鍵調用。另外,TripleDES類只有一個Key屬性。如何在.NET/C中設置TripleDES鍵#

如何爲TripleDES指定第二個和第三個鍵?

在此先感謝。

回答

3

如果你看Key屬性,你會看到:「這個算法支持從128位到192位的密鑰長度,增量爲64位」。

如果您需要2鍵TripleDES,請將該鍵設置爲16字節的鍵。如果您需要3鍵TripleDES,請將其設置爲24字節密鑰。請參閱this post for more information

wikipedia entry列出了不同的鍵控選項。

原因是有一個meet-in-the-middle attack,和2鍵TripleDES讓你避免攻擊,而只使用兩個鍵。不幸的是,還有其他的攻擊,所以NIST認爲它的優勢在於大約80位的安全性。 3鍵TripleDES也很脆弱,只有112位的有效強度。

如果您有選擇,您應該更喜歡使用AES在TripleDES上。

+0

啊,我錯過了關鍵部分。那麼這清除了。我只需要TripleDES來提供傳統支持。謝謝! – CatShoes