我正在研究密码学,我需要开发Java或C代码来破解DES(数据加密标准)。我知道DES中使用的算法,但我不知道如何在Java或C中进行编码。我听说过Java密码体系结构,但我不知道如何使用它?有人可以为我提供相同的简短教程吗?
谢谢
答案 0 :(得分:4)
取决于你如何试图“破坏”DES ......我假设你试图解密给定的密文(ciphertext-only attack)。
除了能够支持DES en- / decryption的库之外,您应该另外寻找的是一个支持cryptanalysis的库,以了解如何实现它。暴力强制不需要这样的库,它就像迭代56位密钥的可能值并尝试解密密文一样简单。您可以使用几乎任何编程语言,只要它支持DES。
如果你想要更复杂的东西,例如线性或差分密码分析,一个很好的介绍是Modern Cryptanalysis。该书中的代码示例使用Python。您也可以考虑使用Python或Ruby等高级语言,因为与使用C语言实现相比,它可以加快您的开发过程,并且您不必处理由于内存管理引起的令人讨厌的错误,指针Python和Ruby都支持DES加密和解密。缺点是你的代码可能会在较低级别的语言中表现得更好(假设你做的正确) - 所以如果速度至关重要,那么C与OpenSSL(或任何其他支持DES的加密库)相结合将是一个不错的选择。
密码分析库的示例
答案 1 :(得分:0)
有关DES攻击媒介DES Wiki entry的参考,请参阅1的安全部分。