如何测试加密算法?

时间:2012-05-08 07:43:05

标签: c++ c algorithm encryption des

我们必须实现DES算法。我们想编写一些函数,但我们不知道如何测试我们的DES算法。

我们可以使用任何众所周知的工具/库来测试我们的加密和解密功能吗?我们需要第三方工具来告诉人们我们的版本确实有效。

2 个答案:

答案 0 :(得分:3)

我假设您使用DES作为3DES的一部分,而国家标准与技术研究院(NIST)已经发布了大量可用于验证实施的测试向量:

http://csrc.nist.gov/groups/STM/cavp/index.html

此外,您还可以测试与其他已知库(如OpenSSL)的互操作性(加密/解密)。如果加密的密文分别解密明文,那么你的实现是正确的可能性很高。

答案 1 :(得分:-1)

Java实现了很多安全算法: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html

Cipher desCipher = Cipher.getInstance("DES/CBC/NoPadding");
DESKeySpec desSpec = new DESKeySpec(desKey);
SecretKey des = SecretKeyFactory.getInstance("DES").generateSecret(desSpec);
desCipher.init(Cipher.ENCRYPT_MODE, des , ivSpec);