2011-07-20 62 views
3

我正在学习密码学,我需要开发Java或C代码来破坏DES(数据加密标准)。我知道在DES中使用的算法,但我不知道我应该如何去用Java或C编码。我听说过Java密码体系结构,但我不知道如何使用它。有人可以为我提供一个相同的简短教程吗?代码破解DES

感谢

+0

而且什么叫破呢?蛮力或更好的? – CodesInChaos

+0

蛮力可以做,因为我知道它使用的方法 –

+0

你可能会考虑在GPU上做它。 – CodesInChaos

回答

4

取决于你如何试图“打破”DES ......我假设你试图解密给定的密文(ciphertext-only attack)。

除了一个能够支持DES en/decryption的库之外,你还应该额外寻找一个支持密码分析的库来感受如何实现这个。暴力破解不需要这样的库,就像迭代56位密钥的可能值并尝试解密密文一样简单。只要它支持DES,就可以采用几乎所有的编程语言。

如果你想要更复杂的东西,例如线性或差分密码分析,很好的介绍是Modern Cryptanalysis。该书中的代码示例使用Python。你也可以考虑使用像Python或Ruby这样的高级语言,因为与C语言实现相比,它可以加速开发过程,而且你不必处理由于内存管理引起的令人讨厌的错误,指针等等。Python和Ruby都支持DES加密和解密。缺点是你的代码在低级语言中可能会更具性能(假如你做得对) - 所以如果速度是关键,C与OpenSSL(或任何其他支持DES的加密库)将是一个不错的选择。

例子为破译库

0

DES Wiki entry的有关DES的攻击向量1引用的安全性部分。

+0

是的,我看到了,但正如我所说我发现很难使用Java或C编码相同。我不知道从哪里开始 –