2014-01-24 42 views
1

有誰知道在哪裏可以找到測試向量的每個組件的64位DES算法(密鑰調度,密碼功能等)?例如,我想測試64位密鑰生成,並重新生成所有16個密鑰。我正在使用VHDL實現算法,所以我需要檢查組件。我的實施基於此paper數據加密標準測試向量

感謝

回答

5

本來有NBS特別出版物500-20,1980年修訂,驗證NBS數據加密標準的硬件實現的正確性(筆者將其提供在https://archive.org/details/validatingcorrec00gait)。

然後是NIST特別PUB 800-17,操作模式驗證系統(MOVS): 要求和程序,涵蓋FIPS PUB 46-2(DES)以及Skipjack。 http://csrc.nist.gov/publications/nistpubs/800-17/800-17.pdf

還有NIST特別PUB 800-20,三重數據加密算法(TMOVS)的操作模式驗證系統:要求和程序。 http://csrc.nist.gov/publications/nistpubs/800-20/800-20.pdf

可能有其他出版物,例如NIST特刊800-67,TripleData加密算法(TDEA)塊密碼推薦,http://csrc.nist.gov/publications/nistpubs/800-67-Rev1/SP-800-67-Rev1.pdf,在http://csrc.nist.gov/publications/PubsSPs.html找到。在使用VHDL軟件和多次實現DES之後,理解DES最初描述的符合IBM在1977年獲得專利的硬件實現。(參見vhdl_des.tar.gz,這是一個簡單的實現,帶有8位接口,有一個pdf文件,不包括對I/O排列的描述。)

爲了節省您輸入來自FIPS SP PUB 500-20的測試向量,可以在這裏找到des.test。在其中一個密鑰中可能會出現奇偶校驗錯誤,我永遠無法跟蹤這些文件中的哪一個是(des -tv < des.test,一個軟件實現)。有人用C語言中的Numerical Recipes手工輸入它們,有人從500-20中獲得它們。

+0

謝謝,非常有用。 – crow

0

https://styere.000webhostapp.com/JS-DES.html(新鏈路)

輸入鍵和數據,並將其生成的所有中間值,密鑰調度的每一步,對每一輪中的每一步。

+0

最近Eugene Steyer的網頁已經移動,JS-DES.html文件的javascript已經修改了多年,使得輸入不同於默認值的鍵不能防止作業分配中的快捷方式。可從[dpades](https://code.google.com/archive/p/dpades/source/default/)下載的Google代碼檔案中找到帶有可設置鍵的版本dpades/trunk/simu_js/JS-DES.html資源)。它對於故障排除可能非常有用。 – user1155120

+0

嘿,不可更改的鑰匙?大聲笑。具有一定加密/黑客密切度的每個人都編輯DOM並從文本字段中刪除'readonly'屬性 –

+0

這個答案[密碼學 - DES加密函數給了我一個錯誤的密文[Stack Overflow](https:// stackoverflow .com/questions/39397607/des-encryption-function-give-me-a-cipher-text-that-is-wrong/39415148#39415148)給出修改Eugene Steyer [JS-DES.HTML](https:/ /styere.000webhostapp.com/JS-DES.html)(這是新位置)。實施已經過驗證。 – user1155120