密码算法测试向量——AES
目录
//分组密码算法的测试向量, 如CBC, CMAC等
typedef struct block_cipher_test_vector_st
{
char * inf; //测试向量的附加信息说明
int alg; //密码算法
int mod; //工作模式
int klen; //密钥字节长度
char * key; //密钥
int ivlen; // IV 字节长度
char * iv; // IV
int ptlen; //明文字节长度
char * pt; //明文
int ctlen; //密文字节长度
char * ct; //密文
int maclen; //MAC 字节长度
char * mac; //MAC
}BCTV;//分组密码算法的测试向量
AES128测试向量
//AES的测试向量见NIST SP800-38A
// (Appendix F: Example Vectors for Modes of Operation of the AES)
BCTV aes128enctv[] =
{
{/*测试向量0*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, ECB,
/*Key*/ 16, (char*)"2b7e151628aed2a6 abf7158809cf4f3c",
/*IV */ 0, (char*)NULL,
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"3ad77bb40d7a3660 a89ecaf32466ef97"
/* */ "f5d3d58503b9699d e785895a96fdbaaf"
/* */ "43b1cd7f598ece23 881b00e3ed030688"
/* */ "7b0c785e27e8ad3f 8223207104725dd4",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量1*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, CBC_PAD_NULL,
/*Key*/ 16, (char*)"2b7e151628aed2a6 abf7158809cf4f3c",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"7649abac8119b246 cee98e9b12e9197d"
/* */ "5086cb9b507219ee 95db113a917678b2"
/* */ "73bed6b8e3c1743b 7116e69e22229516"
/* */ "3ff1caa1681fac09 120eca307586e1a7",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量2*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, CFB,
/*Key*/ 16, (char*)"2b7e151628aed2a6 abf7158809cf4f3c",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"3b3fd92eb72dad20 333449f8e83cfb4a"
/* */ "c8a64537a0b3a93f cde3cdad9f1ce58b"
/* */ "26751f67a3cbb140 b1808cf187a4f4df"
/* */ "c04b05357c5d1c0e eac4c66f9ff7f2e6",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量3*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, OFB,
/*Key*/ 16, (char*)"2b7e151628aed2a6 abf7158809cf4f3c",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"3b3fd92eb72dad20 333449f8e83cfb4a"
/* */ "7789508d16918f03 f53c52dac54ed825"
/* */ "9740051e9c5fecf6 4344f7a82260edcc"
/* */ "304c6528f659c778 66a510d9c1d6ae5e",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量4*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, CTR,
/*Key*/ 16, (char*)"2b7e151628aed2a6 abf7158809cf4f3c",
/*IV */ 16, (char*)"f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"874d6191b620e326 1bef6864990db6ce"
/* */ "9806f66b7970fdff 8617187bb9fffdff"
/* */ "5ae4df3edbd5d35e 5b4f09020db03eab"
/* */ "1e031dda2fbe03d1 792170a0f3009cee",
/*mac*/ 0, (char*)NULL,
},
};
AES192测试向量
BCTV aes192enctv[] =
{
{/*测试向量0*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, ECB,
/*Key*/ 24, (char*)"8e73b0f7da0e6452 c810f32b809079e5 62f8ead2522c6b7b",
/*IV */ 0, (char*)NULL,
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"bd334f1d6e45f25f f712a214571fa5cc"
/* */ "974104846d0ad3ad 7734ecb3ecee4eef"
/* */ "ef7afd2270e2e60a dce0ba2face6444e"
/* */ "9a4b41ba738d6c72 fb16691603c18e0e",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量1*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, CBC_PAD_NULL,
/*Key*/ 24, (char*)"8e73b0f7da0e6452 c810f32b809079e5 62f8ead2522c6b7b",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"4f021db243bc633d 7178183a9fa071e8"
/* */ "b4d9ada9ad7dedf4 e5e738763f69145a"
/* */ "571b242012fb7ae0 7fa9baac3df102e0"
/* */ "08b0e27988598881 d920a9e64f5615cd",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量2*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, CFB,
/*Key*/ 24, (char*)"8e73b0f7da0e6452 c810f32b809079e5 62f8ead2522c6b7b",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"cdc80d6fddf18cab 34c25909c99a4174"
/* */ "67ce7f7f81173621 961a2b70171d3d7a"
/* */ "2e1e8a1dd59b88b1 c8e60fed1efac4c9"
/* */ "c05f9f9ca9834fa0 42ae8fba584b09ff",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量3*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, OFB,
/*Key*/ 24, (char*)"8e73b0f7da0e6452 c810f32b809079e5 62f8ead2522c6b7b",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"cdc80d6fddf18cab 34c25909c99a4174"
/* */ "fcc28b8d4c63837c 09e81700c1100401"
/* */ "8d9a9aeac0f6596f 559c6d4daf59a5f2"
/* */ "6d9f200857ca6c3e 9cac524bd9acc92a",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量4*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, CTR,
/*Key*/ 24, (char*)"8e73b0f7da0e6452 c810f32b809079e5 62f8ead2522c6b7b",
/*IV */ 16, (char*)"f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"1abc932417521ca2 4f2b0459fe7e6e0b"
/* */ "090339ec0aa6faef d5ccc2c6f4ce8e94"
/* */ "1e36b26bd1ebc670 d1bd1d665620abf7"
/* */ "4f78a7f6d2980958 5a97daec58c6b050",
/*mac*/ 0, (char*)NULL,
},
};
AES256测试向量
BCTV aes256enctv[] =
{
{/*测试向量0*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, ECB,
/*Key*/ 32, (char*)"603deb1015ca71be 2b73aef0857d7781"
/* */ "1f352c073b6108d7 2d9810a30914dff4",
/*IV */ 0, (char*)NULL,
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"f3eed1bdb5d2a03c 064b5a7e3db181f8"
/* */ "591ccb10d410ed26 dc5ba74a31362870"
/* */ "b6ed21b99ca6f4f9 f153e7b1beafed1d"
/* */ "23304b7a39f9f3ff 067d8d8f9e24ecc7",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量1*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, CBC_PAD_NULL,
/*Key*/ 32, (char*)"603deb1015ca71be 2b73aef0857d7781"
/* */ "1f352c073b6108d7 2d9810a30914dff4",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"f58c4c04d6e5f1ba 779eabfb5f7bfbd6"
/* */ "9cfc4e967edb808d 679f777bc6702c7d"
/* */ "39f23369a9d9bacf a530e26304231461"
/* */ "b2eb05e2c39be9fc da6c19078c6a9d1b",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量2*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, CFB,
/*Key*/ 32, (char*)"603deb1015ca71be 2b73aef0857d7781"
/* */ "1f352c073b6108d7 2d9810a30914dff4",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"dc7e84bfda79164b 7ecd8486985d3860"
/* */ "39ffed143b28b1c8 32113c6331e5407b"
/* */ "df10132415e54b92 a13ed0a8267ae2f9"
/* */ "75a385741ab9cef8 2031623d55b1e471",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量3*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, OFB,
/*Key*/ 32, (char*)"603deb1015ca71be 2b73aef0857d7781"
/* */ "1f352c073b6108d7 2d9810a30914dff4",
/*IV */ 16, (char*)"0001020304050607 08090a0b0c0d0e0f",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"dc7e84bfda79164b 7ecd8486985d3860"
/* */ "4febdc6740d20b3a c88f6ad82a4fb08d"
/* */ "71ab47a086e86eed f39d1c5bba97c408"
/* */ "0126141d67f37be8 538f5a8be740e484",
/*mac*/ 0, (char*)NULL,
},
{/*测试向量4*/
/*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, CTR,
/*Key*/ 32, (char*)"603deb1015ca71be 2b73aef0857d7781"
/* */ "1f352c073b6108d7 2d9810a30914dff4",
/*IV */ 16, (char*)"f0f1f2f3f4f5f6f7 f8f9fafbfcfdfeff",
/*pt */ 64, (char*)"6bc1bee22e409f96 e93d7e117393172a"
/* */ "ae2d8a571e03ac9c 9eb76fac45af8e51"
/* */ "30c81c46a35ce411 e5fbc1191a0a52ef"
/* */ "f69f2445df4f9b17 ad2b417be66c3710",
/*ct */ 64, (char*)"601ec313775789a5 b7a7f504bbf3d228"
/* */ "f443e3ca4d62b59a ca84e990cacaf5c5"
/* */ "2b0930daa23de94c e87017ba2d84988d"
/* */ "dfc9c58db67aada6 13c2dd08457941a6",
/*mac*/ 0, (char*)NULL,
},
};

浙公网安备 33010602011771号