我正在学习密码学,我需要开发 Java 或 C 代码来打破 DES(数据加密标准)。我知道 DES 中使用的算法,但我不知道应该如何使用 Java 或 C 进行编码。我听说过 Java 密码体系结构,但我不知道如何使用它?有人可以为我提供一个简短的教程吗?
谢谢
我正在学习密码学,我需要开发 Java 或 C 代码来打破 DES(数据加密标准)。我知道 DES 中使用的算法,但我不知道应该如何使用 Java 或 C 进行编码。我听说过 Java 密码体系结构,但我不知道如何使用它?有人可以为我提供一个简短的教程吗?
谢谢
取决于您如何尝试“破解”DES ...我假设您正在尝试解密给定的密文(仅密文攻击)。
除了能够支持 DES 加密/解密的库之外,您可能还应该寻找一个支持密码分析的库,以了解如何实现这一点。暴力破解不需要这样的库,它就像迭代 56 位密钥的可能值并尝试解密密文一样简单。您几乎可以为此使用任何编程语言,只要它支持 DES。
如果您想要更复杂的东西,例如线性或差分密码分析,一个很好的介绍是现代密码分析。那本书中的代码示例使用 Python。您也可以考虑使用高级语言,例如 Python 或 Ruby,因为与使用 C 实现事物相比,它可以加快您的开发过程,并且您不必处理由于内存管理、指针而导致的严重错误等等 Python 和 Ruby 都支持 DES 加密和解密。缺点是您的代码在较低级别的语言中可能会更高效(前提是您做得对) - 所以如果速度至关重要,C 结合 OpenSSL(或任何其他支持 DES 的加密库)将是一个不错的选择。
密码分析库示例
有关DES 攻击向量1的参考资料,请参阅DES Wiki 条目的安全部分。