我正在使用TripleDES
C# 并根据MSDN 条目,TripleDES
可以使用两个或三个 56 位密钥并使用 DES 的三个迭代。但是,我不知道如何指定要使用多少个键,以及这些键是什么。事实上,我能找到的所有示例都显示TripleDES.CreateEncryptor()
使用一个键或没有键调用。此外,TripleDES
该类只有一个Key
属性。
如何为 指定第二个和第三个键TripleDES
?
提前致谢。
我正在使用TripleDES
C# 并根据MSDN 条目,TripleDES
可以使用两个或三个 56 位密钥并使用 DES 的三个迭代。但是,我不知道如何指定要使用多少个键,以及这些键是什么。事实上,我能找到的所有示例都显示TripleDES.CreateEncryptor()
使用一个键或没有键调用。此外,TripleDES
该类只有一个Key
属性。
如何为 指定第二个和第三个键TripleDES
?
提前致谢。
如果您查看Key属性,您会看到:“此算法支持从 128 位到 192 位的密钥长度,以 64 位为增量。”。
如果您需要 2 键 TripleDES,请将密钥设置为 16 字节密钥。如果您想要 3 键 TripleDES,请将其设置为 24 字节的键。有关更多信息,请参阅此帖子
维基百科条目,列出了不同的键控选项。
原因是存在中间相遇攻击,而 2-key TripleDES 让您在只使用两个密钥的情况下避免攻击。不幸的是,还有其他攻击,因此 NIST 认为其强度约为 80 位安全性。3-key TripleDES 也很脆弱,只有 112 位的有效强度。
如果您有选择,您应该更喜欢 AES 而不是 TripleDES。