2012-05-10 54 views
2

我正在使用DUKPT算法为DES加密算法生成密钥。当您尝试使用弱密钥时,DES的C#实现会引发异常。DUKPT算法是否生成弱DES密钥?

DUKPT算法可能产生弱密钥,还是避免它们?如果它确实产生弱密钥,我该怎么办?

+1

那么你的问题到底是什么? – Gabe

+0

当DUKPT(派生的每个事务的唯一密钥)生成弱密钥时,我不能将此密钥用于DES算法。 – MjeOsX

+1

您还没有提出任何问题... –

回答

4

可能,但不太可能。 DUKPT算法为每个事务提供一个唯一的密钥,并且随时可以设置所有位,因此它有可能生成所有0的“弱”密钥。根据你的密钥的大小,它当然不太可能发生,并且你要小心地随意丢弃“弱”密钥,因为这也削弱了其他密钥。

一个全零密钥在2 ^(N)中出现1次,其中N是密钥中的位数,所以对于你的64位密钥:1 /(2^64)......不用说,不经常。由于DUKPT每次交易都会生成一个唯一的密钥,因此您应该没有在DES中检查该情况就可以很好地使用它,因为无论如何您可能会一直进行16轮。

+0

在这种情况下,我会首先意识到它没有这个检查 谢谢你的答案 – MjeOsX