有谁知道在哪里可以找到测试向量的每个组件的64位DES算法(密钥调度,密码功能等)?例如,我想测试64位密钥生成,并重新生成所有16个密钥。我正在使用VHDL实现算法,所以我需要检查组件。我的实施基于此paper。数据加密标准测试向量
感谢
有谁知道在哪里可以找到测试向量的每个组件的64位DES算法(密钥调度,密码功能等)?例如,我想测试64位密钥生成,并重新生成所有16个密钥。我正在使用VHDL实现算法,所以我需要检查组件。我的实施基于此paper。数据加密标准测试向量
感谢
本来有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中获得它们。
https://styere.000webhostapp.com/JS-DES.html(新链路)
输入键和数据,并将其生成的所有中间值,密钥调度的每一步,对每一轮中的每一步。
最近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
嘿,不可更改的钥匙?大声笑。具有一定加密/黑客密切度的每个人都编辑DOM并从文本字段中删除'readonly'属性 –
这个答案[密码学 - 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
谢谢,非常有用。 – crow