CAVP Testing: Block Ciphers
Algorithm specifications for current FIPS-approved and NIST-recommended block cipher algorithms are available from the Cryptographic Toolkit.
Current testing includes the following algorithms:
Algorithm Validation Testing Requirements
Advanced Encryption Standard Algorithm (AES)
The Advanced Encryption Standard Algorithm Validation System(AESAVS) specifies validation testing requirements for the ECB(Electronic Codebook), CBC (Cipher Block Chaining), OFB (Output Feedback), CFB (Cipher Feedback) and CTR (Counter) modes for the AES algorithm from SP 800-38A.
Triple Data Encryption Standard Algorithm (TDES)
The NIST Special Publication 800-20, Modes of Operation Validation System for the Triple Data Encryption Algorithm (TMOVS): Requirements and Procedures specifies validation testing requirements for the ECB(Electronic Codebook), CBC (Cipher Block Chaining), OFB (Output Feedback), CFB (Cipher Feedback) and CTR (Counter) modes for the Triple DES algorithm from SP800-38A. In addition, there are variants of the CBC, CFB, and OFB modes of Triple DES that use interleaving or pipelining.
An additional test, the Multi-block Message Test (MMT), is also required.
- As of 1-1-2016, TDES KO2 encrypt is no longer compliant. TDES KO2 decrypt is allowed for legacy use only. (See SP800-131A Revision 1.)
Block cipher implementations validated by NIST are found on the AES, TDES and Skipjack Validation Lists:
Response files (.rsp): the test vectors are properly formatted in response (.rsp) files. Vendor response files must match this format exactly.
Intermediate results files (.txt): files with intermediate results (.txt) are supplied to help with debugging. For the Monte Carlo test, the output for each of the first five (5) iterations of the 10,000 as well as the final (10,000th) output are given. The intermediate values are indented by one tab and clearly identified by use of the word "Intermediate".
The test vectors linked below can be used to informally verify the correctness of block cipher algorithm implementations using the validation systems listed above.
Use of these test vectors does not replace validation obtained through the CAVP.