问题
Does anyone know where I can find test vectors for every component of 64bit DES algorithm(Key schedul, cipher function, etc)? For example I want to test 64bits key generation and to ckeck all 16 key generated. I am implementing the algorithm in VHDL so I need to check the comonents. My implementation is based on this paper.
Thanks
回答1:
Originally there was NBS Special Publication 500-20, revised in 1980, Validating the Correctness of Hardware Implementations of the NBS Data Encryption Standard (The author has made it available at https://archive.org/details/validatingcorrec00gait ).
Then there is NIST Special PUB 800-17, Modes of Operation Validation System (MOVS): Requirements and Procedures, covering FIPS PUB 46-2 (DES) as well as Skipjack. http://csrc.nist.gov/publications/nistpubs/800-17/800-17.pdf .
There's also NIST Special PUB 800-20, Modes of Operation Validation System for the Triple Data Encryption Algorithm (TMOVS): Requirements and Procedures. http://csrc.nist.gov/publications/nistpubs/800-20/800-20.pdf .
There may be other publications such as NIST Special Publication 800-67, Recommendation for the TripleData Encryption Algorithm (TDEA) Block Cipher, http://csrc.nist.gov/publications/nistpubs/800-67-Rev1/SP-800-67-Rev1.pdf, found at http://csrc.nist.gov/publications/PubsSPs.html .
Having implemented DES numerous times in software and a couple of times in VHDL, it's in understanding that the DES standard originally described conformance to the hardware implementation patented by IBM in 1977. (see vhdl_des.tar.gz, which is a simple implementation with an 8 bit interface. There's a pdf file than includes a description of the I/O permutations.)
To save you the typing the test vectors from FIPS SP PUB 500-20 can be found here des.test. There may be a parity error in one of the keys, I can never keep track of which of these files is where (des -tv < des.test, a software implementation). Someone laboriously typed them in by hand from Numerical Recipes in C, where someone had gotten them from 500-20.
回答2:
https://styere.000webhostapp.com/JS-DES.html (new link)
Enter key and data and it generates all intermediate values, for every step of the key schedule and for every step within every round.
来源:https://stackoverflow.com/questions/21341794/data-encryption-standard-test-vectors