2012-05-08 69 views
-2

我們必須實現DES算法。我們想要編寫一些函數,但我們不知道如何測試我們的DES算法。如何測試加密算法?

是否有任何我們可以用來測試我們的加密和解密函數的知名工具/庫?我們需要第三方工具來告訴人們我們的版本確實有效。

+0

您按順序需要一個「第三方工具」到「告訴人們,我們的版本確實有效」,事實上聽起來像你參與在一家開發某種產品的公司中。在這種情況下,或者A)您製作的產品涉及但不限於加密,在這種情況下,您應該使用現有的,可信的庫(其中有許多可用的庫),或者B)該產品是加密產品在這種情況下,我想很多人會強調你不應該使用DES。現代密碼不僅更安全,而且在現代硬件上也更快。 – DarkOtter

回答

3

我假設你正在使用DES作爲3DES標準與技術研究院(NIST)國家研究所和3DES部分已經發表了大量的測試向量可以用於驗證的實現:

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

此外,您可以使用其他已知庫(如OpenSSL)測試互操作性(加密/解密)。如果加密的密文分別解密了明文,那麼你的實現是正確的可能性很高。

-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); 
+0

Java應該如何幫助C/C++開發人員解決問題? – Robert

+0

@Robert:您可以使用(推測正確的)Java代碼生成測試輸入和輸出,並與C/C++實現進行匹配。 –